最近、Ubuntu Serverエディション13.10(Saucy Salamander)をインストールしました。しかし、私は少し問題に遭遇しました。
インストールの最後に、OpenSSHサーバーや仮想マシンホストなど、追加するパッケージが必要かどうかを尋ねられます。私が見ているものは次のとおりです。
さて、私の問題は、「仮想マシンホスト」チェックボックスをチェックしたかどうかを思い出せないことです。サーバーに対応するパッケージがあるかどうかを確認するにはどうすればよいですか?
仮想マシンホストにはどのパッケージが付属していますか?
オプション付きのすべての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
dpkg
を使用します
このコマンドはdebianパッケージマネージャーです。
以下を使用して、インストールされているすべてのパッケージをリストできます。
dpkg -l
特定のパッケージの詳細を表示するには、
dpkg -p packagename
そして、それがインストールされているかどうかを知るには、
dpkg -s packagename | grep Status
必要なソフトウェアが含まれているパッケージを確認できます
apt-cache search name*
あなたの場合、このコマンドを使用して必要なパッケージ名を検索する必要があります
apt-cache search virtual machine Host
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
パイプを使用せずにdpkg-queryコマンドのみでパッケージのインストールを確認する方法を見つけました。
Ansibleプレイブックのタスクを書いている間に、私はそのような解決策を探しました。
だから、あなたはこのようなことをすることができます:
/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'
これは別の方法です。
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 を参照してください。
Tasksel(Sudo apt-get install tasksel
をお持ちでない場合)を使用して、tasksel --list-tasks
を実行します。
taskselはタスクのリストを出力します。インストールされている各タスクの横にi
があり、インストールされていない各タスクの横にu
があります。
タスクをインストールする場合は、tasksel install <task>
を使用します。探しているタスクの名前はvirt-Host
です。
ソフトウェア選択項目は「タスク」と呼ばれます。
簡単なソリューション:
現在、インストール済みパッケージをリストするapt list
コマンドがあります。また、特定のパッケージを検索することもできます
apt list <package>
詳細については、man apt
を参照してください。正確なパッケージ名がわからない場合は、apt search
の後にその一部を使用して、関連するパッケージのリストを表示できます。
誰かが興味を持っている場合、パッケージまたはアプリケーションのリストから自動的にインストールするか、すでにインストールされているかどうかを確認できる小さなスクリプトを作成しました。
#!/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
それが誰かを助けることを願っています。