Project German-style

同人、Github、その他活動の記録と報告

maskは濫用するもの

さて、Gentooが平衡状態と呼べる状態になっています。最近は特別な事を考えず、emerge --syncしてemerge --updateして必要に応じrevdep-rebuildする位しかやっていません。以前はblockが頻繁に発生したり、うかつにemergeに--newuseなど付けようものなら膨大な数のビルドが発生するなど、全てが手探りだったのに。という訳で、ちょっと今までやった事をtips的にまとめてみたり。
さしあたり今回は/etc/portage/package.maskの使い方。
ここにパッケージを

>sys-apps/sed-4.1.5-r1

といった感じで記述すると、以降emergeは条件にpackageを避けてビルドするようになります。
何故sedが外れているかというと、何故かバージョンの新しいsedはemerge中に停止するのです。ネットでもちらほらと同じ症状が散見されますが……結構重大なバグにも拘らず修正されないところを見ると、ロケールの設定辺りに原因があって(sedはLC_CTYPEを設定してやると色々な文字コードを処理できます)、他の国では再現しないのかも。うちはLANG=ja_JP.euc-jpで、他は設定していません。
まあ原因究明するのも面倒臭いので古いのを使おうという発想になったのですが、その際に試してみたmask機能が仲々快適。maskだけ設定した状態でemerge sedするとわざわざダウングレードしてくれるなど、安定感が際立ちました。
旧版を使い続ける方法としては、emerge =sys-apps/sed-4.1.5-r1等バージョンを指定してビルドした後、毎回emerge -pvの結果に目を光らせアップグレードしないように運用する手もあります。しかしそれをする位ならmaskを設定してしまった方が楽ちんだし、かなり作り込まれた感じを見るに作り手側としてもそちらの方が「推奨」なのでないかな、と、使った感じでそう思ったのでした。