我想要一个source.list中的repos列表,以及sources.list.d /中的那些.
我是否可以以适合设置其他主机的形式获取此列表,以便观看相同的回购?
此外,如何确定哪个仓库是安装或可用的包的来源?
kte*_*ney 163
似乎最接近的是:
apt-cache policy
Run Code Online (Sandbox Code Playgroud)
Val*_*lor 41
AFAIK你不能问他们当前的资源是什么,但你可以使用shell工具做你想做的事.
获取存储库列表:
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* >> current.repos.list
Run Code Online (Sandbox Code Playgroud)
应用清单:
apt-add-repository << current.repos.list
Run Code Online (Sandbox Code Playgroud)
关于从包(安装或可用)获取repo,这将成功
apt-cache policy package_name |grep -m1 http| awk '{ print $2 " " $3 }'
Run Code Online (Sandbox Code Playgroud)
但是,这将显示该软件包可用的最新版本的存储库,对于具有旧版本的同一软件包,您可能拥有更多存储库.如果要查看完整列表,请删除所有grep/awk内容.
rad*_*dri 16
试试这个:
cat /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
sta*_*abs 10
它不是一种适合盲目复制到另一台机器的格式,但是希望确定他们是否已经添加了存储库的用户(就像我一样),你可以这样做:
sudo apt update
Run Code Online (Sandbox Code Playgroud)
当apt被更新时,其输出它获取库列表。看起来很明显,但我刚刚意识到GET它吐出的URL 是什么。
以下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
Run Code Online (Sandbox Code Playgroud)
或者,正如其他答案所暗示的那样,您可以cat像这样使用所有预先存在的来源:
cat /etc/apt/sources.list /etc/apt/sources.list.d/*
Run Code Online (Sandbox Code Playgroud)
由于禁用的存储库用哈希注释掉,这应该按预期工作。
| 归档时间: |
|
| 查看次数: |
199517 次 |
| 最近记录: |