portsの更新はportsnap
はじめに
タイトルと末尾がメインで、中の方は飛ばしちゃって良いと思います。
packages/portsをはじめから入れなおそうとするから
FreeBSDでは各種ソフトウェアは packages (バイナリ) または ports (ソースからコンパイル) で入れるのが多いです。
今回は、ソフトウェアの一部削除とアップデートとを一緒にしようと思い、クリーンインストールはやめたかったので、packages/portsで入れているものをドカッと変えようと思った次第。こういうことを考えるとロクなことがない。
が、後悔先に立たず。もう、pkg_delete -a
で packages/ports を全削除しちゃったもんね。そのうえ /usr/local/* と /var/db/pkg を削除する念の入れようでした。この時点で、/usr/bin に入ってる基本コマンド以外はすべて消えました。Apache HTTPD も当然、PostgreSQL も当然、xterm だって消しちゃってる状態。すっからかんです。
いつも通り cvsup を入れる
いちからportsのビルドを行う前に、cvsup-withou-guiをインストール、cvsup ports-supfile を実行。これで、portsを最新の状態にできます。そのあとは、/usr/ports/(カテゴリ)/(ソフトウェア名) に移動して、makeすると、なんかソースコードを引っ張ってきて、パッチもあててくれて、コンパイルしてくれます。時間はかかるけど、portsでコンパイル失敗は全く無い。
cvsup実行中に、なんか警告が一杯出てきていたのですが、警告だからまあいいや、無視。
で、xorgあたりをmakeしようとすると、途中でエラー。
…よく分からん。
確かにクラック事件で閉鎖、その後9.1はリリースされたもののpackage(コンパイル済のもの)の配布が停止、といった踏んだりな状態です。portsが残ってるので踏まれるまでで蹴られてはないんです。しかし、portsのコンパイルが失敗するとなると、これは踏まれて蹴られて顔に落書きされるレベルの失望感。
いったいどうなってしまったんだよ…。
ただ、ここでも前述の警告が出てるのに気づき、さすがにこの警告に何かあるんだろうと思って読む…。
cvsup オワタ(AA略
なんだと俺に断わりもなく…いやさんざんコンソールにwiki見れやこら、と警告出しててそれを見落とす私が悪いんですすみませんー。
subversionがどうとか書いてた
しかし泣いていてもはじまらない、対応方法はいったい何だいと探すと、どうもsubversionを使うと良いらしい。
ふむ、まだ古いportsは残っているからsubversionをとにかくコンパイルして入れてやれば…。
ということで、make config-recursive で、先にコンフィギュアを実行する。途中、apacheも入れるぜ、aprも入れるぜ、とかなんとか言われて、いやものごとには順序が云々と口答えしたくはなったものの、結局…いえなんでもありません…すみません…と言いながらコンパイルしていこうとする。
…はい失敗。
subversionがコンパイルできない。
本格的にオワ(略
これはあれか、羽田の国内線ターミナル北側あたりを見て「787墓場www」とか思ったからか、このまえつくばに行って某氏に挨拶しなかったからか、3Dプリンタの造形台にさっそく窪みをつくってしまったからか…?
いや、まだあるぞ、subversionのバイナリを引っ張ってきて入れるんだ。
よし、googleさんgoogleさん、"subversion freebsd package"あたりで何か教えて…。
http://www.freebsd.org/doc/ja/books/handbook/ports-using.html
portsnapを使えば解決。
……それだけ?
…本当にそれだけ?
それだけでいいの?
さて本題
古いportsは消してしまった方が良いから、まずは/usr/portsを完全に消して、portsnapで引っ張ってきました。
# \rm -rf /usr/ports # portsnap fetch # portsnap extract
…うわ、本当だ、解決したわ。
アップデートは次の通り。
# portsnap fetch # portsnap update
まとめ
- cvsupオワタ
- portsnap使え