パッケージを検索するにはどうすればいいですか?

パッケージを検索するにはどうすればいいですか?

これは馬鹿げた質問のように聞こえることは承知していますが、私がやろうとしていることは次のとおりです。Apache http サーバーをインストールします。

だから私は実行しapt search apache、たくさんの結果を得ます。

実際... apt search apache | wc -l3で割ると、約700件の結果が得られるようです。

  1. を使用して絞り込みを試みるapt search apache httpと、約 200 件の結果が表示され、その後スクロールしていくと、最終的に表示されます。

  2. apt search --names-only apacheまた、説明に Apache のみが記載されているものをすべて使用して、少なくとも除外することもできます。これにより、結果は 110 件に減ります。

私が探しているパッケージが「apache2」という名前であることを考えると、これらすべてはかなり複雑で面倒に思えます。結果を最適に並べ替える方法はありますか? または、他のツールを使用する必要がありますか?

答え1

パッケージをどのように呼び出すか、または少なくともその名前の一部が何であるかを知っているようです。 apt searchこのタスクに最適なツールではないようですので、apt list代わりに以下を使用してください。

$ apt list apache\*
Listing... Done
apache2/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-bin/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-data/bionic-updates,bionic-updates,bionic-security,bionic-security 2.4.29-1ubuntu4.11 all
apache2-dbg/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-dev/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-doc/bionic-updates,bionic-updates,bionic-security,bionic-security 2.4.29-1ubuntu4.11 all
apache2-ssl-dev/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-suexec-custom/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-suexec-pristine/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apache2-utils/bionic-updates,bionic-security 2.4.29-1ubuntu4.11 amd64
apachedex/bionic,bionic 1.6.2-1 all
apacheds/bionic-updates,bionic-updates,bionic-security,bionic-security 2.0.0~M24-2~18.04 all
apachetop/bionic 0.12.6-18build2 amd64

からaptマニュアル:

リストdpkg-query --listは、特定の条件を満たすパッケージのリストを表示できるという点で、に似ています。glob(7)パッケージ名を一致させるためのパターンと、インストール済みバージョン ( --installed)、アップグレード可能バージョン ( --upgradeable)、または利用可能なすべての--all-versionsバージョン ( ) を一覧表示するオプション。

エスケープされたアスタリスク ( \*) は、名前の後に任意の文字が続く可能性があることを意味します。何も見つからない場合は、検索文字列の先頭にエスケープされたアスタリスクを追加することを検討してください。

このリストから適切なものを選択できると確信しています。 当然、最初のものは実際の Apache サーバーです。apache2パッケージを選択すると、その依存関係も自動的にインストールされます。

$ sudo apt install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  apache2-bin apache2-data apache2-utils libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0
  ssl-cert
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom openssl-blacklist

答え2

次のコマンドを使用できますgrep:

apt-cache search apache2 | grep apache2

もしあなたが気に入らないならgrep の色を変更するには、--color=noneオプションを追加するだけです:

apt-cache search apache2 | grep apache2 --color=none

PS: オプションを忘れないようにすることをお勧めします。コマンド-cacheを使用して追加しないとパッケージ名が表示されませんgrep(このオプションなしの結果を以下に示します)。

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

  Apache HTTP Server (mod_ssl development headers)
  WebSocket extension for Apache HTTP Server

編集: 感謝フォロー、説明を使用して結果を並べ替える方がよいでしょう。たとえば、

apt-cache search apache2 | grep "Apache HTTP Server"

結果 :

apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server

また、-iオプションを使用する必要があります。小文字ではなく大文字を入力しないと、結果が並べ替えられません。

例 :

apt-cache search apache2 | grep "apache HTTP Server"

そしてあなたは検索結果はありません

apt-cache search apache2 | grep -i "apache HTTP Server"

結果は次のようになります:

apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers)
python-mod-pywebsocket - WebSocket extension for Apache HTTP Server

答え3

これを検索する良い方法はタブ補完だと思います

sudo apt install apache<tab><tab>

与える

 sudo apt install apache
apache2                  apache2-doc              apachedex
apache2-bin              apache2-ssl-dev          apacheds
apache2-data             apache2-suexec-custom    apachetop
apache2-dbg              apache2-suexec-pristine  
apache2-dev              apache2-utils  

それが失敗したら、コマンドを入力してください

~$ apache

Command 'apache' not found, did you mean:

  command 'apache2' from deb apache2-bin

Try: sudo apt install <deb name>

最近のディストリビューションは、あなたが何を意図しているかを非常によく理解しています

apt searchそれが失敗した場合は、通常は/に戻るapt list か、最近ではdocker hubを検索してdocker経由でインストールすることが多いです。

答え4

apt list結果のプレゼンテーションについては よりも のほうが優れているという解決策には同意しますがapt search、さらに詳しい情報は以下から入手できます。

  • apt list | grep <package_name>

--installed次のようなパラメータを使用します。

  • apt list --installed | grep <package_name>

そのパッケージに何がインストールされているかを表示します。

したがって、パラメータなしではそしてどこパッケージに関する情報が入手できるので、何をインストールしたいかがわかります。また、パラメータを使用すると、パッケージがすでにインストールされているかどうかを確認できます。

関連情報