如何追溯Linux系统中特定APT软件包仓库的添加方式与原因
哈哈,这种“不明来历”的仓库确实有点尴尬,我之前也碰到过类似情况,给你几个实用的方法来追溯它的来源:
查看仓库文件本身的注释信息
很多PPA或者第三方仓库在添加时,会在对应的.list文件里留下注释说明来源。你可以直接查看这个文件的内容:cat /etc/apt/sources.list.d/armagetronad-dev-ubuntu-ppa-eoan.list有些文件里会标注类似
# Added by add-apt-repository for armagetronad-dev的内容,或者直接显示PPA的地址,能帮你快速定位添加渠道。检查APT和DPKG的系统日志
系统会记录所有APT相关的操作,包括添加仓库、安装包的行为。你可以搜索相关日志文件:- 搜索APT日志(包括压缩的历史日志):
grep -i armagetronad /var/log/apt/*.log zgrep -i armagetronad /var/log/apt/*.log.gz - 搜索DPKG日志,看看有没有相关包的安装记录:
grep -i armagetronad /var/log/dpkg.log*
日志里的时间戳能帮你对应到两年前的操作,甚至能看到当时执行的命令或者触发添加仓库的包。
- 搜索APT日志(包括压缩的历史日志):
查找是否有软件包负责维护这个仓库
有些第三方软件(比如Chrome、Docker)会通过自身的deb包自动添加仓库,你可以用dpkg查找这个仓库文件属于哪个包:dpkg -S /etc/apt/sources.list.d/armagetronad-dev-ubuntu-ppa-eoan.list如果有对应的包,就能直接知道是安装哪个软件时带来的仓库;如果没有返回结果,大概率是手动添加或者通过
add-apt-repository命令添加的。检查用户命令历史
如果你是用自己的用户账号添加的,不妨看看bash历史记录:grep -i "armagetronad\|add-apt-repository" ~/.bash_history不过两年前的历史可能已经被覆盖(尤其是系统定期清理历史文件的话),但可以碰碰运气。
关联Steam游戏安装的线索
你提到当时装了Steam玩Among Us,有可能是安装其他游戏或工具时误操作添加的PPA。可以先看看系统里有没有残留的armagetronad相关包:dpkg -l | grep armagetronad如果有安装记录,结合之前的日志搜索,应该能关联到添加仓库的操作。
如果实在找不到确切原因,其实也不用太纠结——先备份这个仓库文件,然后直接删除它,再运行apt update就好,不会对系统造成影响(毕竟你根本没用过这个游戏的包)。
备注:内容来源于stack exchange,提问作者Lge24

