160 votes

Comment puis-je obtenir la liste des dépôts que 'apt-get' vérifie ?

Je veux une liste de référentiels dans sources.list ainsi que celles de sources.list.d/ .

Puis-je obtenir cette liste sous une forme appropriée pour configurer un autre hôte pour qu'il surveille les mêmes dépôts ?

De plus, comment puis-je déterminer quel référentiel est la source d'un paquet, qu'il soit installé ou disponible ?

1 votes

205voto

ktenney Points 389

Il semble que le plus proche soit :

apt-cache policy

5 votes

Quelqu'un a-t-il amélioré le résultat (en résumant les urls, etc.) et souhaite-t-il partager sa commande ici ?

6 votes

@Iony Que diriez-vous de ceci : apt-cache policy | awk '/http.*amd64/{print$2}' | sort -u

58voto

Valor Points 534

Pour autant que je sache, vous ne pouvez pas demander apt pour savoir quelles sont leurs sources actuelles. Cependant, vous pouvez faire ce que vous voulez en utilisant les outils du shell.

Obtenir une liste de référentiels :

grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* >> current.repos.list

Appliquer la liste :

apt-add-repository << current.repos.list

En ce qui concerne l'obtention du référentiel à partir d'un paquet (installé ou disponible), cela fera l'affaire :

apt-cache policy package_name | grep -m1 http | awk '{ print $2 " " $3 }'

Cependant, cela vous montrera le dépôt de la dernière version disponible de ce paquet, et vous pouvez avoir plus de dépôts pour le même paquet avec des versions plus anciennes. Supprimez tous les trucs grep/awk si vous voulez voir la liste complète.

14 votes

Simple liste complète apt-cache policy |grep http |awk '{print $2 $3}' |sort -u

3 votes

Il manque un espace apt-cache policy |grep http |awk '{print $2 " " $3}' |sort -u

2 votes

Dans la ligne de commande avec grep : /etc/apt/sources.list.d/* doit être changé en /etc/apt/sources.list.d/*.list . Pour ce qui est de la raison, voir askubuntu.com/questions/82825/

20voto

radri Points 103

Essayez ça :

cat /etc/apt/sources.list

31 votes

Cela n'inclura pas les dépôts de /etc/apt/sources.list.d/, IE ceux résultant de #apt-add-repository XXX

3 votes

grep -Erh ^deb /etc/apt/sources.list* devrait faire l'affaire.

1 votes

grep -Erh '^deb ' /etc/apt/sources.list* pour exclure le deb-src lignes.

14voto

C'est no un format adapté à la copie aveugle sur une autre machine, mais les utilisateurs qui souhaitent savoir s'ils ont déjà ajouté un dépôt ou non (comme je l'ai fait) peuvent le faire :

sudo apt update

Lorsque apt est en train de se mettre à jour, il produit une liste des dépôts qu'il récupère. Cela semble évident, mais je viens de me rendre compte de ce que l'option GET Les URLs sont celles qu'il crache.

Les éléments suivants awk -pourrait être utilisée pour générer une expression de type sources.list fichier :

 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

Alternativement, comme d'autres réponses le suggèrent, vous pourriez simplement cat toutes les sources préexistantes comme celle-ci :

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

Puisque les dépôts désactivés sont commentés avec hash, cela devrait fonctionner comme prévu.

-7voto

Crys Points 11

Tout ce dont j'avais besoin, c'était :

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

Source : Dépôts du réseau Kali (/etc/apt/sources.list)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X