↑ 「FreeBSDで遊ぼう」のページへ

↑ トップページへ

★ [SilverSackの自画自賛] FreeBSDで遊ぼう

★

 DesktopBSDのベースOSをFreeBSD9.0へアップデートしよう


もうここまで来ると酔狂です

DesktopBSDは、2010年5月に開発再開が宣言されてからもう二年が経とうとしていますが、全くなんの音沙汰もないままここまで来てしまいました。とはいえ、PC-BSDもGhostBSDも鈍重だったり、インストーラがうまく動かなかったり、動作がギクシャクしたりと、まだ難がある状態で、普通にインストールして普通に動くDesktopBSDはまだ捨てがたいものがあります。と思っているそんな中、FreeBSD9.0が発表されました。FreeBSD7.xの余命もそれほど長くないようなので、ベースOSを9.0にしてみます。

とはいっても、ちょっとここまで来ると酔狂でしょうねぇ。最新バージョンの1.7が発表されたのが、2009年9月で二年半以上も前、この時のベースOSがFreeBSD 7.2-RELEASEですが、このバージョンは、2010年6月でサポート終了、デスクトップ環境はKDE3で、KDE4が現行バージョンになっている現状で、一部BROKENなどとマークされるportsも現れている、DesktopBSDで開発されたdesktopbsd-toolsのportsもBROKENとなっている、という状態なので、いくら安定して動くといっても必要なメンテがちゃんとされているのか怪しい状態です。FreeBSD7.xの余命を上で心配しましたが、それよりもKDE3の余命を心配しないといけないかも知れません。KDE3が動かなくなったら、DesktopBSDは完全にアウトですから。

といいつつ、9.0-RELEASEへアップデート

