web-dev-qa-db-ja.com

パックマンによるパッケージ管理戦略

お気に入りのディストリビューションをGentooに切り替えてから、パッケージのインストールと削除の次のパターンに精通しています。

  1. それらを試すためにほとんど同じことをするたくさんのアプリケーションをインストールしてください:emerge <package>。このコマンドはパッケージをインストールし、パッケージを明示的にインストールされたものとしてマークします。
  2. それらを試して、気に入らないものを削除してください(そして、うまくいけば、私のニーズを満たす1つまたは2つを保持してください):emerge --deselect <package>。このコマンドは、明示的にインストールされたアプリケーションのリストからパッケージを削除しますが、パッケージをアンインストールしません。
  3. 最後に、私のシステムで必要のないものをすべて削除します:emerge --depclean。このコマンドは、(1)システムパッケージではなく、(2)明示的にインストールされておらず、(3)これら2つの依存関係ではないすべてのパッケージを削除します。
  4. また、オプションで、すべてのパッケージの依存関係に問題がないことを確認します:revdep-rebuild。このコマンドは、すべての依存関係をチェックし、壊れたパッケージを再インストールします。

たまに、/var/lib/portage/world(明示的にインストールされたパッケージのリスト)のエントリを見て、トップレベルのアプリケーションを確認します。手順2、3、4のコマンドを使用して、使用し、使用しなくなったものを削除します。

Archを学ぼうとしているので、パックマンでも同じ戦略を使用できるのだろうか。または、システムを未使用のパッケージからクリーンに保つことができる別の戦略ですか?

注: Pacman Rosetta は、物事をすばやく理解するのに大いに役立ちますが、Archの/var/lib/portage/worldファイルに相当するものを理解できませんでした。 pacman -Qeはそれを行うと言われていますが、明示的にインストールしていないことを誓うものが含まれています...とにかく、戦略の観点からこの質問に答えてください(もちろんコマンドの例を使用して:)

7
phunehehe

DarwinSurvivorのおかげで answer Archでパッケージ管理がどのように機能するかをよりよく理解することができました。これで、Gentooで使用するのと同じ戦略を適用できます(少し変更を加えます)。問題のコマンドの「同等物」は、それぞれ次のとおりです。

  1. _pacman -S <package>_
  2. _pacman -D --asdeps <package>_
  3. pacman -Rs $(pacman -Qqtd)
  4. 利用不可/不要

Gentooで_/var/lib/portage/world_に最も近いのは、コマンド_pacman -Qe_の結果です。違い:

  1. Archには パッケージグループ があります。これは基本的に、名前の下で「グループ化」された複数のパッケージです。グループがインストールされると、グループ内のすべてが明示的にインストールされたと見なされます。
  2. Archには「システムパッケージ」がないため、_pacman -Qe_の結果からアイテムを減らすと、実際には重要なパッケージが削除される可能性があります。
2
phunehehe

インストールしたことを覚えていないpacman -Qeのパッケージが表示される最も可能性の高い理由は、それらがインストールした「グループ」(base-develなど)の一部であったことです。

補足:私は個人的に、パッケージを再インストールせずに「明示的」から「暗黙的」に(またはその逆に)切り替えることもしばらく探していました。明示的にインストールしたパッケージを使用して、別のパッケージを機能させて回転させることもできます。そのパッケージの依存関係にそれを(再び再インストールせずに)。

4
DarwinSurvivor

正しく思い出せば、

pacman -S package

パッケージをインストールします

pacman -Rs package

パッケージとそのすべての依存関係を削除します---ただし、他のパッケージを壊さないものと、明示的にインストールしなかったものだけを削除します。

Pacmanのmanページを確認してください。

残念ながら、壊れたパッケージをチェックする方法がわかりません。

1
user4491

明示的にインストールされたパッケージを追跡するためにパッケージマネージャーに依存する代わりに、システムでAnsibleなどの構成管理ツールを使用できます。私はそれを自分の数台のマシンに使用しており、2つのコマンドだけでメインマシンと同じようにマシンをいつでもセットアップできます。

0
Martin Ueding