平衡点
2008/02/08
_ amd64 etch 内に chroot で i386 etch を install.
Core2Duo な計算機でちょっとごにょごにょしている訳ですが, 使っている Fortran Compiler が 32bit 版だった, ということで, i386 etch を chroot 内に作成する. 既に作成してある野良ビルドパッケージも使えるので(゜д゜)ウマー, と言うことで.
作成
とりあえず, /var/chroot/ia32 に作成することに(ところで ia32 って正しいのかな).
$ sudo -s # mkdir -p /var/chroot/ia32 # cdebootstrap -a i386 etch /var/chroot/ia32 http://cdn.debian.or.jp/debian
環境設定
chroot 環境へ login
# chroot /var/chroot/ia32 /bin/bash
chroot 内の /etc/apt/sources.list を修正して, パッケージの追加と削除. locales の設定, 生活環境(zsh, lv, ..etc) を導入. 一旦 chroot 環境から抜ける.
# cp /etc/resolv.conf /var/chroot/ia32/etc # cp /etc/passwd /var/chroot/ia32/etc # cp /etc/shaddow /var/chroot/ia32/etc
で一旦リブートした後で, 親環境の /etc/fstab を修正.
#vi /etc/fstab (以下を追加) proc /var/chroot/ia32/proc proc defaults 0 0 /tmp /var/chroot/ia32/tmp none bind 0 0 /home /var/chroot/ia32/home none rbind 0 0 (ここまで) # mount -a
続いて, ld の symlink を作成して, /etc/ld.so.conf を修正し, ldconfig で更新.
# cd /lib # ln -s /var/chroot/ia32/lib/ld-2.3.2.so ld-linux.so.2 # vi /etc/ld.so.conf (以下を追加) /var/chroot/ia32/lib /var/chroot/ia32/usr/lib /var/chroot/ia32/usr/X11R6/lib /var/chroot/ia32/usr/local/lib (ここまで) # ldconfig -v
これで, chroot 内では i386 なパッケージが使える.
schroot
親環境で schroot を導入して, 一般ユーザでも login できるようにしておく.
# sudo aptitude install schroot # vi /etc/schroot/schroot.conf (以下を追加) [ia32] description=Debian etch(i386) location=/var/chroot/ia32 priority=0 users=hogehoge,herohero root-users=hogehoge (ここまで)
これで, ユーザ hogehoge と herohero が chroot 内に login できる. また, hogehoge さんは root 権限でも login できる.
一般ユーザでログイン $ schroot -c ia32 I: [ia32 chroot] Running login shell: '/bin/bash' $ .... 環境変数の引き継ぎ(chroot 内で X 関連のファイルも起動可能) $ schroot -c ia32 -p I: [ia32 chroot] Running login shell: '/bin/bash' $ ... chroot 内に root で login $ schroot -c ia32 -u root I: [ia32 chroot] Running login shell: '/bin/bash' # ...
でもって, Fortran Comipler と必要な野良ビルドパッケージ install して, 計算走らせてみましたよ.
...あとはデーモンの起動と, 親子環境での syslog, logrotate かな.
ところで, Debian の amd64(X86_64) で intel Fortran Compiler ver.10 動かしてる人ってどのくらいいるんでしょ? エラーも吐かずに SEGV しますよ. i386 で動いてたプログラムが.
うががが.
参考
_ etch で Rails 2.0.
Debian パッケージになっている rubygems|libgems-ruby1.8 で rails 2.0 を使おうとしたら...なんか変な事になったので,
$ sudo dpkg --purge libgems-ruby1.8 rubygems libruby1.8-extras $ sudo aptitude install libgems-ruby1.0 rubygems libruby1.8-extras -t testing
という事で, testing 版の libgems-ruby1.8 を install してみた. 一度単に upgrade してみただけだと, なんかうまくいかなかったよー.
$ apt-show-versions -a -p libgems-ruby1.8 libgems-ruby1.8 1.0.1-4 install ok installed libgems-ruby1.8 1.0.1-4 testing libgems-ruby1.8 0.9.0-5 etch libgems-ruby1.8/testing uptodate 1.0.1-4
となりました. この環境で
$ sudo -s # gem install rails sqlite3-ruby --include-dependencies ...
さてどうでしょう...