今まで twitter でつぶやいてきたことをいくつか
他はまた今度.
1. /etc/portage/package.env
portage-2.2_rc93 で /etc/portage/package.env が使えるようになるらしい.パッケージ毎に環境変数を変えられるんかな
これは確か New portage on the horizon をみてつぶやいたはず.
* Per-package environment variables can be set with the new package.env configuration file in /etc/portage/. See the portage(5) man page for details.
これを実際に使ってみようと思う.
まずは,portage-2.2_rc93 を入れる.
今日時点ではまだマスクされているので,unmask にいれます.
$ echo =sys-apps/portage-2.2_rc93 | sudo tee -a /etc/portage/package.unmask $ sudo emerge -u portage
使い方を見てみます.(man 5 portage)
package.env Per-package environment variable settings. Entries refer to environment files that are placed in the /etc/portage/env/ directory and have the same format as make.conf(5). Format: - comment lines begin with # (no inline comments) - one DEPEND atom per line followed by name(s) of environment file(s) Example: # use environment variables from /etc/portage/env/glibc.conf for the glibc package sys-libs/glibc glibc.conf
/etc/portage/env/ に make.conf と同じフォーマットで記述したファイルを置いておき,それを /etc/portage/package.env で指定するような感じらしい.
例えば,特定のパッケージだけ CFLAGS を変えたいといった場合は,以下のようにする.
/etc/portage/env/hoge.conf
CFLAGS="-march=i686 -O1 -pipe"
/etc/portage/package.env
app-arch/unzip hoge.conf
このような設定を書くと,app-arch/unzip のみ CFLAGS を "-march=i686 -O1 -pipe" にすることができます.
パッケージをデバッグしたい(gdbで調査したいとか)場合は,
/etc/portage/env/debug.conf
CFLAGS="${CFLAGS} -g" FEATURES="nostrip"
/etc/portage/package.env
とすればいいでしょう.app-arch/unzip debug.conf
こうすると,app-arch/unzip のみ -g つきでコンパイルされ,自動的にバイナリが strip されません.