BSD界隈四方山話

第8回開発環境を追いかける-TrueOS編

開発環境を追いかける方法-PC-BSD/TrueOS

最新の成果物はHEADブランチにコミットされますので、最新の機能を使いたい場合にはこの最新の環境を常に維持し続ける必要があります。基本的にはソースコードをアップデートして、カーネルとシステムを再構築してインストール、システム設定ファイルなどをマージしてから再起動という手順を踏むことになります。

しかしこれは、開発者ではなくユーザが常に実施するには、ちょっとばかり手間がかかるかもしれません。もっと手軽に開発環境を維持する方法はないでしょうか? いろいろなやり方があると思いますが、今だとPC-BSDまたはTrueOSの開発版(現在だと11-CURRENT)を使うのがお手軽です。

PC-BSDはFreeBSDをベースとしたワークステーション(デスクトップ)目的のディストリビューション、TrueOSはPC-BSDのエディションの一つのようなもので、用途をサーバにしたものです。PC-BSDプロジェクトは1ヶ月ごとのアップデート周期でこれらディストリビューションの開発版を提供しています。アップデート作業も基本的にはアップデートコマンドを入力するだけです。

TrueOSは素インストールのFreeBSDと比較して、ある程度システムが設定されているのと、ある程度のパッケージも最初からインストールされています。とりあえず動作するCURRENTのサーバがあればよい、といった場合にはTrueOSの開発版はロジカルな選択肢ではないかと思います。

TrueOS 11-CURRENTのインストール方法

インストールは素のFreeBSDとは異なりますが、特に迷うことはないでしょう。ダウンロードサイトから11.0-CURRENTの最新のTrueOS ISOインストールイメージをダウンロードしてきてインストールしてください。次にスクリーンショットでインストールの流れだけ書いておきます。

図1 TrueOS 11.0-CURRENTインストーラ
図1 TrueOS 11.0-CURRENTインストーラ
図2 インストール先のディスクを選択
図2 インストール先のディスクを選択
図3 指定したディスクすべてを使用するかを指定
図3 指定したディスクすべてを使用するかを指定
図4 ディスクフォーマットを指定(GPTを選択しておけばよいでしょう)
図4 ディスクフォーマットを指定(GPTを選択しておけばよいでしょう)
図5 ブートマネージャを指定(GRUBを選択)
図5 ブートマネージャを指定(GRUBを選択)
図6 ディスクをGELIで暗号化するか選択
図6 ディスクをGELIで暗号化するか選択
図7 rootのパスワードを入力
図7 rootのパスワードを入力
図8 一般ユーザのユーザ名を入力
図8 一般ユーザのユーザ名を入力
図9 そのユーザのパスワードを入力
図9 そのユーザのパスワードを入力
図10 そのユーザのフルネームを入力
図10 そのユーザのフルネームを入力
図11 そのユーザのデフォルトシェルを選択
図11 そのユーザのデフォルトシェルを選択
図12 ホスト名を入力
図12 ホスト名を入力
図13 ネットワークを有効化
図13 ネットワークを有効化
図14 DHCPを使うか静的に設定するか選択
図14 DHCPを使うか静的に設定するか選択
図15 SSHを有効にするか選択
図15 SSHを有効にするか選択
図16 Webブラウザ経由でのシステム管理機能を有効にするかどうか選択
図16 Webブラウザ経由でのシステム管理機能を有効にするかどうか選択
図17 Installを選択
図17 Installを選択
図18 インストールを開始
図18 インストールを開始
図19 インストール完了
図19 インストール完了

インストールが完了したらシステムを再起動します。これでTrueOS 11.0-CURRENTが起動してくると思います。

TrueOS 11.0-CURRENTを最新版へアップデートする方法

TrueOS 11.0-CURRENTのシステムおよびパッケージは今のところ月に1回のペースでアップデートが提供されています。基本的にはこの最新版へ毎月アップデートするというのがTrueOS 11.0-CURRENTの使い方です。

図20 uname(1)でバージョンを確認
[root@current] ~# uname -a
FreeBSD current.ongs.co.jp 11.0-CURRENTAPRIL2015svn280766 FreeBSD 11.0-CURRENTAPRIL2015svn280766 #0 7ea2786(master): Fri Mar 27 21:15:50 EDT 2015     root@avenger:/usr/obj/root/pcbsd-build-11-CURRENTAPRIL2015/git/freebsd/sys/GENERIC  amd64
[root@current] ~#
図21 freebsd-version(1)でカーネルとユーザランドのバージョンを確認
[root@current] ~# freebsd-version -uk
11.0-CURRENTAPRIL2015svn280766
11.0-CURRENTAPRIL2015svn280766
[root@current] ~#

アップデートにはpc-updatemanagerコマンドを使います。pc-updatemanagerコマンドでシステムとパッケージの双方が最新版へアップデートされます。

図22 pc-updatemanagerコマンドでアップデートを実施
[root@current] ~# pc-updatemanager
pc-updatemanager: Usage
----
  branches              - List available system branches
  chbranch <tag>        - Change to new system branch
  check                 - Check for system updates
  install <tag>,<tag2>  - Install system updates
  pkgcheck              - Check for updates to packages
  pkgupdate             - Install packages updates
  fbsdupdate            - Install freebsd-update patches
  fbsdupdatepkgs        - Install freebsd-update patches and any package updates
  syncconf              - Update PC-BSD pkgng configuration
  confcheck             - Check PC-BSD pkgng configuration
  cron                  - Perform delayed check for system and pkgng updates.

[root@current] ~#

まず、サブコマンドにcheckを指定してアップデート対象が存在しているかどうかを調査します。

