リポジトリごとにインストールされたパッケージの概要を取得し、クリーンインストールとの違いを確認するにはどうすればよいでしょうか?

リポジトリごとにインストールされたパッケージの概要を取得し、クリーンインストールとの違いを確認するにはどうすればよいでしょうか?

数台の PC を Ubuntu Trusty 14.04 にアップグレードしました。このため、/home (および参照用の /etc) のみを残して、すべてを最初からインストールしてクリーンなシステムを取得しました。

しかし今回はアップグレード ツールを使用してアップグレードしたので、通常のシステムと比較して自分の PC にどのような違いがあるか知りたいのです。さまざまなソースからさまざまなパッケージをインストールしたので、あちこちでファイルを編集した可能性があります。もちろん、apt ですべてが自動的に処理されるはずですが、私は偏執的なタイプなので、本当に確認したいのです。

基本的に、私が欲しいものは次のとおりです。

  1. インストールされているすべてのパッケージのリストと、それぞれのパッケージの元のリポジトリ(利用可能な場合)を取得します。これは基本的に各パッケージごとになりますapt-cache policyが、わかりやすいリストにまとめられています。

  2. 「非公式ソース」からのパッケージの場合、公式ソースから入手可能なバージョンがあるかどうかを示します(/etc/apt/sources.list にリストされているリポジトリを意味します)。

    時々、サードパーティからパッチされたパッケージをインストールしましたが、バージョン番号が競合しているためにこのパッケージは更新されません。公式バージョンにフォールバックするのが合理的かどうかを示すリストが必要です。

  3. インストールされたパッケージ(構成ファイルを含む)から取得され、その後変更されたファイルシステム上のすべてのファイルのリスト

  4. インストールされたパッケージに由来しないファイルシステム上のすべてのファイル(/home と /etc を除く)のリスト

基本的に、アップグレードした場合とクリーン インストールした場合のシステムの違いを知り、これらの違いによって不安定さが生じるかどうかをケースごとに判断したいと考えています。

答え1

私の質問はすでに部分的に回答されています廃止されたパッケージのリストを取得するにはどうすればいいですか?

回答では、

apt-show-versions | grep 'No available version'   # Show all package not coming from repo
aptitude search '~o'                              # Similar

私たちも同じようにできると思います:

apt-show-versions | grep -v uptodate              # All packages that are not up-to-date

これにより、最新ではないパッケージ、つまり、有効なリポジトリからアップグレード可能なパッケージ、またはそのようなリポジトリから提供されていないパッケージが提供されます。

このようなパッケージの利用可能なすべてのバージョンのリストを取得するには、次のようにします。

apt-show-versions -a $(apt-show-versions | grep -v uptodate | sed -r 's/:.*//')

またdeborphan -a、(リポジトリにバックアップされていない apt にインストールされたパッケージを一覧表示するにはどうすればよいでしょうか?

deborphan -a             # List all packages that have no reverse dependencies

まとめると、項目 1 と 2 についてはいくつかの答えがありますが、項目 3 と 4 についてはまだ答えを探しています。

  1. apt-show-versions良い答えだ
  2. 上記のコマンドの組み合わせの 1 つと同じです。ここでの重要なステップは、もちろん、最初に /etc/apt で公式リポジトリのみが有効になっていることを確認することです。
  3. ?
  4. ?

関連情報