我想在sources.list中添加一个repos列表,再加上那些 sources.list.d /.
我是否可以以适合设置的形式获取此列表 另一个主人,所以它看同一个回购?
此外,我如何确定哪个回购是 包的来源,无论是已安装还是可用?
答案 0 :(得分:150)
似乎最接近的是:
apt-cache policy
答案 1 :(得分:36)
AFAIK你不能问他们目前的资源是什么,但是你可以使用shell工具做你想做的事。
获取存储库列表:
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* >> current.repos.list
应用清单:
apt-add-repository << current.repos.list
关于从包(已安装或可用)获取repo,这将实现技巧
apt-cache policy package_name |grep -m1 http| awk '{ print $2 " " $3 }'
但是,这将显示该软件包可用的最新版本的存储库,对于具有旧版本的同一软件包,您可能拥有更多存储库。如果要查看完整列表,请删除所有grep / awk内容。
答案 2 :(得分:14)
试试这个:
cat /etc/apt/sources.list
答案 3 :(得分:3)
不一种适合盲目复制到另一台机器的格式,但是想要弄清楚他们是否已经添加了存储库的用户(就像我做的那样),你可以这样做:
sudo apt update
当apt
正在更新时,它会输出它提取的存储库列表。这似乎很明显,但我刚刚意识到它吐出的GET
网址是什么。
修改:以下基于awk
的表达式可用于生成sources.list:
cat /tmp/apt-update.txt | awk '/http/ { gsub("/", " ", $3); gsub("^\s\*$", "main", $3); printf("deb "); if($4 ~ "^[a-z0-9]$") printf("[arch=" $4 "] "); print($2 " " $3) }' | sort | uniq
或者,正如其他答案所示,您可以cat
这样的所有预先存在的来源:
cat /etc/apt/sources.list /etc/apt/sources.list.d/*
由于禁用的repos被注释掉了哈希,这应该按预期工作。
答案 4 :(得分:-1)
我来这里是为了什么,但我所需要的只是:
cd /etc/apt
nano source.list
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
apt upgrade && update
来源: https://docs.kali.org/general-use/kali-linux-sources-list-repositories