ports を send-pr するときに、依存関係および pkg-plist のチェックが面倒だったので、tinderbox を使うことにした。これはそのときのメモ。 tinderbox は、FreeBSD の ports/packages のビルドシステム。いろんな userland、いろんな ports tree を組み合わせてビルド環境を作り、packages の作成ができる。chroot が基本だからできないこともあるけど、理解して使えばかなり便利。 Marcuscom Tinderbox tinderbox のインストール tinderbox は、各種情報を RDBMS に記録する。RDBMS としては、MySQL または PostgreSQL が使用できる。あらかじめどちらかに決めて、インストールしておくこと。 src/ports tree の取得には csup/cvsup
ports-mgmt の中を覗くと、ports 管理のツールがある。その中でも、依存関係を持たない不要なパッケージを探して削除するツールが幾つかある。幾つか種類があって、使い勝手も違う。どれを好みによるだろう。 その中でも、使いやすかったのが pkg-orphan だった。dialog、つまり FreeBSD インストーラや ports の make config 等で使われている、ターミナル用の GUI を使った物もあった。pkg-orphan は GUI を使わない物だ。目に付くものを試してみたが、一つずつ GUI で行ったり来たりするのが面倒で、こちらの方が都合が使い勝手が良かった。 使い方は至って簡単。pkg-orphan を起動すると、依存されていないパッケージを探しだし、一つずつプロンプトで対応を求めてくる。Delete を選ぶと、プロンプトが全て終了すると消される。Keep
FreeBSD Tips and Memo (Jail, ports, etc.) http://www.otsune.com/bsd/ packages & distfilesサーバーの構築 packagesサーバーとは portsを管理するときに、いちいちソースからコンパイルをするのは時間がかかります。 そこでpackagesを代表ホスト1台で作成して、他のホストはそのpackagesをインストールすることにします。 packagesサーバーにはCPUやHDDの速度が速いマシンを選択するのが良いでしょう。 packagesディレクトリを用意する mkdir -p /usr/ports/packages /etc/make.conf DEPENDS_TARGET=package FORCE_PACKAGE=yes p5-FreeBSD-Portindex portindex参照。 net
意外に簡単だと思いませんか? この方法でインストール済みのパッケージを作っておけば、 portupgrade でバージョンアップしたら動かなくなっちゃって慌てる... なんてことも無くなるかもしれませんね*3。 パッケージを一箇所に集める 自作パッケージは便利なのですがパッケージファイルが散逸するのはチョッと困ります。そこで以下の処理をあらかじめ行っておきましょう。 # mkdir /usr/ports/packages/ 以後、このディレクトリの下に階層化された状態でパッケージファイルが保存されるようになります。ちなみに /usr/ports/packages/Latest/ 以下にはバージョン番号が無い状態でパッケージのシンボリックリンクが作成され、パッケージのバージョンが上がると勝手にリンクを張り直してくれます。こんな感じです。 Index of /packages/Latest N
FreeBSD tinderboxは便利なんだけど、複数のportsを一度にbuildしたいときは、一個ずつtinderbuildでbuildしなきゃいけない。portsには依存関係があるから、一個のportsをbuildするにはそれなりに時間がかかる。すると tinderbuild > しばらく待つ > tinderbuild > しばらく待つ .... という、えらい効率の悪いことをする羽目になる。これじゃあんまりだから、tinderboxではBuildQueueという仕組みが用意されてる。BuildQueueを使うとどうなるかというと ports(複数)をBuildQueueに投入する > かなり長い間待つ > 全部のportsがbuild完了 というわけで、最初にbuildしたいportsを全部Queueに投入すれば、後は待つだけになる。okkyの銀河制圧奇譚: 新社会人にあなたな
FreeBSD tinderbox で BuildQueue を使って効率よく ports を build する - markun日記を書いたら、I, newbieの中の人から、web interfaceだともっと簡単だよ、と教えてもらった。早速試してみよう。 WITH_WEB_EXPでインストールされるWeb interfaceだともっと簡単。buildが終わったらメールでお知らせ I, newbie » Links Roundup www-expの準備 WITH_WEB_EXP=yesでインストール済みなので、あとは設定だけ。/usr/local/tinderbox/scripts/www-expに設定ファイルの雛形があるので、コピーして編集する。 # cd /usr/local/tinderbox/scripts/www-exp # cp inc_ds.php.dist inc_ds
ezjail Flavourでは、flavourのディレクトリ配下にpkgというディレクトリを作成しておくと、createの際にpkg配下のファイルをjailの/pkgにコピーしてくれる。ezjail.flavourスクリプトで、このディレクトリからpkg_addすれば、即座に使えるjailが完成して便利。 デフォルトのezjail.flavourスクリプトだとこんな感じ。 # Packages ########### # # Install all packages previously put to /pkg # Remove package files afterwards [ -d /pkg ] && PACKAGESITE=file:// pkg_add -r /pkg/* rm -rf /pkg ところで、このためにpackagesを用意するとして、ちゃんとpackages作成
2ヶ月前の話題でかなり時代遅れ気味だけど、Tinderboxが3になってたのでアップグレードした。Webインタフェースのディレクトリがwww-expからwebuiになってたのと、csupを使用するための指定がCVSUPからCSUPになってた点以外はつまづくことはなく、すんなりアップグレードできた。これからアップグレードする人は、DBのrootとtinderboxユーザのパスワードを思い出しておくこと。 需要があるかどうかはわからないけど、Changesを訳してみた。 www-expモジュールは、名称がwebuiに変更されました、そしてpaefchenと呼ばれる新しいWebフロントエンドが追加されました。 tinderdを除くすべてのtinderboxのコマンドが、tcから呼び出せるようになりました。 Hostsシステムは、あまり使われていないことと、分散ビルドには適さないため削除されました
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く