明示的にインストールされたパッケージのリスト

明示的にインストールされたパッケージのリスト

/var/lib/portage/worldGentooには、私が明示的にインストールしたパッケージを含むファイルがあります。私は、私が選択したパッケージには、デフォルトでインストールされているアイテムや依存関係によってインポートされたパッケージが含まれていないということです。

この情報を見つけるためにUbuntuに似たファイルやコマンドがありますか?

ベストアンサー1

ただコード

aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currentlyinstalled.txt
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
  | cut -f1 | sort -u > defaultinstalled.txt
comm -23 currentlyinstalled.txt defaultinstalled.txt

説明する

この質問について考える1つの方法は、3つの部分に分けることです。

  • 依存関係でインストールされていないパッケージのリストを取得するには?
  • デフォルトでインストールされたパッケージのリストを取得するには?
  • これら2つのリストの違いをどのように理解できますか?

依存関係でインストールされていないパッケージのリストを取得するには?

次のコマンドが私のシステムで動作しているようです。

$ aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currentlyinstalled.txt

Gilesがこの質問に対するコメントとして投稿したリンクでも、同様のアプローチを見つけることができます。一部の情報源では、これは適性を使用してパッケージをインストールする場合にのみ機能すると主張していますが、私は適性を使用してパッケージをインストールすることはほとんどなく、これがまだ機能していることを知っていました。これ--disable-columnsにより、適性がパッケージ名の行を空白で埋めることが防止され、以下の比較が妨げられます。ファイルを並べ替え| sort -uて重複エントリを削除します。これにより、最後のステップがはるかに簡単になります。

デフォルトでインストールされたパッケージのリストを取得するには?

メモ:このセクションは、説明可能な「間違ったパス」で始まります。 2番目のコードは有効です。

これは少しトリッキーです。最初は、良い近似がubuntu-minimal、ubuntu-standard、ubuntu-desktopメタパッケージと、さまざまなLinuxカーネル関連パッケージに依存するすべてのパッケージになると思いました。 Google検索の一部の結果はこのアプローチを使用しているようです。これらの依存関係のリストを取得するには、まず次のことを試しましたが、うまくいきませんでした。

$ apt-cache depends ubuntu-desktop ubuntu-minimal ubuntu-standard linux-* | awk '/Depends:/ {print $2}' | sort -u

デフォルトでは、提供する必要があるパッケージの一部が欠落しているようです。私は正しいメタパッケージリストが設定されたら、このアプローチがうまくいくはずです。

ただし、Ubuntuイメージには、基本インストールに含まれるすべてのパッケージを含む「マニフェスト」ファイルが含まれているようです。 Ubuntu 12.04.3のマニフェストは次のとおりです。

http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest

このページ(または近いミラーページ)を検索する場合:

http://mirror.pnl.gov/releases/precise/

使用しているバージョンとアーキテクチャに対応する ".manifest"ファイルを見つけることができるはずです。パッケージ名のみを抽出するには、次のようにしました。

wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest | cut -f1 | sort -u > defaultinstalled.txt

リストはすでに並べ替えられて一意である可能性がありますが、次の手順をより簡単に実行できるように、正しく並べ替えられていることを確認したいと思います。その後、出力をdefaultinstalled.txt

これら2つのリストの違いをどのように理解できますか?

ほとんどのUnixシリーズシステムにはこれを行うためのいくつかのツールがあるので、これは簡単な部分です。このcommツールはこれを行ういくつかの方法の1つです。

comm -23 currentlyinstalled.txt defaultinstalled.txt

これにより、最初のファイルに一意の行のリストが印刷されます。したがって、デフォルトのインストールにはありませんが、インストールされているパッケージのリストを印刷する必要があります。

おすすめ記事