web-dev-qa-db-ja.com

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

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

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

さらに、どのリポジトリがインストール済みまたは利用可能なパッケージのソースであるかをどのように判断しますか?

116
ktenney

最も近いようです:

apt-cache policy
150
ktenney

知る限りでは、現在のソースは何なのかを尋ねることはできませんが、シェルツールを使用して目的の操作を実行できます。

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

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をすべて削除します。

36
Valor

これを試して:

cat /etc/apt/sources.list
14
radri

それはnot盲目的に別のマシンにコピーするのに適した形式ですが、リポジトリをまだ追加しているかどうかを判断したいユーザー(Iなど)した)、あなたはちょうどすることができます:

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/*

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

3

私は何かのためにここに着きましたが、必要なのは次のとおりです:

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

0
Crys