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


12

全て一覧表示する方法があるnon-freecontrib経由のDebianにインストールされているソフトウェアはapt

/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-freeしたのはcontrib何年も前のことですが、ビデオカード用のnon-freeドライバーが必要でしたが、現在はnon-freeドライバーを必要としない新しいドライバーに置き換えられています。non-freeのものを取り除きたいのですが、アンインストールする余裕がない他のnon-freeソフトウェアを何年もインストールしていたのではないかと心配しています。


回答:


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

Section non-freeパスからのすべてに対してnon-free / ...になります。

[注意] gcc docsの場合...

 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.

(私もそれについて不思議に思ったが、それが言及されるまでチェックを気にしなかった。)


どちらも異なる結果をもたらしました(pastebin.com/rAhYHTk8)。NVIDIAのもの​​はドライバーなので、dpkgは正しいようです!賛成。私はgcc-docがそこで何をしているのかと思います。
Alex

NVIDIAのもの​​はすでに削除されています。おそらく.debなどを保持しているため、おそらくaptにリストされています。リストされていないnon-freeから持っているものの1つを思い出しdpkg -l | grep -i nonfreeましたflashplugin-nonfree。結果はです。なぜそれがaptitudeによってリストされなかったのか、そして実際にnon-freeからすべてをリストしているのだろうか。
Alex

2
それがcontribにあるので:: debian / pool / contrib / f / flashplugin-nonfree(Section: contrib/web
Ricky Beam

1
両方のセクションのワンライナーは dpkg-query -W -f='${Section}\t${Package}\n' | sort | egrep ^contrib\|^non-free
GKFX

についてdpkg-query -W -f='${Section}\t${Package}\n'Sectionコンポーネントを表示しません。(少なくとも、それはUbuntuの18.04で私のためにしません。)例コンポーネントがあるかもしれないmaincontribまたはnon-free。セクションでは、のようなものですに対し:admingnomeutils、またはx11
mpb 2018

6

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


2
それvrms自体がに追加されることに言及する価値があり/etc/cron.monthlyます。インストールの1か月後に仮想ストールマンからメールを受け取ったとき、私はうれしく驚きました。
Alex

2

数年前にも同様の「衝動」があり、パッケージをダウンロードした後、元のパッケージ情報がシステムに保持されていると判断できませんでした。この情報はには利用できないと思います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をインストールするのにそれほど時間がかかりません)。


素敵な「解決策」。現在、そのためのディスク領域はありませんが、aptが最初に見つからなかった(したがって、フリーではない)パッケージを表示すると思いますか?
Alex

@Alexはい、そのとおりです。それは答えに欠けているようなものです。しかし、まれに起こり、パッケージが実際にあるリポジトリから別のリポジトリに実際に移動しない限り、リッキーのアプローチはより優れています(そして、あなたは最新ではないか、パッケージがバージョン番号を変更していません)。
ティモ2014年

0

Ask Ubuntuにアクセスしてください。ここでコマンドライン:

FILTER=non-free TMP_DIR=$(mktemp -d) && {
  dpkg -l | grep ^ii | cut -f 3 -d' ' | cut -f 1 -d : | sort | uniq > ${TMP_DIR}/pkg_installed.list
  cat /var/lib/apt/lists/*_${FILTER}_*Packages | grep "^Package:"  | sort | uniq | cut -d' ' -f2 > ${TMP_DIR}/pkg_filtered.list
  comm -12 ${TMP_DIR}/pkg_installed.list ${TMP_DIR}/pkg_filtered.list
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.