FreeBSD Daily Topics
2009年4月8日 ≪Tips≫linux_base-f8をインストールして使う方法(日本語設定版)4月1日以降対応
tips
- How to setup linux_
base-f8 tips - 最新のSkypeやFlash9/
10を使う場合, デフォルトのLinuxバイナリ互換環境ではなくemulators/ linux_ base-f8以降の互換環境を使う必要があります。emulators/ linux_ base-f8以降の互換環境を使う場合は最新の8-currentが必要です。 ただし,
カーネルに実装されたいくつかの機能は7-stableにもマージされているため, 7-stableを使っている場合もemulators/ linux_ base-f8以降の互換環境を使うことができます。ただしその場合, 8-currentで実現されているいくつかの機能は使えません。以降でセットアップの方法を説明します。 〔compat.
linux. osreleaseの値〕 8-currentの最新版を使っていればsysctl値compat.
linux. osreleaseはすでに 『2. 6.16』 になっていますが, そうでない場合はcompat. linux. osreleaseを 『2. 6.16』 に設定する必要があります。起動しても設定がクリアされないようにするには, /etc/ sysctl. confに設定を追加してcompat. linux. osreleaseの値が 『2. 6.16』 になるように設定します。システムを再起動しないで即時設定を変更したい場合は 「sysctl compat. linux. osrelease=2. 6.16」 のようにコマンドを実行します。コマンドを実行しても再起動すると元に戻りますので, /etc/ sysctl. confに書き込むのは忘れないようにしてください。 リスト compat.
linux. osrelease sysctl値を2. 6.16に設定する例 compat.
linux. osrelease=2. 6.16 〔OVERRIDE_
LINUX_ BASE_ PORT / OVERRIDE_ LINUX_ NONBASE_ PORTS〕 Ports Collectionでlinux_
base-f8を使うことを示すためにOVERRIDE_ LINUX_ BASE_ PORT=f8およびOVERRIDE_ LINUX_ NONBASE_ PORTS=f8を指定する必要があります。/etc/ make. confに次のような設定を追加しておきます。 リスト /etc/
make. confに追加する設定 OVERRIDE_
LINUX_ BASE_ PORT=f8 OVERRIDE_ LINUX_ NONBASE_ PORTS=f8 〔linux_
base-f8 install〕 /usr/
ports/ emulators/ linux_ base-f8/からlinux_ base-f8をインストールします。 linux_
base-f8をインストール # cd /usr/
ports/ emulators/ linux_ base-f8/ # make install clean /etc/
rc. confにLinuxバイナリ互換機能を有効にするための次の設定を追加します。 リスト Linuxバイナリ互換機能を有効にするための設定 /etc/
rc. conf linux_
enable="YES" 〔linprocfs〕
次のようにLinuxプロセスファイルシステムをマウントするための設定を/etc/
fstabに追加します。 リスト Linuxプロセスファイルシステムをマウントするための設定
linprocfs /compat/
linux/ proc linprocfs rw 0 0 システムを再起動するか
「mount linprocfs; /etc/ rc. d/ abi start」 のようにLinuxプロセスファイルシステムをマウントし, さらにLinuxバイナリ互換機能を有効にします。 〔ja_
JP. UTF-8 locale〕 次のようにlocaledefコマンドを実行してja_
JP. UTF-8ロケールが機能するようにします。 localedefコマンドでja_
JP. UTF-8ロケールが機能するように設定 /usr/
compat/ linux/ usr/ bin/ localedef -i ja_ JP -f UTF-8 ja_ JP. UTF-8 〔JST timezone〕
日本標準時が使われるようにタイムゾーンデータからTokyoのデータを取り出して/usr/
compat/ linux/ etc/ localtimeファイルとしてコピーします。たとえばtzdata-2008i-1. fc8. をダウンロードしてくるとして,noarch. rpm 次のように操作してTokyoファイルを/usr/ compat/ linux/ etc/ localtimeファイルとしてコピーします。 日本標準時が使われるようにタイムゾーンデータをコピー
# rpm2cpio tzdata-2008i-1.
fc8. noarch. rpm | cpio -idv | grep Tokyo ./ usr/ share/ zoneinfo/ right/ Asia/ Tokyo ./ usr/ share/ zoneinfo/ posix/ Asia/ Tokyo ./ usr/ share/ zoneinfo/ Asia/ Tokyo 4067 blocks # cp ./ usr/ share/ zoneinfo/ Asia/ Tokyo /usr/ compat/ linux/ etc/ localtime 〔動作例 - Skype〕
Linuxアプリケーションの動作例としてSkype
(net/ skype) を実行します。UIのフォントに設定した適切なフォントが使われていること, SCIM-Anthyなどを経由した日本語入力が可能なこと, 時刻がFreeBSDの時刻と同期していることを確かめてください。 日本語フォントが汚い場合や日本語入力ができない場合,
時刻が9時間ずれている場合には〔ja_ JP. UTF-8 locale〕や〔JST timezone〕の作業に失敗している可能性があります。タイムゾーンはfc4を使う場合にはFreeBSDのタイムゾーンと同期しますが, これは使っているタイムゾーンファイルのフォーマットが同じであるためFreeBSDの/etc/ localtimeが利用されるからです。 8-currentでは今後タイムゾーンファイルのフォーマットが2008年形式にアップされるか,
またはf8でタイムゾーンをインストールするようにするか何らかの形で対処が行われる見通しなので, 将来的には〔JST timezone〕の作業は不要になってくるとみられます。ただし現状ではこの作業が必要です。 〔簡易スクリプト〕
毎回同じ処理をするのは面倒なので,
linux_ base-f8をインストールしたら実行するスクリプトを作成しておくと便利です。たとえば次のようなスクリプトを用意しておきます。タイムゾーンファイルはTokyoだけとりだしてどこかに用意しておくものとします。最後の方のcp(1)コマンドのところを書き換えて使ってみてください。 リスト linux_
base-f8をインストールしたら実行するスクリプト例 #!/bin/
sh # path configuration basedir=$(realpath $(dirname ${0})) packagesdir=${basedir}/packages post() { if [ -z "$(grep ^linprocfs /etc/ fstab)" ] then echo "linprocfs /compat/ linux/ proc linprocfs rw 0 0" >> /etc/ fstab fi if [ -z "$(grep ^linux_ enable /etc/ rc. conf | grep -i YES)" ] then echo 'linux_ enable="YES"' >> /etc/ rc. conf fi if [ -z "$(mount | grep linprocfs)" ] then mount linprocfs fi /etc/ rc. d/ abi start /usr/ compat/ linux/ usr/ bin/ localedef -i ja_ JP -f UTF-8 ja_ JP. UTF-8 cp "${packagesdir}"/zoneinfo-Tokyo /usr/ compat/ linux/ etc/ localtime } type "${1:-post}" > /dev/ null 2>&1 && "${1:-post}"
heads-up
- After 20090401
linux_
base-f8および関連portsが2009年4月1日前後に一斉に更新されました。このため, FDT 2009年3月16日 ≪Tips≫linux_ base-f8をインストールして使う方法 で説明した方法ではlinux_(日本語ロケール設定, 日本標準時設定あり) base-f8のインストールができなくなりました。 また,
アップデートされたドキュメント (ports/ UPDATING) に誤りがあり, FDT 2009年4月2日 ≪注意≫linux_ base-f8関連のインフラ更新 の内容も適用できません。FDT ≪注意≫linux_base-f8関連のインフラ更新 で内容を修正しましたが,記事が分散してわかりにくくなったため, linux_ base-f8のセットアップ方法を単一の本記事としてまとめ直しました。 - How to upgrade from pre-20090331
linux_
base-f8および関連portsはportupgrade(1)ではアップグレードできません。いったんすべてのLinuxアプリケーションを削除し, linux_ base-f8およびそれに関連したlinux-からはじまるパッケージを削除し, Linprocファイルシステムをアンマウントして/compat/ linux/ディレクトリ以下を削除してから, ふたたび上記説明にしたがってインストールを行ってください。
バックナンバー
FreeBSD Daily Topics
- 2009年4月29日 FreeBSD 7.2-RC2登場,GEOM Mirror(4)で読み込み性能改善へ,sysctl(8)システム停止問題,vfs.read_maxチューニングでシーケンシャル読み込み性能向上他
- 2009年4月27日 仮想化技術ベンチ(OS3種+仮想環境3種)ESX+FreeBSD良好,Firefox3.1β3登場,Qt 4.5.1テスタ募集,NetBSDブログおよびTwitter登場
- 2009年4月24日 ≪注目≫sysinfo(1)登場,IEEE 802.11sワイヤレスメッシュスタンダード対応取り組み開始,PC-BSD 7.1およびKubuntu 9.04ベンチマーク,Firefoxセキュリティアップデート
- 2009年4月23日 セキュリティアドバイザリlibcとlibcryptに1件ずつ,Great Bay Software自社アプライアンスをFreeBSDへ移行でパフォーマンス向上
- 2009年4月22日 BSD検定試験結果送付開始,OpenBSM 1.1統合,gaminバグ修正でアンマウント可能に,YouTube BSDConferencesチャンネル50ビデオ達成76,000ビュー
- 2009年4月21日 FreeBSD Summer of Code発表: GEOMベースディスクスケジューラ,PUFFS移植,IPFW/Dummynet改善,BSDライセンスlibiconvなど20プロジェクト
- 2009年4月20日 FreeBSDネットワークスタックからGiant Lock完全排除,BSD Cell Jail/VPSサービス,7.2RC1登場
- 2009年4月16日 Ports Collectionフリーズ開始,FreeBSD 7.2-RC1,マルチコア対応のgzip--pigz,FreeBSD勉強会第0回開催報告
- 2009年4月15日 HAL/DBusを動作させてユーザからシャットダウンやUSBメモリマウントを実現する方法(Gnome / KDE両対応)
- 2009年4月14日 PC-BSD 7.1 Galileo Edition登場 - Jailフロントエンド導入他