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略

2月末をもって本当にportscvs配布が終わってた。

なんだと俺に断わりもなく…いやさんざんコンソールに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使え