リリースが延期になった理由といつもと違う状況
FreeBSD 11.0-RELEASEの公開は当初の予定からは多少遅れたものの、メジャーアップグレードには珍しくそれほど遅延することなくリリースにこぎ着ける予定になっていました。少なくとも2016年9月末の段階ですでにFreeBSD 11.0-RELEASEのインストールイメージは世界中のミラーサーバに配布され、パッケージの配布体制も整い、あとはリリースアナウンスの実施を待つばかりといった状況でした。
しかし、ちょうどセルビアでEuroBSDCon 2016が開催されるタイミングで、OpenSSLにセキュリティ脆弱性があることが発表されるとともに、修正版の配布がはじまりました。FreeBSDはベースシステムにOpenSSLライブラリを取り込んでいるため、アナウンス直前にアナウンスを中止し、修正したバージョンを開発するという決定を行いました。
このため、世界中ですでにアナウンスよりも前にFreeBSD 11.0-RELEASEをインストールしたユーザがいるにもかかわらず、正式リリースは「FreeBSD 11.0-RELEASE」ではなくなるという少々いつもと違う状況が生まれました。この記事が公開されるころにはすでに正式版が公開されていると思います。そしてそのバージョンは「FreeBSD 11.0-RELEASE-p1」になるのではないかと見られます。パッチレベルリリースが最初のアナウンスリリースのバージョンになりそうです。
今回はFreeBSD 10.3-RELEASEなどを、このリリースアナウンス前の「FreeBSD 11.0-RELEASE」にいったんアップグレードする方法を紹介します。次回は「FreeBSD 11.0-RELEASE-p1」にアップグレードする方法を採り上げることになるでしょう(ほとんど同じ方法でアップグレードすることになるとは思いますが、upgradeで指定する名称にパッチレベルが入ってくるか、アップグレード後にさらにアップデートするといった方法になるかもしれません)。
FreeBSD 11.0-RELEASEへのアップグレード(注:アナウンス前)
FreeBSD Updateを使ったFreeBSD 11.0-RELEASEへのアップグレード作業は基本的に次のようになります。freebsd-update(8)を使って11.0-RELEASEの配布物をダウンロードしてきたあとで、インストールを実施して再起動。起動後にもう1回インストールを実施です。
この作業には時間がかかります。マシンや状況によりますが、仮想環境で動作させているとかディスク速度の遅い環境だとかなり時間がかかりますので、作業するときには注意しておいてください。
システムを11.0-RELEASEにアップグレードした後にはパッケージからインストールしてあるアプリケーションをすべて10.3などから11.0向けのバイナリにアップグレードする必要があります。この作業は次のように行います。パッケージをアップグレードした後でもう一度freebsd-update(8)を実行します。
ユーザランドが先にアップグレードされているので、最初にpkg-static(8)を使ってpkg(8)自体をアップグレードしてから作業するところがポイントとなります。すべてのパッケージをアップグレードしたあとには動作しているサービスもあるでしょうからもう一度システムを再起動しておくと良いでしょう。パッケージではなくPorts Collectionからビルドしてインストールしている場合には、もう一度すべてビルドし直してから再起動してください。
11.0-RELEASEにはセキュリティ脆弱性を抱えたままのOpenSSLが含まれていますので、基本的にパッチレベル1(11.0-RELEASE-p1」がリリースされたらすぐにアップグレードすることが望まれます。
また、このアップグレード方法は今回が最後、または11.1-RELEASEへのアップグレードで最後になる可能性もあります。現在ベースシステムもpkg(8)化する取り組みが進められていて、11.1-RELEASEで導入される予定になっているからです。それ以降はベースシステムのアップグレード作業もpkg(8)で実施できるようになる予定です。
どうなるOpenSSL?
FreeBSDから派生したプロジェクトやFreeBSDをベースとしたプロジェクトであるDragonFly BSD、TrueOS、HardenedBSDはすでにユーザランドにマージするデフォルトのライブラリをOpenSSLからLibreSSLに置き換えています。FreeBSDもPorts Collection側で利用するライブラリやユーザランドで利用するライブラリをLibreSSLに変更できるようにする取り組みがあります。
このままOpenSSLを使い続けるのか、それとも差し替え可能な仕組みを保ち続けるのか、デフォルトをOpenSSLからLibreSSLへ置き換えるのか、まだちょっとわからない状況にあります。しかし今回のEuroBSDConの感じですと、いずれはLibreSSLがOpenSSLの代わりにデフォルトで採用されるのではないか、という感じがします(ただ、ほかのプロジェクトと違いもうちょっと時間をかけて移行を進めるような気がします)。
すでに11.0-RELEASEにアップグレードすると利用するSSLのバージョンを指定するための方法がメッセージとして表示されることに気がついた方もいると思います。移行時には多少の設定などが必要になる可能性もありますので、その都度取り上げて紹介します。