添加PPA后APT无法显示可用的dosbox-staging deb包(系统已存在该软件的snap版本)
遇到这种情况别慌,咱们一步步排查解决:
1. 先确认PPA是否真的正确添加并启用
首先检查系统里有没有成功生成目标PPA的源文件:
ls /etc/apt/sources.list.d/ | grep feignint
如果能看到类似feignint-ubuntu-dosbox-staging-jammy.list的文件,再检查文件内容有没有被注释(行开头带#):
cat /etc/apt/sources.list.d/feignint-ubuntu-dosbox-staging-jammy.list
要是有注释,去掉所有行开头的#,然后重新更新APT缓存:
sudo apt update
如果没找到对应的源文件,说明PPA没添加成功,重新执行添加命令:
sudo add-apt-repository ppa:feignint/dosbox-staging sudo apt update
2. 检查系统架构与PPA包是否匹配
Launchpad上的PPA可能只提供特定架构的deb包,先确认你的系统架构:
dpkg --print-architecture
比如输出是amd64,就对应去确认PPA是否有该架构的jammy包。如果你的架构是arm64这类,而PPA没提供对应包,自然看不到deb版本。
3. 清理APT缓存后重新更新
有时候APT缓存可能出现异常,导致新添加的源信息没被正确读取,试试清理缓存再更新:
sudo apt clean sudo apt update
4. 检查APT优先级规则(Pinning)
如果系统设置了APT优先级规则,可能会忽略这个PPA的包。查看优先级配置文件:
ls /etc/apt/preferences.d/
如果有相关配置文件,打开看看有没有针对dosbox-staging或该PPA的低优先级设置(比如Pin-Priority: 100),这类设置会让APT优先选择其他源的包甚至忽略该PPA。如果有,调整优先级或者删除对应规则,再更新APT。
5. 查看APT更新时的错误信息
执行sudo apt update时,仔细看输出内容,有没有关于这个PPA的错误提示,比如签名无效、无法连接源服务器等。如果是签名问题,重新导入PPA的GPG密钥:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PPA密钥ID>
(密钥ID可以从Launchpad的PPA页面或更新错误信息里提取)
6. 直接查看可用版本源
最后,用apt policy命令查看dosbox-staging的所有可用源:
apt policy dosbox-staging
如果输出里能看到PPA提供的版本,直接执行安装命令即可:
sudo apt install dosbox-staging
要是还是看不到,可能是PPA源暂时有问题,可以过段时间再试,或者手动从Launchpad下载对应架构的jammy deb包,用以下命令安装:
sudo dpkg -i <下载的deb包文件名> sudo apt -f install
备注:内容来源于stack exchange,提问作者Usermaxn




