Changes between Initial Version and Version 1 of VineSeed_x86_64_setup_iwamoto


Ignore:
Timestamp:
2007/12/23 00:59:45 (16 years ago)
Author:
daisuke
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VineSeed_x86_64_setup_iwamoto

    v1 v1  
     1= VineSeed -> VineSeed x86_64 への更新手順 = 
     2 
     3 
     41. 最小環境での VineSeed 環境の作成 
     5 
     6 Vine 4.1 を最小構成で install し、コンパクトな Vine の環境を構築。 
     7 但し、package の download が出来ないと困るので lftp、wget の2つは 
     8 追加で導入しておく。 
     9 
     10 
     112. Vine 4.1 -> VineSeed x86 への更新 
     12 
     13 apt line を VineSeed に書き換えて、VineSeed x86 環境へ移行。 
     14 
     15 現状、Vine 4.1 と VineSeed x86 では toolchain が変わっているため、 
     16 apt-get dist-upgrade が必須。 
     17 apt-get upgrade では、ライブラリの互換が取れず立ち上がらない。 
     18 (浮動小数点なんちゃらの連発で逝ってしまう) 
     19 
     20 VineSeed 環境に移行後、reboot する。 
     21 再度、apt-get update, apt-get upgrade をして更新漏れの確認。 
     22 
     23 
     243. package の download 
     25 
     26 適当な mirror から、VineSeed/x86_64/RPMS.main の package を 
     27 すべて download する。 
     28 また、VineSeed/x86_64/pool から compat32-* package をすべて 
     29 download する。 
     30 
     31 とりあえず、devel package は不要なので、 
     32 
     33{{{ 
     34 mkdir devel 
     35 mv *-devel*rpm devel 
     36}}} 
     37 
     38 とかして目障りにならないところに移動しておく。 
     39 
     40 
     414. 不要なサービスの停止、package 削除 
     42 
     43 Vine 4.1CR をベースにした場合では Wnn 関係が入っているので停止。 
     44 package も削除する。 
     45 network 関係(iptables, ppp, rp-pppoe, postfix など)も当面不要なので 
     46 ネットワーク接続を維持できる最小環境を残し、停止、package 削除する。 
     47 
     48 ここで可能な限り package を絞らないとあとで苦労が増える。 
     49 
     50 
     515. ld.so.conf、mkinitrd の書き換え 
     52 
     53 /etc/ld.so.conf に /lib64と /usr/lib64 を加える。 
     54 
     55 /sbin/mkinitrd を書き換えて、cp が使われるようにする。 
     56 (あとで strip コマンドが死ぬため) 
     57 
     58{{{ 
     59#    if [ -x /usr/bin/strip ]; then 
     60#        /usr/bin/strip -g $verbose /lib/modules/$kernel/$MODULE -o $MNTIMAGE/lib/$(basename $MODULE) 
     61#    else 
     62       cp $verbose -a /lib/modules/$kernel/$MODULE $MNTIMAGE/lib 
     63#    fi 
     64}}} 
     65 
     66 vi などのエディタが使えなくなると困るのでこの段階で更新してしまう。 
     67 
     68 
     696. glibc まわりの更新(その1) 
     70 
     71 glibc の更新をする。[[BR]] 
     72 
     73 現状のパッケージで、依存関係を満たすのは以下の通り。 
     74 
     75{{{ 
     76rpm -Uvh --force --ignorearch glibc-2.5-12vl3.x86_64.rpm \ 
     77glibc-common-2.5-12vl3.x86_64.rpm \ 
     78glibc-headers-2.5-12vl3.x86_64.rpm \ 
     79glibc-kernheaders-2.6.12.1-0vl2.x86_64.rpm  \ 
     80compat32-glibc-2.5-12vl3.i686.rpm \ 
     81zlib-1.2.3-0vl5.x86_64.rpm \ 
     82compat32-zlib-1.2.3-0vl5.i686.rpm \ 
     83bzip2-1.0.3-0vl2.x86_64.rpm \ 
     84compat32-bzip2-1.0.3-0vl2.i686.rpm \ 
     85tzdata-2007d-1vl1.noarch.rpm 
     86}}} 
     87 
     88 (細かい package のバージョンは更新によって日々変わる) 
     89 
     90 上記の内容を file に落とし bash に食わせて実行する。 
     91 (あとでもう1度実行するため) 
     92 「package 内部 script の実行が出来ない」というエラーが出るが無視する。 
     93 
     94 
     957. kernel の更新 
     96{{{ 
     97rpm -Uvh --force kernel-2.6.16-0vl85.x86_64.rpm 
     98}}} 
     99 
     100 で突っ込む。 
     101 
     102 /boot に kernel が入っているか、initrd image が出来ているかを確認する。 
     103 
     104 
     1058. reboot 
     106 
     107 grub の対話モード(コマンドラインモード)で x86_64 kernel で boot する。 
     108 boot してきたら uname -a をして x86_64 になっていることを確認する。 
     109 
     110 
     1119. glibc まわりの更新(その2) 
     112 
     113 手順6の手順をもう1度実行する。 
     114 今度はスクリプトのエラーも出ない。 
     115 
     116 
     11710. rpm, apt の更新 
     118 
     119 rpm を更新する。 
     120 現状のパッケージで、依存関係を満たすのは以下の通り。 
     121 
     122{{{ 
     123rpm -Uvh --force --ignorearch rpm-4.4.2.1-0vl2.x86_64.rpm \ 
     124 rpm-libs-4.4.2.1-0vl2.x86_64.rpm \ 
     125 beecrypt-4.1.2-9vl4.x86_64.rpm \ 
     126 elfutils-libelf-0.126-0vl1.x86_64.rpm \ 
     127 libexpat-1.95.8-0vl6.x86_64.rpm \ 
     128 compat32-libexpat-1.95.8-0vl6.i686.rpm \ 
     129 neon-0.26.3-0vl1.x86_64.rpm \ 
     130 popt-1.10.2.1-0vl2.x86_64.rpm  \ 
     131 sqlite3-3.4.2-0vl1.x86_64.rpm \ 
     132 openssl-0.9.8e-0vl2.x86_64.rpm \ 
     133 compat32-openssl-0.9.8e-0vl2.i686.rpm \ 
     134 libgcc-4.1.2-0vl12.x86_64.rpm \ 
     135 libstdc++34-4.1.2-0vl12.x86_64.rpm \ 
     136 ncurses-5.4-0vl3.x86_64.rpm \ 
     137 compat32-ncurses-5.4-0vl3.i686.rpm \ 
     138 readline-5.1-0vl1.x86_64.rpm \ 
     139 compat32-readline-5.1-0vl1.i686.rpm 
     140}}} 
     141 
     142 apt を更新する。 
     143 現状のパッケージで、依存関係を満たすのは以下の通り。 
     144 
     145{{{ 
     146 rpm -Uvh --force apt-0.5.15lorg3.2-0vl13.x86_64.rpm \ 
     147   libxml2-2.6.27-0vl1.x86_64.rpm \ 
     148   compat32-libxml2-2.6.27-0vl1.i686.rpm 
     149}}} 
     150 
     15111. /etc/rpm/platform の確認 
     152 
     153 /etc/rpm/platform を確認する。 
     154 
     155 athlon-redhat-linux などになっていたら x86_64-redhat-linux に修正する。 
     156 
     157 
     15812. i386 package の x86_64 package への置き換え 
     159 
     160 install 済みの i386 package を x86_64 package で置き換える。 
     161 
     162{{{ 
     163rpm -qa --qf "%{ARCH}-%{OS} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" | grep i386 
     164}}} 
     165 
     166 などとすれば install 済みの i386 package の一覧を表示してくれる。 
     167 
     168 hoge という package を更新する場合は、 
     169 
     170 * hoge.x86_64.rpm を rpm -Uvh --force で入れる 
     171 * 上記スクリプトで grep hoge として hoge が2つ入っていることを確認 
     172 * rpm -e hoge.i386 として i386 を削除 
     173 
     174 という手順を行う。 
     175 
     176 これを、i386 package が無くなるまで行う。 
     177 
     178 library の更新時に、まだ入れ替えていない i386 package への依存が出る場合、 
     179 
     180 * compat32 package がある場合はそれを入れる。 
     181 * compat32 package が無い場合は手順を考える。 
     182 
     183 i386 package が無くなったら、apt-get check して依存関係に矛盾が無いことを 
     184 確認する。 
     185 reboot して正常に起動することを確認する。 
     186 
     187 手順4で package 数がきっちり絞ってあれば、package 数 100個弱、 
     188 所要時間3時間程度。 
     189 
     190 この作業は支援スクリプトが欲しい。apt の偉大さを再認識する3時間。 
     191 
     192 compat32 がある下位のライブラリから更新していくと楽。 
     193 ライブラリの入れ替えが終わればあとは単純作業になるハズ。 
     194 
     195 
     19613. apt してみる 
     197 
     198 この時点で、apt の機能が使えるようになっているハズ。 
     199 追加で必要となる package を随時 apt で導入していく。 
     200 
     201 
     20214. 開発環境の確認 
     203 
     204 必要な package は随時入れること。 
     205 
     206 gcc の確認。 
     207 
     208 ls -l /etc/alternatives/gcc をして alternatives のリンクが 
     209 gcc-3.x になっていたら、 
     210 
     211{{{ 
     212rpm -Uvh --replacefiles --force \ 
     213   gcc-4.1.2-0vl12.x86_64.rpm \ 
     214   gcc-cpp-4.1.2-0vl12.x86_64.rpm \ 
     215}}} 
     216 をして復旧。 
     217 
     218{{{ 
     219$ rpm --eval=%{_arch} 
     220x86_64 
     221$ rpm --eval=%{_lib} 
     222lib64 
     223}}} 
     224 
     225 となることを確認する 
     226 
     227 なってないなら手順11を確認する。 
     228 
     229{{{ 
     230$ echo $HOSTTYPE 
     231x86_64 
     232}}} 
     233 
     234 となることを確認する 
     235 
     236 
     23715. 文責、謝辞、参考 
     238 
     239 この文書はいわもと(satoshi.iwamoto @ nifty.ne.jp)が書きました。 
     240 転載自由です。 
     241 
     242 無保証です。package は随時更新されますのですぐに古くなります。 
     243 
     244 Thanks to 鈴木さん、今野さん、中村さん、川口さん、VineSeed-x86_64 ML 
     245 
     246 * http://owa.as.wakwak.ne.jp/zope/labs/bbs/201/364 
     247 * http://owa.as.wakwak.ne.jp/zope/labs/bbs/201/365 
     248 * http://www.is.sci.yamaguchi-u.ac.jp/~kawamura/Japanese/Comp/x86_64.html 
     249 
     250を参考にしました。