web-dev-qa-db-ja.com

特定のコンポーネント(non-free、contrib)からインストールされたすべてのソフトウェアをリストする

すべてを一覧表示する方法はありますかnon-freeおよびcontribソフトウェアは、aptを介してDebianにインストールされていますか?

/etc/apt/sources.list 以下のとおりであります

deb http://ftp.us.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

# wheezy-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ wheezy-updates main
deb-src http://ftp.us.debian.org/debian/ wheezy-updates main

追加した non-freecontrib年前、ビデオカード用の非フリードライバーが必要だったので、非フリードライバーを必要としない新しいものに置き換えられました。 non-freeのものを取り除きたいのですが、アンインストールする余裕がない他のnon-freeソフトウェアを何年にもわたってインストールした可能性があります。

12
Alex
  • _dpkg-query -W -f='${Section}\t${Package}\n' | grep ^non-free_
  • aptitude search '~i ?section(non-free)'

Sectionはnon-freeパスになります。

[注意] gccドキュメントの場合...

_ This documentation is licensed under the terms of the GNU Free
 Documentation License, and contains invariant sections, so it can't be
 part of Debian main.
_

(私もそれについて疑問に思いましたが、それが言及されるまでチェックを気にしませんでした。)

15
Ricky Beam

VRMS(仮想Richard M. Stallman)と呼ばれるプログラムがあり、システム上のすべての非フリーソフトウェアを短い要約で報告します。そのリポジトリにあり、aptを介してインストールできます;-)

6
Geeb

数年前にも同様の「衝動」があり、パッケージをダウンロードした後、元のパッケージ情報がシステムに保持されていると判断できませんでした。この情報をdpkgが利用できるとは思いません。

つまり、クリーンな仮想マシンをセットアップし、適切な/etc/apt/sources.listをセットアップして、次のようにして生成されたリスト全体をインストールしました。

dpkg --get-selections | fgrep -v deinstall | cut -s -f 1

インストールしないパッケージ(apt-get -dを使用して時間を節約するためにダウンロードしただけです)。

apt-get --root-directory=some_dirを一時的に変更すると、sources.listを使用して同様のことを実行できる場合がありますが、現在のインストールデータベースを使用してパッケージをそこに移動するだけかどうかはわかりません。この種の実験のVMは、はるかに安全です。私は通常、現在のLinuxのクリーンな基本インストールをVMとして持っているので、それを複製するだけで済みます(VMへのLinuxのインストールには、それほど時間がかかりません)。

2
Timo