2006.1のebuildを利用してx86-chroot 2007.0をインストール
(2008/8/30)「x86-chroot」のパッケージはメンテされずに消えてしまった(インストールできない)ため、この記事は古い内容となる。
x86_64環境で役立つことのある「x86-chroot」パッケージは、2007.0がリリースされた後も、利用できる最新版が2006.1という状態が続いている。しかし、
[引用]ファイル名: /usr/portage/app-emulation/x86-chroot/x86-chroot-2006.1.ebuild
SRC_URI="http://distfiles.gentoo.org/releases/x86/${PV}/stages/stage3-i686-${PV}.tar.bz2"
となっているため、ebuildファイルのファイル名だけ変えてみれば、2007.0のstage3をベースにしてインストールできるのではないかと思い、ローカルOverlayで試したところ、無事インストールできた。
準備
古いバージョンのx86-chrootが入っている場合、(必要に応じて、make.confやpackage.*などを退避させておいてから)パッケージを削除し、/opt/x86-chroot/ディレクトリも消しておく。
$ sudo emerge -aC x86-chroot $ sudo rm /opt/x86-chroot/ -fr
手順
以下、/usr/local/overlays/local/というディレクトリを使用するものとする。
流れとしては、
- Overlayのディレクトリを作成
- ${PORTDIR}(デフォルトは/usr/portage/)の下からx86-chrootのディレクトリを丸ごとコピー
- ファイル名のバージョン番号の部分を「2007.0」へ変更
- MD5などのダイジェストを記録
- インストールの準備(/etc/make.conf内のOverlayの設定や/etc/portage/package.keywords)*1
- emergeでインストール
$ sudo mkdir -p /usr/local/overlays/local/app-emulation $ cd /usr/local/overlays/local $ sudo cp -pr /usr/portage/app-emulation/x86-chroot/ app-emulation/ $ sudo mv app-emulation/x86-chroot/x86-chroot-2006.1.ebuild app-emulation/x86-chroot/x86-chroot-2007.0.ebuild $ sudo ebuild app-emulation/x86-chroot/x86-chroot-2007.0.ebuild digest (ここでstage3のファイルがダウンロードされる) >>> Creating Manifest for /usr/local/overlays/local/app-emulation/x86-chroot
PORTDIR_OVERLAYの値は、すでに別のOverlayを使用している場合、スペース区切りでそれも含むようにする。この書き方は、一番下にある参考URLのリンク先も参照。
ファイル名: /etc/make.conf
(他にOverlayを使用していない場合) PORTDIR_OVERLAY="/usr/local/overlays/local" (/usr/local/layman/xxxという場所を既に使っている場合) PORTDIR_OVERLAY="/usr/local/layman/xxx /usr/local/overlays/local"
ファイル名: /etc/portage/package.keywords
app-emulation/x86-chroot ~amd64
下のようになっていることを確認し、よければインストールを続行する。
$ sudo emerge -av x86-chroot (中略) [ebuild N ] app-emulation/x86-chroot-2007.0 USE="X" 0 kB [1] Total: 1 package (1 new), Size of downloads: 0 kB Portage overlays: [1] /usr/local/overlays/local
あとは、chrootの準備をしてから入る。頻繁に使う場合は/etc/init.d/x86-chrootを手動で実行する代わりに「rc-update add x86-chroot default」などのようにして追加してもOK。
$ sudo /etc/init.d/x86-chroot start $ sudo x86-chroot (x86環境を抜けた後) $ sudo /etc/init.d/x86-chroot stop
参考URL: