試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

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.confpackage.*などを退避させておいてから)パッケージを削除し、/opt/x86-chroot/ディレクトリも消しておく。

$ sudo emerge -aC x86-chroot
$ sudo rm /opt/x86-chroot/ -fr

手順

以下、/usr/local/overlays/local/というディレクトリを使用するものとする。
流れとしては、

  1. Overlayのディレクトリを作成
  2. ${PORTDIR}(デフォルトは/usr/portage/)の下からx86-chrootディレクトリを丸ごとコピー
  3. ファイル名のバージョン番号の部分を「2007.0」へ変更
  4. MD5などのダイジェストを記録
  5. インストールの準備(/etc/make.conf内のOverlayの設定や/etc/portage/package.keywords)*1
  6. 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:

*1:Overlayなので、ebuildファイルの「KEYWORDS="-* ~amd64"」を「KEYWORDS="-* amd64"」のようにするのもあり