/var/lib/portage/world
Gentooには、私が明示的にインストールしたパッケージを含むファイルがあります。私は、私が選択したパッケージには、デフォルトでインストールされているアイテムや依存関係によってインポートされたパッケージが含まれていないということです。
この情報を見つけるために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
これにより、最初のファイルに一意の行のリストが印刷されます。したがって、デフォルトのインストールにはありませんが、インストールされているパッケージのリストを印刷する必要があります。