FreeBSD Daily Topics

2009年3月16日≪Tips≫linux_base-f8をインストールして使う方法(日本語ロケール設定、日本標準時設定あり)≪注目≫AsiaBSDCon2009開催報告・勉強会告知

tips

How to setup linux_base-f8

tips - 最新のSkypeやFlash9を使う場合、まだデフォルトに置き換わっていないemulators/linux_base-f8を使う必要があります。現状ではいくつか設定のポイントがありますので説明しておきます。

  • 〔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〕

    Ports Collectionでlinux_base-f8を使うことを示すためにOVERRIDE_LINUX_BASE_PORT=f8を指定する必要があります。/etc/make.confに次のような設定を追加しておきます。

    /etc/make.confに追加する設定
    OVERRIDE_LINUX_BASE_PORT?=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バイナリ互換機能を有効にするための設定
    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の時刻と同期していることを確かめてください。

     Skype動作例
    図 Skype動作例

    日本語フォントが汚い場合や日本語入力ができない場合、時刻が9時間ずれている場合には〔ja_JP.UTF-8 locale〕や〔JST timezone〕の作業に失敗している可能性があります。タイムゾーンはfc4を使う場合には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}"

event

AsiaBSDCon 2009

conference - 3月14日(土⁠⁠、15日(日)AsiaBSDCon 2009のメインとなるカンファレンス(論文発表、基調講演、特別講演、バンケットや交流)が開催されました。OpenBSDのTheo de Raadt氏やsendmailのEric Allman氏の講演、最新技術の紹介や検討、*BSD関係者との交流などが実現できた貴重なイベントだったといえます。BSDA検定の実施や日本語チュートリアルの実施など新しい試みもおこなわれました。AsiaBSDCon 2009のレポートはgihyo.jpやSoftware Designでまとめます。ぜひともお見逃しなく :)

gihyo.jpではこうしたフェイス・トゥー・フェイスで交流が持てる機会を活かしていこうと、2009年4月から月1回ほどの周期を目処に*BSD勉強会の実施を計画しています。勉強会を通じて*BSDに関する技能や知識を伸ばすとともに、ユーザ・開発者・企業さまが交流を持てる場としての役割をはたしていきたいと考えております。詳細はおってgihyo.jpやFreeBSD Daily Topicsで紹介します。こちらもお見逃しなく!

おすすめ記事

記事・ニュース一覧