2008-03-08

Bloggerのテンプレート

Bloggerのテンプレートを本格的に編集し始めたものの、テンプレートのマークアップが実にデザイン偏重で、正直どうかと思った。foo-wapperといった風に名付けられた大量のdiv要素とかを見ていると、これを書いた人間を小一時間問い詰めたくなる。サランラップ系のCMに出てくるような、何でもラップしとけばオーケーみたいなタイプに違いない。

こういうのは、構造とデザインを分けた方が、無駄なタグを書かなくて良い分だけ楽だろうに。

2008-03-05

pkgsrcでgmakeをビルドするときの注意点

Nevada b83apkgsrcのgmakeをビルドするとき、GMAKE_LOCALE=noを指定しないと、gettextやgcc経由で回り回ってgmakeに戻ってきて、循環参照のエラーと共に失敗する。笑えない。

# GMAKE_LOCALE=no; export GMAKE_LOCALE
# bmake
# bmake install

2008-03-09追記:gccのバージョンを確認している部分で、-vオプションを使ってるのが原因らしい。gccの-vオプションはロケールによって表示するメッセージを変えるため、pkgsrcがgccのバージョンの解析に失敗してしまうそうだ。LC_MESSAGESやLC_ALLを一時的にCにすれば、GMAKE_LOCALEをnoにしなくても、問題なくビルドできる。

Nevada b83aにpkgsrcを導入する

Nevadaでのソフトウェアの管理の手間を省くために、NetBSDで主に利用されているパッケージシステムのpkgsrcを、Nevada b83a(以下b83a)に導入する。流れとしては次のようになる。

  1. 一番新しいpkgsrcのアーカイブをダウンロードする
  2. pkgsrcのアーカイブを展開する
  3. pkgsrcを最新の状態に更新する
  4. bootstrapスクリプトを実行する
  5. mk.confでpkgsrcの設定をする

以下詳細。まず、一番新しいpkgsrcのアーカイブを、NetBSDのFTPサーバからダウンロードする。gzipとbzip2の二種類あるが、b83aにはGNU tarもbzip2も標準で付いてくるので、どちらを選んでも構わない。

# cd /tmp
# curl ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.bz2 > pkgsrc.tar.bz2
# md5sum pkgsrc.tar.bz2
# curl ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.bz2.MD5

チェックサムの一致を確認したら、アーカイブを展開する。NetBSDでは、pkgsrcを/usr/pkgsrcに置くが、Solarisではユーザアプリケーションを/optにインストールする慣習があるようなので、/opt/pkgsrc/pkgsrcに展開する。/opt/pkgsrcにはpkgsrcで管理するソフトウェアをインストールし、/opt/pkgsrc/pkgsrcにはpkgsrc自体を置く。

# mkdir /opt/pkgsrc; cd /opt/pkgsrc
# bzcat /tmp/pkgsrc.tar.bz2 | tar xof -

次にpkgsrcの更新。ダウンロードしてきたアーカイブも、最新と言ってほぼ差し支えないが、pkgsrcは常に更新され続けているため、アーカイブと最新のバージョンの間には差がある場合が多い。できるだけ新しい方が都合が良いので、CVSでpkgsrcを更新する。b83aにCVSは収録されていないので、Solaris Operating System - Freewareからパッケージ化されたCVSをダウンロードし、インストールする。

# bzip2 -d SFWcvs.pkg.bz2
# pkgadd -d SFWcvs.pkg

CVSのインストールが済んだら、CVSでpkgsrcを更新する。

# CVSROOT=anoncvs@anoncvs.NetBSD.org:/cvsroot; export CVSROOT
# CVS_RSH=ssh; export CVS_RSH
# cd /etc/pkgsrc/pkgsrc; cvs update -dP

bootstrapスクリプトを実行し、pkgsrcに必要なツールをコンパイルする。gccは/usr/sfw/binにあるので、パスを通しておく。

# PATH=$PATH:/usr/sfw/bin
# cd bootstrap
# ./bootstrap --prefix=/opt/pkgsrc --sysconfdir=/opt/pkgsrc/etc --pkgdbdir=/var/opt/pkgsrc/db/pkg --varbase=/var/opt/pkgsrc

あとは、libtoolで/bin/kshがクラッシュする問題を避けるために、mk.confを編集して終わり。

CONFIG_SHELL=   /usr/bin/bash
WRAPPER_SHELL=  /usr/bin/bash