とはいっても、やっぱりやります。まだ、動きましたし。手順は、以下の通りです。

  1. DesktopBSD 1.7をインストールします。
  2. キーボードの設定を日本語に変更します。Konsoleを立ち上げて、suでroot権限になって、以下のコマンドを打ちます。
     # sysinstall
    sysinstallのダイアログが表示されるので、メニューからKeymapを選び、次に表示されたキーマップリストから「Japanese 106」を選択します。
  3. Webブラウザを立ち上げ、以下のサイトからdiablo-jdkのファイルをダウンロードして、/usr/ports/distfilesに入れます。
    URL : http://www.freebsdfoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
    ベースOSを9.0にした後、インストールされている前パッケージを再インストールしますが、その時にこのファイルだけウェブ・サイトからライセンスに同意して取ってこないといけないので、その作業をGuiのブラウザが使えるこの時点で済ませてしまうということです。
  4. ports-treeをアップデートします。
     # portsnap fetch && portsnap update
  5. portmasterをインストールします。
     # cd /usr/ports/ports-mgmt
     # make config-recursive
     # make install clean
    portmasterを有効にするため、ログアウトして再ログインします。
  6. インストールされているパッケージリストを状態付きで作成するため、以下のコマンドを流します。
     # portmaster -L > /root/versions.txt
  7. デスクトップ環境を立ち上げずにSHELLで作業をしたいので、GUIのログインマネージャーを無効にしまて再起動します。/etc/ttysの以下の部分を
     ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure
    以下のように編集します。
     ttyv8 "/usr/local/bin/kdm -nodaemon" xterm off secure
    その後、以下のコマンドを打ちます。
     # shutdown -r now
  8. オリジナルベースOSの7.2-RELEASEを最新版にします。
     # freebsd-update fetch && freebsd-update install
     # shutdown -r now
     # freebsd-update install
    こうしておかないと別バージョンへのアップグレードははねられるので、必須作業です。
  9. 7.2-RELEASEから直接9.0-RELEASEへのアップグレードはできないので、一旦7.x系の最新版7.4-RELEASEにアップグレードします。
    1. 以下のコマンドを流します。
       # freebsd-update -r 7.4-RELEASE upgrade
    2. 上記の処理の過程で、設定ファイルの編集が必要になった部分について、問題ないか確認を求められるので、確認します。[ENTER]キーを押すと、viで対象ファイルが開かれますので、内容を適宜編集します。ファイルの中では、
         <<<<<<< current version >>>>>>>
         (元の内容)
         -------------------------------
         (新しい内容)
         <<<<<<< 7.4-release >>>>>>>
      といった感じで表示されるので、いらない方を消していきます。私が今回やったときは、/etc/groupを除いて全て新しい内容にしました。/etc/groupファイルでは、旧ファイルには、wheelグループに自分のユーザー名が入っていたのですが、新ファイルには、rootしか入っていなかったので、ここに自分のユーザー名を足しました。
      尚、この際、エディタは、一般人には使いにくいと評判のviが使われています。ただ、面食らうのは何もしないときはコマンドモードになっていて、普通の物書き用のアプリならファイル開いた後はキーボードたたいたら、その文字が文面に入るのに、viだと何も変わらないからという点に尽きるような気がします。以下のコマンドを覚えておいたらここでの作業はできます。
      dd 一行削除
      x 一文字削除
      a 編集モードへの切替(カーソルの後ろに文字入力)
      [ESC] 編集モードからコマンドモードへの変更
      /(字句) (字句)の検索
      :w[ENTER] 上書き保存
      :q[ENTER] エディタ終了
      大半の作業は行削除で、殆どのキー操作は消したい行にカーソルを持って行ってddを押すというものなので、最初がコマンドモードになっているというのは、実は意外と違和感ありません。
    3. インストールコマンドを打ちます。
         # freebsd-update install[ENTER]
    4. コマンドプロンプトに戻ったら、以下のコマンドを打って再起動します。
         # shutdown -r now[ENTER]
    5. 再起動したら、もう一度インストールコマンドを打ちます。
         # freebsd-update install[ENTER]
  10. 7.4-RELEASEから9.0-RELEASEへアップグレードします。
    1. 以下のコマンドを流します。
       # freebsd-update -r 9.0-RELEASE upgrade
    2. 上記の処理の過程で、設定ファイルの編集が必要になった部分について、問題ないか確認を求められるので、確認します。[ENTER]キーを押すと、viで対象ファイルが開かれますので、内容を適宜編集します。Viの操作方法は、上記を参照してください。ファイルの中では、
         <<<<<<< current version >>>>>>>
         (元の内容)
         -------------------------------
         (新しい内容)
         <<<<<<< 9.0-release >>>>>>>
      といった感じで表示されるので、いらない方を消していきます。私が今回やったときは、/etc/groupと/etc/ttysを除いて全て新しい内容にしました。/etc/groupファイルでは、旧ファイルには、wheelグループに自分のユーザー名が入っていたのですが、新ファイルには、rootしか入っていなかったので、ここに自分のユーザー名を足しました。
    3. インストールコマンドを打ちます。
         # freebsd-update install[ENTER]
    4. コマンドプロンプトに戻ったら、以下のコマンドを打って再起動します。
         # shutdown -r now[ENTER]
    5. 再起動したら、もう一度インストールコマンドを打ちます。
         # freebsd-update install[ENTER]
  11. インストールされているPackageを全てアップグレードします。
       # portmaster -adf[ENTER]
    が一発で通るのであれば、話が早いのですが、そうもいかないので、必要な個別対応を先に処理します。600近いパッケージをすべてインストールし直すことになるので、ここでは極力パッケージを使う方向で進めます。
    1. /etc/make.confに以下の記載を追加して、portsを落とす際に近くのサーバを使うようにします。
       MASTER_SITE_OVERRIDE=ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
    2. /root/.cshrcに以下の記載を追加して、packageを落とす際のサーバを指定します。今回、ftp.jp.freebsd.orgを見たところ、以下のpackageが一番新しかったので、ここを指定しました。
       setenv   PACKAGESITE   ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/
    3. 先にやっておかないとKDE3関連のpackageで軒並みbuild errorが出るので、以下のアップデートを最初にやります。
       # mv /usr/local/lib/libqt-mt.so /usr/local/lib/libqt-mt.so.old[ENTER]
       # cd /usr/ports/x11-toolkits/qt33 && make[ENTER]
       # mv /usr/local/lib/libqt-mt.so.old /usr/local/lib/libqt-mt.so[ENTER]
       # portmaster -C x11-toolkits/qt33[ENTER]
      詳しいことは、/usr/ports/UPDATINGの2010/2/5の"users of QT 3 and KDE 3"の記事を参照してください。
    4. 現在は、不要になったpackageを削除します。6.で作ったパッケージリストに「このポーツはもう何にも使われていないから消された。」とかいろいろコメントしてある(英語ですが。)ので、それから判断します。今回の作業は、具体的には以下のようなものでした。
       # pkg_delete -f gccxml-0.6.0[ENTER]
       # pkg_delete -f libusb-0.1.12_4[ENTER]
       # pkg_delete -f libutempter-1.1.5_1[ENTER]
       # pkg_delete -f lzmautils--devel-4.999.8[ENTER]
       # pkg_delete -f automake-1.5_5,1[ENTER]
       # pkg_delete -f automake-1.6.3_1[ENTER]
       # pkg_delete -f automake-1.7.9_2[ENTER]
       # pkg_delete -f automake-1.8.5_3[ENTER]
       # pkg_delete -f automake-1.9.6_3[ENTER]
       # pkg_delete -f libmusicbrainz-2.1.5[ENTER]
       # pkg_delete -f libtunepimp-0.5.3_9,1[ENTER]
       # pkg_delete -f poppler-qt-0.10.6_1[ENTER]
       # pkg_delete -f desktopbsd-tools-1.6.3[ENTER]
       # pkg_delete -f sunbird-i18n-0.9[ENTER]
       # pkg_delete -f opera-9.64.20090302_1[ENTER]
      最後のoperaは、DesktopBSDにはKonquerorとかFirefoxとかブラウザは既に十分すぎるくらいあるので、更新の手間を減らすために消したということですが。
    5. 次に名前の変わったpackageを入れ替えます。ここら辺も6.で作ったパッケージリストにあるコメントから判断します。(名前の変わった理由はいろいろあって、それは、/usr/ports/UPDATINGの対応する箇所を参照してください。)今回の作業は、具体的には以下のようなものでした。
       # portmaster --packages-if-newer -d -o net/mpd5 net/mpd[ENTER]
       # portmaster --packages-if-newer -d -o math/gmp math/libgmp4[ENTER]
       # portmaster --packages-if-newer -d -o devel/autoconf devel/autoconf262[ENTER]
       # portmaster --packages-if-newer -d -o devel/automake devel/automake110[ENTER]
       # portmaster --packages-if-newer -d -o devel/libtool devel/libtool22[ENTER]
       # portmaster --packages-if-newer -d -o devel/libltdl devel/libltdl22[ENTER]
       # portmaster --packages-if-newer -d -o multimedia/mp4v2 multimedia/mpeg4ip-libmpeg4v2[ENTER]
       # portmaster --packages-if-newer -d -o devel/apr1 devel/apr[ENTER]
       # portmaster --packages-if-newer -d -o devel/gdb66 devel/gdb6[ENTER]
       # pkg_delete -f kdebase-workspace-4.3.1[ENTER]
       # portmaster --packages-if-newer -d x11/kde4-workspace[ENTER]
       # portmaster --packages-if-newer -d -o graphics/giflib graphics/libungif[ENTER]
       # portmaster --packages-if-newer -d -o www/neon29 www/neon28[ENTER]
       # portmaster --packages-if-newer -d -o graphics/poppler-glib graphics/poppler-gtk[ENTER]
       # portmaster --packages-if-newer -d -o multimedia/phonon multimedia/qt4-phonon[ENTER]
       # portmaster --packages-if-newer -d -o multimedia/phonon-gstreamer multimedia/qt4-phonon-gst[ENTER]
       # portmaster --packages-if-newer -d -o www/firefox35 www/firefox[ENTER]
       # portmaster --packages-if-newer -d -o www/firefox35-i18n www/firefox-i18n[ENTER]
       # portmaster --packages-if-newer -d -o www/seamonkey deskutils/sunbird[ENTER]
       # portmaster --packages-if-newer -d -m LOCALIZED_LANG=ja -o editors/libreoffice editors/openoffice.org-3[ENTER]
       # portmaster --packages-if-newer -d -o lang/perl5.12 lang/perl5.8[ENTER]
       # portmaster --packages-if-newer -d -o lang/python27 lang/python26[ENTER]
      kdebase4-workspaceからkde4-workspaceへの変更は一旦元パッケージを消さないと更新できないから(/usr/ports/UPDATINGに関連記載あり)、perlとpythonの更新はデフォルトバージョンが変更されたという記載が/usr/ports/UPDATINGにあったから、openofficeからlibreofficeへの変更は、libreofficeの方が開発が活発だし、ビルドも楽だからです。
    6. 全パッケージを再ビルドします。
    7.    # portmaster -adPf[ENTER]
  12. もう一度インストールコマンドを打ちます。
       # freebsd-update install[ENTER]
  13. GUIログインマネージャーを有効にして、DesktopBSDが立ち上がるようにします。/etc/ttysの以下の部分を
     ttyv8 "/usr/local/bin/kdm -nodaemon" xterm off secure
    以下のように編集します。
     ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure

これで作業は完了です。再起動すると、元のようにDesktopBSDが立ち上がるはずです。上記の手順は、日本語になっていない状態でやっていますが、日本語にした状態からでも一緒です。ここから日本語がする手順も「DesktopBSDを日本語化しよう」と一緒です。

(2012年 5月 5日 記)