Daily Archives: 11/20/2008

インストールしたportsのpkgを作るには

Pocket

こんなことがあったので、やはり曲がりなりにもサーバたるもの、吊るしのpkgをインストールすることはやめようと思ったのだが、やっぱり時間がかかる。

そこでメインマシンのVM上FreeBSDでビルドしたものをサーバマシンに移すことにした。

ビルドするときにパッケージも作っておく方法はいくらでもあるが、すでにビルド済みのマシンでパッケージを作るのはあまり経験が無かったのでメモ。

このように、バージョン名も含めてターゲットを指定すると、カレントディレクトリにpkgが作成されるので、それを移す。

ただしmeta-portは指定出来ない。

なお、Rオプションは、ターゲットのportsビルドに必要な別のportsのパッケージも作る指示。

移動先マシンへのインストールが、ターゲットのportsだけでよいことがはっきりしている場合には、付けなくても可。

以下が実行例。

ところで、php5の場合はphp5-extensionsでインストールしたphp拡張機能も作っておく必要がある。

冒頭で述べたように、pkg_createではphp5-extensionsのようなmeta-portは指定出来ない。

そこでpkg_info -Ix php5として得られる一覧をpkg_createに渡すことを考えるが、pkg_createが取ることのできる引数は一つだけ。

なのでxargsを使う。xargsで-n 1とすれば、引数を一つずつ渡してくれる。

下記が実行例。-Rオプションはここでは外している。

こういうまだるっこしいことをせず、インストールされているportsのすべてをpkgにするには、pkg_infoにEaオプションを与えてpkg_createに渡す。

No tags for this post.