[vine-users:081378] i386環境からvbootstrapでx86_64環境を構築

ARAI Shun-ichi hermes @ ceres.dti.ne.jp
2011年 9月 5日 (月) 14:40:00 JST


あらいです。

 vbootstrapについて、質問させてください。
 というか多分apt-getについてになると思いますが。

 まず、Subjectを見て頂くと、かなり奇妙なことをしようとしていることがお
わかりかと思います。
 現状、マシントラブルからの復旧等、ややこしい状況があって、以下のよう
なことを行おうとしています。

CPU: product: AMD Phenom(tm) II X4 910e Processor
     (lshwの結果より抜粋)
カーネル: 3.0.3
アーキ: x86_64
     (uname -mの結果)

 こういうLinux(Gentoo)で、Vine5.2(i386) をchrootにより使っています。こ
れは、当方既存の環境(トラブル以前)のディスクのものです。
 ここから、Vine6.0(x86_64)環境を一時的に構築し、chrootにより使ってみた
いのですが、Vine5.2でvbootstrapを使用すると、glibc等のインストールに失
敗します。こんな感じです。

# vbootstrap 6.0_x86_64 /home/Work/Vine_6.0_x86_64
/home/Work/Vine_6.0_x86_64 において RPM データベースを初期化しています。
apt データベースを更新しています。
ベースシステムをインストールしています。
変更を適用しています...
準備中                                ############################## [100%]
更新/インストール中
  setup-2.8.31-1vl6.noarch               ############################## [100%]
完了
E: パッケージ glibc はインストールすることができません
E: パッケージ coreutils はインストールすることができません
E: パッケージ bash はインストールすることができません
E: パッケージ apt はインストールすることができません
(後略)

 こういうことも試してみました。

# sh -x `which vbootstrap` 6.0_x86_64 /home/Work/Vine_6.0_x86_64
(中略)
変更を適用しています...
準備中                                ############################## [100%]
更新/インストール中
  setup-2.8.31-1vl6.noarch               ############################## [100%]
完了
+ for i in '$BASE_PKGS'
+ apt-get -y -qq -o Dir::Etc::sourcelist=/usr/share/vbootstrap/sources.list.d/6.0_x86_64 -o RPM::RootDir=/home/Work/Vine_6.0_x86_64 -o Dir::Etc::sourceparts=/home/Work/Vine_6.0_x86_64/etc/apt/sources.list.d -o Dir::State=/home/Work/Vine_6.0_x86_64/var/lib/apt -o Dir::Cache=/home/Work/Vine_6.0_x86_64/var/cache/apt install glibc
E: パッケージ glibc はインストールすることができません
(後略)

 apt-cacheを試してみると、こうなります。

# apt-cache -o Dir::Etc::sourcelist=/usr/share/vbootstrap/sources.list.d/6.0_x86_64 -o RPM::RootDir=/home/Work/Vine_6.0_x86_64 -o Dir::Etc::sourceparts=/home/Work/Vine_6.0_x86_64/etc/apt/sources.list.d -o Dir::State=/home/Work/Vine_6.0_x86_64/var/lib/apt -o Dir::Cache=/home/Work/Vine_6.0_x86_64/var/cache/apt search glibc
compat32-glibc - GNU libc ライブラリ
compat32-glibc-devel - 標準 C ライブラリで使われるオブジェクトファイル
compat32-glibc-static - -static リンクのための静的 C ライブラリ
compat32-libstdc++3 - GNU コンパイラ集 - C++ ライブラリ
libstdc++2_10-compat - C++ compatibility library for the GNU Compiler Collection.

 aptが、データベースを検索するとき、どこかでチェックをして自分で弾いて
いるのかと思いますが、なにぶんC++には不案内なもので、よくわかりません。
 depcache.ccのGetCandidateVer()辺りかな、とか思うのですが。

 /etc/apt/apt.conf.d/multilib.confを適当に編集してみたり、環境変数
HOSTTYPE, MACHTYPEをいじったりしてみましたが、うまく行きませんでした。
 ただ、ここの辺りは網羅的にやったわけでもないので、うまくするとできる
のかも知れませんが。

 本来の使用法からは外れているかと思いますが、どうにかaptを騙してあげる
ことはできないでしょうか。
 アドバイスをよろしくお願いします。


vine-users メーリングリストの案内