FreeBSD 10.0R-p1

OpenSSLのフィックスを含めたFreeBSD 10.0R-p1がリリースされました。freebsd-updateなどでアップデートすることができます。OpenSSLももちろん修正されているのですが、openssl version コマンドで表示されるバージョン番号は1.0.1eのままのため、これだけでは本当に直ったのか不安になるかもしれません。

httpsなどで利用している場合にはチェックサイトからテストするとよいようです。

Virtualbox の SSE4.1/4.2 のサポート

Virtualbox 4.3.8 がリリースされました。
このリリースには実験的にSSE4.1/4.2のサポートが含まれています。
ホストのCPUがSSE4.1/4.2をサポートしている場合、次のコマンドを実行するとゲスト側のCPUでSSE4.1/4.2が利用可能になります。


$ VBoxManage setextradata "<仮想マシン名>" VBoxInternal/CPUM/SSE4.1 1
$ VBoxManage setextradata "<仮想マシン名>" VBoxInternal/CPUM/SSE4.2 1

portsのicuアップデート

ports/devel/icuのライブラリバージョンが上がりました。依存しているportsの再コンパイルが必要です。

# portmaster -w -r icu

で依存するportsを再コンパイルしてくれますが、もしかするとavahiの再コンパイルに失敗するかもしれません。

# rm /usr/local/lib/libavahi-*

で一度avahi関連のライブラリを削除してからコンパイルするとよいでしょう。

portsのデフォルトバージョン

FreeBSDのportsにはperl,ruby,pythonといったよく使われるスクリプト言語のエンジンが含まれています。これらを使用したportsも多いため、どのバージョンを使用するのかは重要です。

portsを使ってビルドしてインストールする場合には/etc/make.confでどのバージョンのperl,ruby,pythonを使用(もしくはビルド)するのかを指定することができます。

/etc/make.confに次のように書くと perl 5.18, ruby 2.0 を使用してくれます。

DEFAULT_VERSIONS= perl5=5.18 ruby=2.0

指定できるものとデフォルト値は次の通りです。

portsの名前 デフォルトバージョン
lua 5.2
perl5 5.16
pgsql 9.0
python 2.7
python2 2.7
python3 3.3
ruby 1.9
apache 2.2
fpc 2.6.2
mysql 5.5
php 5.4

独自に新しいバージョンを使用するときには書き換えると良いでしょう。

※2014/2/13にphp,apache,mysqlが追加されました。

FreeBSD 10 へのアップグレード

FreeBSD 10.0のリリースが近いようです。既存の9.x系からアップグレードする時には以下のことに気をつける必要があります。

1. bindの削除

ベースシステムからbindが削除されました。それに伴いunboundが新たにインストールされます。このunbound用にuidとgidが新たに設けられていますため、/etc/passwd /etc/master.passwd /etc/group にunboundエントリが必要になります。ソースコードをビルドしてアップグレードする場合、mergemaster -p を適切に実行しないとインストールに失敗しますので、/usr/src/Makefileに書かれた手順を良く読んでから実行するとよいです。ちなみにnslookup、digといったコマンドもbind由来のため、10.0からはベースシステムに含まれません。

2. pkgコマンドへの移行

パッケージ管理のコマンドがpkg(1)に統一されました。pkg_install、pkg_add、pkg_infoなどの古いコマンド類はインストールされません。既存のports&packagesでインストールされた環境を引き継ぐ場合にはpkg2ng(1)コマンドでpkg用のデータベースを作成する必要があります。pkg2ngを実行すれば、portmasterなどのコマンドも既にpkgに対応しているため利用可能になります。

3. libiconvの統合

今までportsで提供されていたlibiconvがlibcに取り込まれました。古いバイナリをそのまま利用し続けることも可能ですが、新たなバイナリをリンクする場合、競合する可能性があります。移行を考えるなら、libiconvを使用している全てのports&packagesを再コンパイルする必要がありますが、そのためには既存のlibiconvを削除した上で再コンパイルしないといけませんので、portsの依存関係によっては一筋縄では行かないこともありえます。必要なデータのバックアップを取ってクリーンインストールするのも検討する価値はあると思います。