Date: Sat, 22 Dec 2007 23:59:04 +0900[[BR]] From: NAKAMURA Kenta [[BR]] Subject: [VineSeed-x86_64:00453] Re: How to x86_64 (Re: 1st step to x86-64 env)[[BR]] Message-Id: <20071222231326.8221.F0A0AD85@vinelinux.org>[[BR]] 中村です。 On Fri, 28 Sep 2007 11:17:00 +0900 Satoshi IWAMOTO wrote: >  僭越ながら、メモをまとめました。(230行ほど) >  よろしければ査読いただいて、ツッコミ入れていただけると >  嬉しいです。 久しぶりに x86_64 の環境を作ってみましたので、ざっくり手順のメモを私も 書いてみました。 必要なパッケージをまとめたアーカイブを作りましたので、この手順に沿えば Vine 4.1 を最小構成でインストールした後、2-30分で VineSeed-x86_64 の 環境が作れるようになります。 なお、現在は VineSeed のパッケージには存在しない compat32-openssl097 compat32-neon25 compat32-sqlite3 が必要です。 また、kernel-2.6.23 は新しい mkinitrd >= 4.2.1.8-0vl2 を必要とするので 手間を省くために最初は kernel-2.6.16 をインストールしています。 == 準備:最小環境での Vine 4.2 環境の作成 == Vine 4.2 を最小構成でインストールし、コンパクトな Vine の環境を構築します。 ただし、『インスト-ルの種類』を選択する画面にて'''最小構成'''を選択した場合には、ssh, lftp, wgetなどのパッケージがインストールされませんので、この後の手順でrpmパッケージのダウンロードに困ることになります。少なくとも lftp, wget の2つは追加で導入しておくといいでしょう。[[BR]] なお、これらのパッケージがあらかじめインストールされますので、『パッケージグループの選択』画面にて'''最小'''を選択することをお奨めします。 [[Image(minimum-config.png)]] 1. 必要なパッケージをダウンロードしてアーカイブを展開 ファイルリストは末尾に添付します。 どこか置くところがあればアーカイブをお渡しします。 == 1. kernel をインストールし再起動 == {{{ # rpm -ihv --ignorearch stage0/kernel-2.6.16-0vl73.x86_64.rpm # /sbin/reboot }}} 『パッケージグループの選択』画面にて'''最小'''を選択した場合には、binutils がインストールされないため、いわもとさんメモの手順 5 mkinitrd の書き換えは不要です。 == 2. glibc の入れ替え == {{{ # rpm -Uhv --ignorearch stage1/glibc-* \ stage1/compat32-glibc-2.5-12vl3.i686.rpm \ stage1/tzdata-2007d-1vl1.noarch.rpm }}} == 3. binutils の入れ替え == {{{ # rpm -Uhv --ignorearch stage2/binutils-2.17.50.0.6-2vl3.x86_64.rpm }}} == 4. rpm, apt とそれに必要なパッケージの入れ替え == {{{ # rpm -Uhv --ignorearch --force stage3/* # echo x86_64-redhat-linux > /etc/rpm/platform }}} インストール済みの ncurses-5.4-0vl3.i386 と同じリビジョンの ncurses をインストールしようとするため、 conflict が起こるメッセージが出ます。 そこで、ここでだけは --force オプションを追加します。 == 5. i386 package の x86_64 package への置き換え == 1. x86_64 パッケージ の無いものをあらかじめ削除しておきます。 {{{ # rpm -e dump rmt kernel-module-ndiswrapper kernel-module-madwifi bcm43xx-fwcutter nss_ldap }}} compat32-openldap が無いので nss_ldap も削除しておきます。 2. apt パッケージインデックスファイルの同期 {{{ # apt-get update }}} インストール後、ここで初めて apt-get update します。 x86_64パッケージの apt をインストールする前に apt-get update を実行していた場合は、 /var/cache/apt/pkgcache.bin を消す必要があるようです。 3. console-tools.i386 を kbd.x86_64 への置き換え {{{ # apt-get reinstall kbd initscripts compat32-glib2 }}} console-tools.x86_64 パッケージが無いので、あらかじめ console-tools.i386 を kbd.x86_64 に入れ替えておきます。 4. i386 package の x86_64 package への置き換え {{{ # apt-get reinstall \ $(rpm -qa --qf '%{name}.%{arch}\n' | grep -v compat32- | grep i386 | sed 's/\.i386//g') \ compat32-pam }}} compat32 パッケージ以外の i386 パッケージを reinstall します。 依存関係で必要となる compat32-* パッケージも追加で指定しておきます。 5. 重複してインストールされている i386パッケージの削除 {{{ # rpm -e $(rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}\n' | grep -v compat32- | grep i386) \ compat32-pam compat32-ncurses }}} 一部 compat32-* パッケージが不足していて 依存関係を満たせない compat32-* パッケージもここで削除します。 == 6. 完了 == {{{ # apt-get upgrade }}} = Appendix. インストールしたパッケージのリスト = インストールに使用したパッケージは次の通りです。 stage* というディレクトリに分けてあらかじめ用意しています。 stage0 ディレクトリ以外は今日 (2007/12/25) 現在の VineSeed のパッケージです。 stage0/kernel-2.6.16-0vl73.x86_64.rpm[[BR]] stage1/compat32-glibc-2.5-12vl3.i686.rpm[[BR]] stage1/glibc-2.5-12vl3.x86_64.rpm[[BR]] stage1/glibc-common-2.5-12vl3.x86_64.rpm[[BR]] stage1/glibc-common-extra-2.5-12vl3.x86_64.rpm[[BR]] stage1/glibc-headers-2.5-12vl3.x86_64.rpm[[BR]] stage1/glibc-kernheaders-2.6.12.1-0vl2.x86_64.rpm[[BR]] stage1/tzdata-2007d-1vl1.noarch.rpm[[BR]] stage2/binutils-2.17.50.0.6-2vl3.x86_64.rpm[[BR]] stage3/apt-0.5.15lorg3.93-0vl2.x86_64.rpm[[BR]] stage3/beecrypt-4.1.2-9vl5.x86_64.rpm[[BR]] stage3/bzip2-1.0.3-0vl2.x86_64.rpm[[BR]] stage3/compat32-beecrypt-4.1.2-9vl5.i386.rpm[[BR]] stage3/compat32-bzip2-1.0.3-0vl2.i686.rpm[[BR]] stage3/compat32-device-mapper-1.02.22-0vl3.i386.rpm[[BR]] stage3/compat32-e2fsprogs-1.40.2-0vl3.i386.rpm[[BR]] stage3/compat32-libexpat-1.95.8-0vl6.i686.rpm[[BR]] stage3/compat32-ncurses-5.4-0vl3.i686.rpm[[BR]] stage3/compat32-neon25-0.25.5-0vl3.i386.rpm[[BR]] stage3/compat32-openssl-0.9.8g-0vl1.i686.rpm[[BR]] stage3/compat32-openssl097-0.9.7m-0vl4.i386.rpm[[BR]] stage3/compat32-popt-1.10.2.2-0vl2.i386.rpm[[BR]] stage3/compat32-readline-5.2-0vl1.i386.rpm[[BR]] stage3/compat32-readline4-4.3-5vl4.i686.rpm[[BR]] stage3/compat32-sqlite3-3.4.2-0vl2.i386.rpm[[BR]] stage3/compat32-zlib-1.2.3-0vl5.i686.rpm[[BR]] stage3/device-mapper-1.02.22-0vl3.x86_64.rpm[[BR]] stage3/e2fsprogs-1.40.2-0vl3.x86_64.rpm[[BR]] stage3/elfutils-libelf-0.126-0vl1.x86_64.rpm[[BR]] stage3/expat-1.95.8-0vl6.x86_64.rpm[[BR]] stage3/libexpat-1.95.8-0vl6.x86_64.rpm[[BR]] stage3/libgcc-4.1.2-0vl15.x86_64.rpm[[BR]] stage3/libstdc++34-4.1.2-0vl15.x86_64.rpm[[BR]] stage3/libxml2-2.6.30-0vl1.x86_64.rpm[[BR]] stage3/ncurses-5.4-0vl3.x86_64.rpm[[BR]] stage3/neon-0.26.3-0vl1.x86_64.rpm[[BR]] stage3/neon25-0.25.5-0vl3.x86_64.rpm[[BR]] stage3/openssl-0.9.8g-0vl1.x86_64.rpm[[BR]] stage3/openssl097-0.9.7m-0vl4.x86_64.rpm[[BR]] stage3/popt-1.10.2.2-0vl2.x86_64.rpm[[BR]] stage3/readline-5.2-0vl1.x86_64.rpm[[BR]] stage3/readline4-4.3-5vl4.x86_64.rpm[[BR]] stage3/rpm-4.4.2.2-0vl2.x86_64.rpm[[BR]] stage3/rpm-libs-4.4.2.2-0vl2.x86_64.rpm[[BR]] stage3/rpm-python-4.4.2.2-0vl2.x86_64.rpm[[BR]] stage3/sqlite3-3.4.2-0vl2.x86_64.rpm[[BR]] stage3/zlib-1.2.3-0vl5.x86_64.rpm