cheetsheet/emerge

忘れがちなオプション

ロングオプション ショートオプション 効果
–pretend -p 引きづられてインストールされるパッケージが見たい
–update -u アップデート
–deep -D /var/lib/portage/world 以外の依存関係も調査
–newuse -N セキュリティアップデートなど明示的にインストールしていないパッケージも含む
–with-bdeps=y ビルド時依存のパッケージも含む
–changed-use -U USE フラグが変わった事を伝えるが–newuse とは違いユーザーが有効にしない事を示すフラグがある場合、再インストールしない
–unmerge -C 削除
–depclean -p -p で使われなくなった依存関係を確認
–depclean 使われなくなった依存関係を削除( -p で確認してから )
–info Portage によって使われる変数
–quiet -q ディスプレィ出力を抑制
–verbose -v 冗長モード。各パッケージの USE フラグを表示

よく見かけるオプション -uDN は –update –deep –newuse と同じ。

参考 Portage が文句を言ってきたときは

バージョンを指定してインストール

emerge =dev-lang/go-1.16.7

slot、スロットを指定してインストール

eix gcc で調べる

emerge --sync && eix-update &&& eix gcc

下記の状況はver12がインストールされている。これにver11も追加したい。

[I] sys-devel/gcc
     Available versions:
     (8.5.0) [M]8.5.0-r1^t
     (9.5.0) [M]9.5.0^t
     (10)   [M]10.4.1_p20230426-r1^t [M]~10.4.1_p20230517^t [M]**10.4.1_p20230607^t [M]**10.4.1_p20230614^t [M]~10.4.1_p20230621^t [M]**10.4.1_p20230628^t [M]**10.5.9999*l^t
     (11)   11.3.1_p20230427^t ~11.4.0^t **11.4.1_p20230608^t **11.4.1_p20230615^t ~11.4.1_p20230622^t **11.4.1_p20230629^t **11.5.9999*l^t
     (12)   12.2.1_p20230428-r1^t [m]12.3.1_p20230526^t [m]**12.3.1_p20230609^t [m]**12.3.1_p20230616^t [m]~12.3.1_p20230623^t [m]**12.3.1_p20230630^t [m]**12.4.9999*l^t
     (13)   [m]~13.1.1_p20230527^t [m]**13.1.1_p20230603^t [m]**13.1.1_p20230610^t [m]**13.1.1_p20230617^t [m]**13.1.1_p20230624^t [m]**13.2.9999*l^t
     (14)   [m]**14.0.0_pre20230529^t [m]**14.0.0_pre20230604^t [m]**14.0.0_pre20230611^t [m]**14.0.0_pre20230618^t [m]**14.0.0_pre20230625^t [m]**14.0.0.9999*l^t
       {ada cet custom-cflags +cxx d debug default-stack-clash-protection default-znow doc fixed-point +fortran go graphite hardened ieee-long-double jit libssp lto modula2 mpx multilib +nls +nptl objc objc++ objc-gc (+)openmp +pch pgo +pie rust +sanitize +ssp systemtap test valgrind vanilla vtv zstd}
     Installed versions:  12.2.1_p20230428-r1(12)^t(23時58分26秒 2023年06月29日)(cxx fortran nls nptl openmp pgo pie sanitize ssp zstd -ada -cet -custom-cflags -d -debug -default-stack-clash-protection -default-znow -doc -fixed-point -go -graphite -hardened -ieee-long-double -jit -libssp -lto -multilib -objc -objc++ -objc-gc -pch -systemtap -test -valgrind -vanilla -vtv)
     Homepage:            https://gcc.gnu.org/
     Description:         The GNU Compiler Collection

正確なバージョンを指定する必要がある。

sudo emerge =sys-devel/gcc-11.3.1_p20230427

これをデフォルトで使いたい場合、下記でバージョン一覧を表示し

gcc-config -l

番号で指定する。

sudo gcc-config 2

システム全体を新たな USE フラグに適合させる

emerge --sync
emerge --update --deep --newuse @world
emerge -p --depclean

上記で -p で確認した後 ↓

emerge --depclean
emerge @preserved-rebuild
revdep-rebuild

たまに

emerge --update --deep --newuse --with-bdeps=y @world

と –with-bdeps=y をつけて実行する。

emerge で差分が発生した設定を使うか使わないかアップデート

* IMPORTANT: 4 config files in '/etc/portage' need updating.

という表示が出たら

sudo dispatch-conf

参考

dispatch-conf

gentoo wiki のページ、概要がつかめる

dispatch-conf の使い方

対話的な処理を行う際のオプションが参考になる