debian/lenny で最新VirtualBox-ose を使う
debian/lenny には VirtualBox のOSE版パッケージがあるがバージョンが古い。新しいバージョンが debian backports にあるのでそれをインストール。インストール後、virtualbox-ose-sourceもインストールして、moduleをmodule-assistant でビルド。ビルドしたモジュールをインストールすれば新しいバージョンが使える。
debian/lenny には VirtualBox のOSE版パッケージがあるがバージョンが古い。debianのポリシーとして、bugfixやsecurity fix以外のアップグレードはなかなかでない。virtualbox に限らず、新しいバージョンが使いたい場合、 backports などのリポジトリを使うと新しいバージョンが入っている場合がある。
virtualbox ose 版は幸い新しいバージョンが入っていたので、それをインストールする。その為にはまず、backports のリポジトリを追加する必要がある。lenny-backports を追加するには、以下の apt line を /etc/apt/sources.list.d/ 以下に保存する。この時拡張子を list にする。
$ cat /etc/apt/sources.list.d/backports.list
deb http://www.jp.backports.org lenny-backports main contrib non-free
deb-src http://www.jp.backports.org lenny-backports main contrib non-free
各 debian リポジトリにある 鍵をインストールする。鍵をインストールしないと、そのリポジトリからインストールする度に毎回、以下のようなwarningが表示されてしまう。
WARNING: The following packages cannot be authenticated!
鍵のインストールは以下の通り。もちろんこの鍵のインストール時には上記のwarningが出る。
# aptitude update
# apt-get install debian-backports-keyring
これで、backportsのリポジトリが追加された。しかし、そのままでは backports に同じパッケージの新しいバージョンが存在しても利用できない。インストールの度に aptitude の -t オプションを使ってターゲットリリースを指定しても良いが、preference に追加することで各パッケージのターゲットリリースを指定できる。指定には /etc/apt/preferencesに以下の様に書く。
$ cat /etc/apt/preferences
Package: virtualbox-ose
Pin: release a=lenny-backports
Pin-Priority: 999Package: virtualbox-ose-source
Pin: release a=lenny-backports
Pin-Priority: 999
この設定の後、virtualbox-ose(及びvirtualbox-ose-source) が既にインストールされていれば、aptitude safe-upgrade なのでアップグレードが行われる。インストールされてない場合でも、aptitude install virtualbox-ose などと普段通りインストールすればbackports の新しいバージョンがインストールされる。
backportsのvirtualbox-ose は kernel-module を自動的に更新しない。そのため、virtualbox-ose-source をインストールして、システムのカーネル用にmoduleをコンパイルする必要がある。kernel moduleのコンパイルには、module-assistant パッケージを使う。module-assistant を初めて使う場合、カーネルヘッダなどの依存を prepare コマンドで行う。build時にはソースコードのパッケージであるvirtualbox-ose-source をインストールしておく。
# m-a prepare
# m-a build virtualbox-ose
コンパイルが正しく終わると install コマンドを使って、今ビルドした module をインストールできる。ビルドされたmoduleは /usr/src 以下にdeb化されているので、dpkgを使ってインストールしても良い。
# m-a install virtualbox-ose
インストールしたmoduleはkernelにはまだ組み込まれないので、modprobe を使って組み込む。新しい virtualboxは vboxnetflt という ブリッジネットワーク用のモジュールがあるのでそれもインストールする。
# modprove vboxdrv
# modprove vboxnetflt
起動時に、このモジュールを組み込ませる為には /etc/modules に書いておく。
まとめ
- backports には新しいパッケージやバージョンがある
- backports のパッケージのインストールは aptitude の -t か preferences で指定が必要
- backports の virtualbox-oseはmoduleのビルドが必要
- moduleのビルドにはvirtualbox-ose-source が必要。このパッケージも backports から持ってくる
- moduleのビルドには module-assitantを利用
Posted on 2011-04-06 at 23:43
Ubuntu上でWindowsのバーチャルボックスがダウンロードできるサイトってありますか?