You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Apt通配符使用问题:当前目录文件名被识别为包名的原因咨询

Apt通配符使用问题:当前目录文件名被识别为包名的原因咨询

嗨,这个问题其实是shell通配符解析顺序在搞怪!

当你在终端输入apt install boinc*时,并不是apt直接处理这个通配符,而是你的shell(比如常用的bash)会先对*做解析工作:如果当前目录下存在以boinc开头的文件(比如你遇到的boinc_ubuntu_7.16.6_x86_64-pc-linux-gnu.sh),shell会直接把boinc*替换成这些匹配到的具体文件名,再把替换后的内容传给apt。

这时候apt拿到的就不是通配符boinc*,而是那个shell替换后的文件名了,它会默认去软件仓库里找同名的包,自然找不到,所以就抛出了"E: Unable to locate package..."的错误。

如果你的需求是用通配符匹配软件仓库里的包,只要把通配符用单引号或者双引号括起来就行——这样能阻止shell提前解析通配符,让apt自己去处理这个匹配逻辑,比如输入:
apt install 'boinc*'
或者
apt install "boinc*"

备注:内容来源于stack exchange,提问作者kotenok2000

火山引擎 最新活动