回答:
私の知る限りでは、現在のソースが何であるかを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をすべて削除してください。
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 /…を
これは、他のマシンに盲目的にコピーするのに適した形式ではありませんが、リポジトリをまだ追加していないかどうかを試したいユーザーは(私が行ったように)、次のようにできます。
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/*
無効になっているリポジトリはハッシュでコメント化されているため、これは意図したとおりに機能するはずです。
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