web-dev-qa-db-ja.com

パッケージがサーバーにインストールされているかどうかを確認するにはどうすればよいですか?

最近、Ubuntu Serverエディション13.10(Saucy Salamander)をインストールしました。しかし、私は少し問題に遭遇しました。

インストールの最後に、OpenSSHサーバーや仮想マシンホストなど、追加するパッケージが必要かどうかを尋ねられます。私が見ているものは次のとおりです。

Enter image description here

さて、私の問題は、「仮想マシンホスト」チェックボックスをチェックしたかどうかを思い出せないことです。サーバーに対応するパッケージがあるかどうかを確認するにはどうすればよいですか?

仮想マシンホストにはどのパッケージが付属していますか?

169
D.Zou

オプション付きのすべてのdpkgコマンドについて知りたいですか?以下のリンクを読んでください。

DebianベースのLinuxサーバーを管理する15個のdpkgコマンド

インストールされているすべてのパッケージをリストするには

ここで、「少ない」とは、既存のターミナルウィンドウで開く新しいバッファ内のパッケージのリストをスクロールするために使用される単純なテキストリーダーです。リストは、他の端末コマンドおよび出力と混合されません。 「q」を押して、ターミナルプロンプトに戻ります。詳細については、「man less」を参照してください。

dpkg -l | less

パッケージがインストールされているかどうかを確認するには:

dpkg -l {package_name}
dpkg -l vlc

パッケージがインストールされているかどうかを確認するには(たとえば、vlc)。インストールされている場合、パッケージを起動します。

dpkg -l | grep vlc

パッケージがインストールされている場所を表示します。 「-S」(大文字のS)は「検索」の略です

Sudo dpkg -S {package_name}
Sudo dpkg -S skype

Grepを使用して検索するには:

dpkg -l | grep {keywords}
dpkg -l | grep pdf
225
Babin Lonston

dpkgを使用します

このコマンドはdebianパッケージマネージャーです。

以下を使用して、インストールされているすべてのパッケージをリストできます。

dpkg -l

特定のパッケージの詳細を表示するには、

dpkg -p packagename

そして、それがインストールされているかどうかを知るには、

dpkg -s packagename | grep Status

必要なソフトウェアが含まれているパッケージを確認できます

apt-cache search name*  

あなたの場合、このコマンドを使用して必要なパッケージ名を検索する必要があります

apt-cache search virtual machine Host 
32
onurbekiroglu

apt -qq list PACKAGEは、PACKAGEがインストールされているかどうかを確認するためにも使用できます。

インストールすると、次のようなものが出力されます(行末に[installed]が付きます):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

インストールされていない場合、出力は次のようになります。

$ apt -qq list awscli
awscli/stable 1.4.2-1 all
29
Viktor Benei

パイプを使用せずにdpkg-queryコマンドのみでパッケージのインストールを確認する方法を見つけました。

Ansibleプレイブックのタスクを書いている間に、私はそのような解決策を探しました。

だから、あなたはこのようなことをすることができます:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

これは別の方法です。

14
DenKoren

Tasksel 'Task names'がdpkgまたはaptクエリに表示されないので、新しい回答を書いています。他の答えの意味は不完全です(または間違っています)。

"「仮想マシンホスト」チェックボックスをオンにした場合、思い出せません。」

Sudo taskselを再実行した後、名前のアスタリスクがあるかどうかを確認します。
(またはtasksel --list-tasksを実行している場合は 'i')。

これが表示されない場合は、おそらく「tasksel meta-package 」がインストールされていません。


"..サーバーに対応するパッケージがあるかどうかを確認するにはどうすればよいですか?"

Virtual Machine Host taskselメタパッケージの下にインストールされているものを知りたい場合:

tasksel --list-tasks

(あなたの場合tasksel --list-tasks | grep virtで十分です)

これにより、適切なタスクnameと、インストールされているかどうかが示されます。

あなたの場合、このtasksel名はvirt-Hostです。


「仮想マシンホストにはどのパッケージが付属していますか?」

最後のコマンドから、taskselタスク名を見つけます。
これは次のコマンドに必要です。

tasksel --task-packages virt-Host

これは、名前を構成する個々のTaskselメタパッケージ(追加された '^'で示される)をリストします。
あなたの場合はvirt-Host^です。

適切なメタ名が見つかったら、aptを使用できます。

 apt show virt-Host^ | grep "Package:"

(またはapt-cache showが機能しない場合は...apt show。)

これにより、指定されたメタパッケージを構成するすべてのパッケージが表示されます。

次に:

 dpkg -l {each individual pkg name listed above}

これにより、個々のパッケージがインストール/アンインストールされているかどうかがわかります(2番目の文字で示されます:「i」ステータスはインストール済みを意味します)。 task/metaパッケージの下にリストされているすべてのパッケージに対してこれを行います。

これは元の質問に答えるはずです。

サイドノート:/usr/share/tasksel/descs/ubuntu-tasks.descには、Taskselメタパッケージの説明も含まれています。次の場合:grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc適切なAPTメタパッケージ名が表示されます。 (あなたの場合、これはubuntu-virt-serverです)。このメタ名でaptコマンドを使用することもできます。

Taskselパッケージを削除する場合、これは少し雑草に入ります。 https://askubuntu.com/a/88897/169878 または他のさまざまな回答を参照してください。

"meta" aptパッケージはTaskselパッケージ名と一致しないことに注意してください。詳細については、 Tasksel Community Page を参照してください。

4
bshea

Tasksel(Sudo apt-get install taskselをお持ちでない場合)を使用して、tasksel --list-tasksを実行します。

taskselはタスクのリストを出力します。インストールされている各タスクの横にiがあり、インストールされていない各タスクの横にuがあります。

タスクをインストールする場合は、tasksel install <task>を使用します。探しているタスクの名前はvirt-Hostです。

ソフトウェア選択項目は「タスク」と呼ばれます。

3
Blake R

簡単なソリューション:

現在、インストール済みパッケージをリストするapt listコマンドがあります。また、特定のパッケージを検索することもできます

apt list <package>

詳細については、man aptを参照してください。正確なパッケージ名がわからない場合は、apt searchの後にその一部を使用して、関連するパッケージのリストを表示できます。

2
sk8forether

誰かが興味を持っている場合、パッケージまたはアプリケーションのリストから自動的にインストールするか、すでにインストールされているかどうかを確認できる小さなスクリプトを作成しました。

#!/bin/bash
apt -qq list YOUR_LIST_GOES_HERE | grep -v "installed" | awk -F/ '{print $1}' > /root/list.txt
packages=$(cat /root/list.txt)
grep -q '[^[:space:]]' < /root/list.txt
CHECK_LIST=$?
if [[ $CHECK_LIST -eq 1 ]]; then
echo "Your packages are already installed"
else
echo "Installing packages"
apt-get  install -y $packages
fi

それが誰かを助けることを願っています。

1