在 apt 中使用通配符時出現問題

在 apt 中使用通配符時出現問題

當我運行此命令時:

apt install libkf5*

我收到以下錯誤:

Unable to locate package libkf5*


我確信名稱以 開頭的包libkf5存在(製表符補全是這樣說的)。所以問題不在於缺少這些軟體
apt
提前致謝。

答案1

最新版本apt 改變了模式的指定方式,並且apt不再直接支援正規表示式或通配符,除了*支持2.1.0中恢復向後移植到 2.0.3

你現在應該使用

apt install '~nlibkf5.*'

apt 位於 1.9.9 和 2.0.2 之間,或長形式

apt install '?name(libkf5.*)'

可以稍早一些。

線上說明apt-patterns( man apt-patterns) 詳細資料。

答案2

人們仍然可以使用 plainapt-get來達到這個目的。

對於OP的例子,它看起來像

sudo apt-get install "libkf5*"

答案3

根據 apt 的變更日誌,版本2.1.0

* Reinstate * wildcards (Closes: #953531) (LP: #1872200)

(連結:啟動板#1872200

所有子命令的星號(並且只有星號)已恢復apt,包括apt install.

雖然 2.1.0 太新,無法運送到 Focal,但它已被向後移植到2.0.3可以在focal-proposed儲存庫中找到。您可以參考Ubuntu 維基用於啟用建議的儲存庫,然後您可以安裝 apt 2.0.3,該版本已向後移植此功能。

你自己看:

影像

筆記: 你可能想讀一下什麼是「建議的」儲存庫?在繼續使用建議的儲存庫之前。

答案4

apt我發現了一個與通配符一起使用的小技巧。我們只需要apt使用別名apt-get,但此方法不起作用,因為別名不會傳遞給sudo。為了解決這個問題,您可以在文件sudo中新增第二個別名.bashrc

alias sudo='sudo ' # whitespace is important 
alias apt='apt-get'

學分:

相關內容