2011年5月26日木曜日

FreeBSD8.2への移行(2)

FreeBSD6.4環境が幾つもあり、更新が大量に発生したので
取り敢えず注意点を幾つか書くしかなくなる。

・6.4からの移行は7.3を経由すること。

8.2をコンパイルするために必要なライブラリが7.xからでないと作れない模様。
GCCコンパイラが切り替わっているのもあるし、インクルードファイルやらが足らないなど色々問題がある。6.4では8.2で必要とするものがマトモには作られないので、8.0の頃うまくコンパイル出来たと思ってたものは大抵ライブラリリンクが壊れてて動かない。8.2にもバージョンが上がるとその辺りのミスは排除されている。

・8.2環境に上がって古いライブラリをリンクするものが上手く動かないことがある。

4BSD->ULEスケジューラに変わったこともあり、バイナリ互換で動くようになっていても、常駐するスーパーデーモンやらデーモン系の動きがいつの間にか刺さって生きたふりで、実は死んでいることがあるので、すぐに再構築するほうがよい。

・make buildworld に成功しているようでしていない場合もある。

稀にそういうシステムもでる。 make.confに手をいれている場合は要注意。make.conf を更にしておいたほうが無難な場合もある。 ライブラリが正しく生成されない、必要なファイルが無いなどの現象で、8.2環境でのportsupgradeなどに支障をきたすことになる。現実に、ipsec-toolsなどはlibtoolが定義を正しく拾えないなどの問題が起きた。二度目のmake buildworld insatllworld により、環境が正しく設定された。

・portupgrade を 正しく動作させるには?

 まず、databases/db4{1-8},databases/ruby-db,lang/ruby18 は再構築しておくこと。 oniguruma のライブラリが2.x系から、4や5にアップグレードされたことで、構築できない場合がある。rubyで日本語言語処理をするシステムを導入しないならば、onigurumaでの
国際言語対応正規表現は外しておくが無難。 

cd /usr/ports/{$target} ; make clean all deinstall reinstall のワンライナーで、大抵入れ替えられる. 最後に、portsupgrade を更新し、

(nohup portsupgrade -ayfr --batch 2>&1 >/var/log/portupgrade.log & )

などとしておけば、更新できなかなった物はそのままに、コンパイル出来たものが
更新されているだろう。

・qmail-scanner 系などの portupgrade は問題。

 これは上記の自動portupgrade 処理で引っ掛かるようである。当面、pkgtool.conf の IGNORE 節に加えておくのが良いと思う。perlライブラリが更新し終わった段階で、手動で更新するのが吉。

・古いライブラリの扱い。

 消さないほうが無難だろう。古いファイル (cd /usr/src; make check-old-files ) で引っ掛かるものは、すべて消してよい。寧ろ消しておくべきだと思う。

・古いライブラリを参照するports の管理から外れているものなど。

portsは、6.xでほったらかしにしていると、もうすでにディスコンとなっているものも多々あるので、/var/db/pkg/honyarara のdirectory 丸ごと削除してしまう他ない場合も時折有る。pkgdb -F がささって死ぬようだったら、dbから作り直すしかない。

以上

0 件のコメント: