Debianで利用可能な(つまり、アンインストールされた)パッケージのリストを取得するにはどうすればよいですか?


19

本質的に私が探しているのは、Debianに相当するものです:

yum list available

使用可能なパッケージを表示します(現在インストールされていません)。これはリモートサーバー上にあるため、コンソールから実行できるものが望ましいです。ありがとう。

回答:


7

grep-dctrlおよびその派生物は、aptキャッシュファイルを照会する優れた方法を提供します。(sudo apt-get install dctrl-toolsを使用してこれらのツールをubuntuにインストールできます)

使用可能な(ただし、必ずしもインストールされていない)パッケージの場合は、を使用できますgrep-available。たとえば、利用可能なすべてのパッケージを一覧表示するには:

grep-available  -s Package .

編集:

aptitude 起動するだけで未インストールパッケージのリストを表示できます。

aptitudeを使用して、インストールされていないパッケージのリストを取得することもできます。

aptitude -F "%p" search "?not(?installed)"

新しいmulti-archパッケージでは、この結果にリストされている他のアーキテクチャ用のパッケージが取得されることに注意してください。たとえば、次のようになります:

aptitude -F "%p" search "?not(?installed)"  | grep "^bash:"
bash:i386

bashパッケージはインストールされていますが、OSはUbuntu Preciseのamd64バージョンでインストールされているため、amd64バージョンです。他のアーキテクチャのこれらのパッケージを表示したくない場合は、次を含む行を除外できます:

aptitude -F "%p" search "?not(?installed)"  | grep -v ':'

感謝しますが、これに関する問題は、選択したリポジトリのパッケージリスト全体をトロールする必要があることです。おそらく、問題を視覚化するより良い方法は、Xが私のサーバーが指しているDebianパッケージリポジトリ内のすべてのパッケージのユニバーサルセットであり、Yがそのサーバーにインストールしたパッケージのセットだと想像してください。本質的に、私が求めているのはX-Yです。これで、プログラムでこれを実行できることに気付きましたが、Debianシステムで同じ結果を得るための比較的簡単なコマンドがあることを望みました。
-freakwincy

編集した回答を見ました。それはまさに私が探していたものです!ありがとう。
freakwincy

PSあなたの答えを投票しましたが、私はまだ十分な評判ポイントを蓄積していません。
freakwincy

問題ない。ようこそSUへようこそ
;

16

apt-cache パッケージキャッシュのクエリに使用されます。

apt-cache pkgnames | ソート
apt-cache検索の
apt-cache search --names-only thing

感謝しますが、うまくいきません。最初のコマンドで生成されたリストを、以前に生成されたインストールパッケージのリストと比較しました。code「dpkg --get-selections | grep '[[:space:]] install $' | awk '{print $ 1}' > installed.txt」と重複が見つかりました。私は特定のパッケージではなく、探していないよので、あなたが提供されている他の2つのコマンドは動作しません任意の現在インストールされていないパッケージ。
-freakwincy

2

apt-cacheこの目的に使用:

apt-cache search package

以来apt-cacheのみシステムにパッケージキャッシュを使用して、このキャッシュは最新の状態にあることを確認してください。

apt-get update

apt-file検索するファイルの名前がわかっている場合は、ユーティリティを使用することもできます。ただし、これはシステムに追加する必要があります。例えば:

apt-file search somefilename

apt-cache次のいずれかの方法で使用する傾向があります。

apt-cache search package | sort | grep item

(これにより、実際にサマリーまたは名前にアイテムが含まれているものが表示されます。)

apt-cache search thing | sort | less

(これは、モノを検索し、で快適に表示できるようにソートしlessます。)


2

私の観点では、デフォルトでインストールされたコマンドを使用し、特別な理由がない場合は余分なパッケージを避けます。

DebianでGNU bashを使用するこれらの簡単なコマンド

apt list
apt list --all-versions

すべてのリスト(インストール済みおよび未インストール)を提供します。次に、grep "installed"またはgrep -v "installed"で結果を制限できます。また、1つ以上のパッケージ名と組み合わせることもできます(ワイルドマークを使用できます)。

スイッチ「-all-versions」は、各パッケージバージョン(安定版、テスト版、不安定版、実験版)の出力に個別の行を提供します。

単純な「aptリスト」は、1つの(最高優先順位)バージョンのみを提供します。


0

質問に厳密に答えて(インストールされていないパッケージのリストを表示したい)、使用してみてください

(以下のコメントに従って編集)

# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'

正確な構文はわかりませんが、私はこれをWindowsボックスで書いており、チェックする方法がありません。たぶんあなたがgrepで何を変更しようとします


これは、アンインストールされていないインストール済みパッケージをリストします。
チャフィンク

@Raphink:申し訳ありませんが、これを修正するために投稿を編集しました
PPC

問題ありませんが、インストールされていないパッケージはまだリストされていません。「II」パッケージを除外することによって(本当にあなたの表現が何をするか、実際にされていない、あなたは使うべき'^ii'ではなく'[ii]')、あなたがインストールされているが例えば(のように構成されていないパッケージに欠けているiFか、iHなど)。
チャフィンク

@PPC:残念ながら、dpkg -lはインストールされたパッケージのみをリストするため、これは機能しません。つまり、すべてのパッケージの先頭に「ii」があるため、-invert-matchまたは-vフラグを使用して結果をgrepにパイプすると、リストヘッダーのセパレーターである一連のダッシュ。とにかくありがとう。
-freakwincy

@ freakwincy:そうです!送信する前にテストしなかったためごめんなさい(Windowsでの作業)。マンページによると、「dpkg -l '*'」を使用してすべてのパッケージを一覧表示する必要があります。
PPC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.