Answers:
AFAIK您无法要求提供它们的最新来源,但是您可以使用Shell工具来完成您想要的事情。
获取存储库列表:
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* >> current.repos.list
应用列表:
apt-add-repository << current.repos.list
关于从软件包(已安装或可用)中获取回购,将达到目的
apt-cache policy package_name |grep -m1 http| awk '{ print $2 " " $3 }'
但是,这将向您显示该软件包可用的最新版本的存储库,对于较旧版本的同一软件包,您可能会有更多的存储库。如果要查看完整列表,请删除所有grep / awk内容。
apt-cache policy |grep http |awk '{print $2 $3}' |sort -u
apt-cache policy |grep http |awk '{print $2 " " $3}' |sort -u
/etc/apt/sources.list.d/*
应将其更改为/etc/apt/sources.list.d/*.list
。至于原因,看 askubuntu.com/questions/82825/...
试试这个:
cat /etc/apt/sources.list
grep -Erh ^deb /etc/apt/sources.list*
应该可以。
grep -Erh '^deb ' /etc/apt/sources.list*
排除deb-src
行。
这不是适合盲目复制到另一台计算机的格式,但是希望确定自己是否已添加存储库的用户(像我一样),您可以执行以下操作:
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/*
由于禁用的存储库已用哈希注释掉,因此应可以正常工作。
apt update
,如何过滤该输出/文本以提取与该问题相关的信息?
awk
过滤。
我来这里是为了什么,但我所需要的只是:
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