我知道這聽起來像是一個荒謬的問題,但這就是我想做的:安裝 Apache http 伺服器。
所以我跑步apt search apache
並得到了大量結果。
實際上...
apt search apache | wc -l
除以 3 - 我似乎得到了大約 700 個結果。
我可以嘗試使用縮小範圍
apt search apache http
,然後得到大約 200 個結果,然後我可以滾動很多,它最終會出現。我還可以使用
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>
顯示為該套件安裝的內容。
因此沒有參數它返回什麼和在哪裡可以了解該軟體包,因此,您知道要安裝什麼,並且透過該參數,您可以確認是否已經安裝了該軟體包