apt-getがチェックしているリポジトリのリストを取得する方法は?[閉まっている]


133

sources.listにあるリポジトリとsources.list.d /にあるリポジトリのリストが必要です。

別のホストをセットアップして同じリポジトリを監視するのに適した形式でこのリストを取得できますか?

さらに、どのレポがパッケージのソースであるか、インストールされているか、利用可能かをどのように判断しますか?


回答:


174

最も近いようです:

apt-cache policy

3
誰かが出力(URLなどの要約)を拡張し、ここで自分のコマンドを共有したいと思いましたか?
lony

49

私の知る限りでは、現在のソースが何であるかをaptに求めることはできませんが、シェルツールを使用してやりたいことを行うことができます。

リポジトリのリストを取得する:

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をすべて削除してください。


9
シンプルな全リストapt-cache policy |grep http |awk '{print $2 $3}' |sort -u
shadowbq 2015

スペースがないapt-cache policy |grep http |awk '{print $2 " " $3}' |sort -u
shadowbq

コマンドラインでgrep:/etc/apt/sources.list.d/*をに変更する必要があります/etc/apt/sources.list.d/*.list。理由については、askubuntu.com / questions / 82825 /…を
ErikSjölund

18

これを試して:

cat /etc/apt/sources.list

26
/etc/apt/sources.list.d/からのリポジトリは含まれません
。IE

3
grep -Erh ^deb /etc/apt/sources.list*トリックを行う必要があります。
デビッド

1
grep -Erh '^deb ' /etc/apt/sources.list*deb-src行を除外します。
デビッド

8

これ、他のマシンに盲目的にコピーするのに適した形式ではありませんが、リポジトリをまだ追加していないかどうかを試したいユーザーは(私が行ったように)、次のようにできます。

sudo apt update

ときに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

または、他の回答が示唆しているように、次のcatような既存のソースすべてを使用することもできます。

cat /etc/apt/sources.list /etc/apt/sources.list.d/*

無効になっているリポジトリはハッシュでコメント化されているため、これは意図したとおりに機能するはずです。


なぜ反対票か。私の回答を改善できるように、少なくともコメントを残してください.......
starbeamrainbowlabs 2018

コメント付きの反対投票(今のところ):この出力をキャプチャし、それを質問への回答に変換する方法を示してくださいapt update
ダルディスコ

2
かなり改善されました!+1はawk、フィルタリングで使用します。
dardisco

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.