如何搜尋包裹?

如何搜尋包裹?

我知道這聽起來像是一個荒謬的問題,但這就是我想做的:安裝 Apache http 伺服器。

所以我跑步apt search apache並得到了大量結果。

實際上... apt search apache | wc -l除以 3 - 我似乎得到了大約 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

編輯:感謝@pymym23,您可以使用描述來更好地對結果進行排序,例如

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>

顯示為該套件安裝的內容。

因此沒有參數它返回什麼在哪裡可以了解該軟體包,因此,您知道要安裝什麼,並且透過該參數,您可以確認是否已經安裝了該軟體包

相關內容