Paludis と Portage の比較

Paludis は高機能で多機能で、作者の頭の良さはよく判る。 ただ、クセが有るので、同じような感性と賢さの持ち主でないと、馴染めないだろう。 とりあえず、 Paludis を掘ってみよう(笑

cave resolve world は、何をするか

# cave resolve world は、# emerge -upvtN @world と似た結果 になると思う

cave resolve は 常に dependency の詳細表示をする

常に emerge -vt の状態だ

-x (--execute) のオプションを付けなければ、常に pretend

fail-safe設計なんで、意図的にオプションを付けないとシステムの改変をしない

オプション無しだと勝手に改変する Portage の方が実は異常なのかもしれない。
例えば RedHat 系 yum は yum check-update と yum update に、Debian 系 apt-get は apt-get update と apt-get upgrade に分かれ、更にこれらはデフォルトが --ask 状態になっているように。emerge の方が奇特なんだと思う

指定対象が @world のような「セット」であるときには、 -Ks -kp がデフォルト

これは、対象「セット」内のパッケージ(ここでは、@world = 意図的にインストールしたパッケージ)については、 バージョン(リビジョンも含む)が上がったり USE フラグの設定が変えられたりしたときには再インストールをする。指定外の(dependency によりインストールされた)パッケージについては、必要が無い限りは再インストールをしない (--keep-targets (大文字の K ) が if-same で、 --keep (小文字の k ) が if-possible)

ポイントは、変えたい方の基準ではなく、 変えないための基準の設定をするという発想 であること
無論のこと、「セット」では無くパッケージを指定したら、再インストール( -Kn )がデフォルト

dependency で自動インストールをされたものも更新するには

emerge の -D (--deep)のように、 指定対象外の自動インストールされたパッケージも更新したいときには、cave resolve のオプションは、 -ks だ。つまり、指定対象外のパッケージも、バージョンが上がったり USE フラグの設定が変えられたりしたときには、再インストールをする

ebuild ファイルの USE フラグ等が変えられたときも再インストールをしたいなら

ま、 必要が無い んだけどね ( メンテナが「再インストールが必要だ」という判断をしたときにはリビジョンを上げるから )。だからたぶんやり過ぎ(悩みすぎ)だ

ただあえて云うと、 -Km と -km だ。 これは、「パッケージのメタデータが変わったときには再インストール」というオプション(if-same-metadata)だ。USEフラグだけではなく、そもそものメタデータで変更を検知する

で、これを @world にやると、更新祭り(笑)になる。順って、@world にはやらないべきである

繰返し云うが、再インストールが必要ならばリビジョンが上がるのだ。だから -Ks -ks で充分なのだ

USE フラグ変更の検知をしなくていいです(その方が早いし)

if-same-version なんで、 -Kv や -kv である。USE フラグ変えたかは大概は自覚が有るので(笑)、-Kv -kv で良いのかもしれない。変えたら、 -Ks -ks にすると良いのだろう

bdep (ビルドだけ必要なもの)も更新したい

emerge --with-bdeps=y と同じやつ。これもやる必要はないんだけどね。必要があるときにだけ更新をすればいいから

あえて云うと、 -B オプション


パッケージをアンインストール

cave uninstall

要らないのを検出させて消したい

dependency の計算結果によりアンインストールをしたいときは、 cave resolve の -P オプション

インストール済の全てから検出をさせてアンインストールというならば、 cave purge


dependency の検出時に、特定のパッケージを選ばせたい

-F オプションでパッケージ名称を、 --favour-matching ならばバージョン等も含めて、指定

反対に -A や --avoid-matching ならば、インストールをさせたくないものを指定

slot の扱い

英語を読めないと論理の理解に苦しむ箇所

指定対象に関しては -S 、 dependency に関しては -s で。 best-or-installed (x)、 installed-or-best (i)、all (a)、best (b)の4種類

例えば -Sx ならば、指定対象のパッケージで、ナンバー最大のスロットが未インストールならばそれだけが対象。最大のスロットがインストール済なら、インストール済スロット全て

同じように installed-or-best は、インストール済スロット全て、未インストールならばナンバー最大のスロット


@world からパッケージの名称だけを消したい

emerge ----deselect=y と同じやつ。 アンインストール♪ではなくて、@worldから消して、自動インストールをしたものと扱わせたいときね(※ /var/lib/portage/world が本体だが、これは PMS で自動生成をしたファイルという扱いなので、自分で改変をしないべきである)

cave update-world -r


equery d と同じやつ

cave print-dependent-ids

equery f (qlist)と同じやつ

cave print-id-contents

cave contents だと色付き

パッケージの情報を知りたい

cave show


そもそもなんで cave resolve なんや

dependencies resolution のコマンドだからだと思う

まとめ

Paludis は fail-safe である

デフォルトは安全

しかし、 引っかかることがあったら、Paludis は勝手に進めない。 処理をいちいち指定をしないといけない 。 しかも、 --ask 機能は無いので、コマンドのオプションで指示を出さねばならない

それが Portage だったら、勝手に進めたり、アーッてなる(笑

最悪はシステムが壊れるのである。 ものによっては、笑っては済まされない

Paludisの作者は明らかに、アーッてなったトラウマがあるから神経質なのだ

公開日時:

wjn's repos' info.

  Japenese , English