如何获取apt-get存储库列表正在检查?

时间:2011-12-27 17:29:44

标签: apt

我想在sources.list中添加一个repos列表,再加上那些 sources.list.d /.

我是否可以以适合设置的形式获取此列表 另一个主人,所以它看同一个回购?

此外,我如何确定哪个回购是 包的来源,无论是已安装还是可用?

5 个答案:

答案 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