図23 checkサブコマンドでアップデート対象があるかどうかチェック
[root@current] ~# pc-updatemanager check
Checking for FreeBSD updates...

The following updates are available:
------------------------------------
NAME: System Update to 11.0-CURRENTMAY2015svn282515
TYPE: SYSTEMUPDATE
TAG: fbsd-11.0-CURRENTMAY2015svn282515
VERSION: 11.0-CURRENTMAY2015svn282515

To install: "pc-updatemanager install fbsd-11.0-CURRENTMAY2015svn282515"

*WARNING* End of Life *WARNING*
-----------------------------------
This version of PC-BSD / TrueOS has passed its EOL date of:
Fri May  1 01:01:01 UTC 2015
You are strongly encouraged to upgrade your system!
-----------------------------------
[root@current] ~#

アップデートが存在している場合To install:のあとにアップデート方法が出力されますので、このコマンドをそのまま実行します。

図24 アップデートの実行
[root@current] ~# pc-updatemanager install fbsd-11.0-CURRENTMAY2015svn282515
Stopping syscache...
Updating the package repo database...
Cleaning old pkg upgrade cache...
Verifying / fetching packages for ports-mgmt/pkg - pkg-1.5.1.txz
Updating database digests format... done
The following packages will be fetched:

New packages to be FETCHED:
        pkg-1.5.1 (100.00% of 2 MiB: 2 MiB)

The process will require 2 MiB more space.
2 MiB to be downloaded.
Fetching pkg-1.5.1.txz... done
Verifying / fetching packages for misc/trueos-base - trueos-base-1427204819.txz
The following packages will be fetched:

New packages to be FETCHED:
        trueos-base-1427204819 (0.00% of 120 MiB: 824 B)
                ...略...
        nano-2.4.1 (0.32% of 120 MiB: 393 KiB)

The process will require 120 MiB more space.
120 MiB to be downloaded.
Fetching trueos-base-1427204819.txz... done
                ...略...
Fetching nano-2.4.1.txz... done
Verifying / fetching packages for sysutils/pcbsd-appweb - pcbsd-appweb-1428431721.txz
The following packages will be fetched:

New packages to be FETCHED:
        pcbsd-appweb-1428431721 (6.33% of 4 MiB: 267 KiB)
                ...略....
        libXmu-1.1.2_3,1 (2.26% of 4 MiB: 95 KiB)

The process will require 4 MiB more space.
4 MiB to be downloaded.
Fetching pcbsd-appweb-1428431721.txz... done
                ...略...
Fetching libXmu-1.1.2_3,1.txz... done
-----------------------------------------------
Creating stage BE...
Pruning old boot-environments...
Mounting the stage BE...
Mounted successfully on '/.updateStage'
Preparing the new boot-environment... (This may take a while)
Looking up fbsd-update.pcbsd.org mirrors... none found.
Fetching public key from fbsd-update.pcbsd.org... done.
Fetching metadata signature for 11.0-CURRENTAPRIL2015svn280766 from fbsd-update.pcbsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/doc world/lib32

The following components of FreeBSD do not seem to be installed:

Fetching metadata signature for 11.0-CURRENTMAY2015svn282515 from fbsd-update.pcbsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 2836 patches.....10....20....30....40....50....60....70....80....90....100....110....120
                        ...略...
.2760....2770....2780....2790....2800....2810....2820....2830... done.
Applying patches... done.
Fetching 2989 files... done.

The following files will be removed as part of updating to 11.0-CURRENTMAY2015svn282515-p0:
/boot/kernel/oce.ko
                        ...略...
/var/db/etcupdate/current/etc/libmap32.conf

The following files will be added as part of updating to 11.0-CURRENTMAY2015svn282515-p0:
/boot/brand-fbsd.4th
                        ...略...
/var/db/etcupdate/current/usr/tests/etc/rc.d/routing_test

The following files will be updated as part of updating to 11.0-CURRENTMAY2015svn282515-p0:
/.cshrc
                        ...略...
/var/db/mergemaster.mtree
To install the downloaded upgrades, run "/.fbsdup install".
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/.fbsdup install" again to finish installing updates.
Unmounting stage BE...
Unmounted successfully
GRUB configuration updated successfully
Renamed successfully
GRUB configuration updated successfully
Renamed successfully
GRUB configuration updated successfully
Activated successfully
Generating grub configuration file ...
Found theme: /boot/grub/themes/pcbsd/theme.txt
done
Installing GRUB to da0
Starting syscache...
Update stage one is finished! Please reboot to start stage 2.
[root@current] ~#

アップデートの第1段階が終了したらシステムを再起動します。再起動後に自動的にアップデートの第2段階が実行され、自動的に再起動がかかります。

図25 システムを再起動
[root@current] ~# shutdown -r now

起動してきたシステムにログインしてuname(1)やfreebsd-version(1)でバージョンを確認すると、ここでは4月版から5月版へアップデートされていることがわかります。

図26 uname(1)でバージョンを確認
[root@current] ~# uname -a
FreeBSD current.ongs.co.jp 11.0-CURRENTMAY2015svn282515 FreeBSD 11.0-CURRENTMAY2015svn282515 #0 b951e85(master): Tue May  5 21:21:23 EDT 2015     root@bellicose:/usr/obj/root/pcbsd-build-current/git/freebsd/sys/GENERIC  amd64
[root@current] ~#
図27 freebsd-version(1)でバージョンを確認
[root@current] ~# freebsd-version -uk
11.0-CURRENTMAY2015svn282515
11.0-CURRENTMAY2015svn282515
[root@current] ~#

まとめ

毎日ではないものの、時々最新版の機能を試したいといった場合には、こうした使い方もできます。

おすすめ記事

記事・ニュース一覧