Portage
基本操作
リポジトリの更新
emerge --syncまたはemerge-webrsync
検索
emerge --search hoge
インストール
emerge --ask hoge
ダウンロード(インストールはしない)
emerge --fetchonly hoge
削除
emerge --unmerge hoge
依存関係を気にせず削除するので、削除したパッケージに依存するパッケージが残っていた場合は機能しなくなる可能性がある
システムの更新(確認つき)
emerge --update --ask @world
依存パッケージも更新したい場合
emerge --update --deep @world
ビルド時依存パッケージも更新したい場合
emerge --update --deep --with-bdeps=y @world
とりあえずこれ
sudo emerge --ask --update --newuse --deep @world
取り残された依存パッケージを削除
メタパッケージを削除した際などに、必要なくなった依存パッケージが取り残される
そいつを削除する方法
1. emerge --update --deep --newuse @world
2. emerge --depclean
3. revdep-rebuild
設定ファイルへの更新をマージ
dispatch-conf
実行すると変更された各設定ファイルが1つずつ検討されるので、新しいものに更新する場合はuを入力
新しい設定を破棄する場合はz
マスク
動作不安定などの理由でemergeできないようにmaskされているパッケージがある
unmaskする
/etc/portage/package.unmaskにパッケージ名を追加
特定パッケージ限定でunstableを受け入れる
/etc/portage/package.keywordsにpackage-name keywordを追加
ライセンス
デフォルトでは@FREEのみインストールを許可されている
設定ファイルの場所は/etc/portage/make.conf
パッケージごとの設定ファイルはこれ
/etc/portage/package.license
パッケージ名 ライセンス名という形で書く
以前のバージョンのデフォルト設定として、EULAをのぞく全てのライセンスを受諾するという設定があった
ACCEPT_LICENSE="* -@EULA"
めんどくさかったらこれにしても良いかも
USEフラグ
/etc/portage/package.useで各パッケージごとのUSEフラグを設定できる スロット
パッケージのバージョンごとに違うスロットが宣言される
スロットが違うパッケージは共存できるため、同じパッケージの別バージョンを1つのシステム上に共存させることができる
分散コンパイルができるモジュール
ネットワーク上のマシンにコンパイルを分散させることができる
かっちょいい
コンパイラキャッシュ
コンパイル過程の中間生成物をキャッシュしてくれる
同じパッケージを何回もビルドするときに使うと効果的
バイナリパッケージ
--usepkg --getbinpkgをつけるとビルド済みパッケージをインストールできる
パッケージソースの取得をユーザー権限で行う
参考文献