当我运行此命令时:
apt install libkf5*
我收到以下错误:
Unable to locate package libkf5*
我确信名称以 开头的软件包是libkf5
存在的(制表符补全功能显示如此)。因此问题不在于缺少这些软件包。(请注意该错误消息末尾的星号,通配符根本不起作用)
我使用的是apt
v.1.9。
提前致谢。
答案1
最新版本apt
改变了模式的指定方式,并且apt
不再直接支持正则表达式或通配符,除了之前*
支持的其他内容在 2.1.0 中恢复和已移植至 2.0.3。
你现在应该使用
apt install '~nlibkf5.*'
使用 1.9.9 和 2.0.2 之间的 apt,或长格式
apt install '?name(libkf5.*)'
稍早一点就可以使用了。
看手册apt-patterns
页(man apt-patterns
)了解详情。
答案2
人们仍然可以使用平apt-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'
致谢: