Restaurer les référentiels apt par défaut dans sources.list à partir de la ligne de commande

17

Je recherche la meilleure méthode pour restaurer /etc/apt/sources.listles paramètres par défaut à partir de la ligne de commande.

N'y a-t-il aucun moyen de référencer le code source du package qui génère ce fichier ou quelque chose comme ça? Je veux un moyen fiable et indépendant de la version de restaurer ce fichier.

Solutions exclues

Avant de marquer cela comme un doublon, notez que j'ai déjà examiné cette question . Elle n'est applicable que si vous disposez de l'interface graphique Ubuntu. Cette question est spécifique à la ligne de commande.

J'ai également examiné cette question où la solution acceptée est que quelqu'un a collé le contenu de son sources.listfichier. Ce n'est pas un moyen approprié de restaurer le fichier car les intentions de la personne fournissant le contenu du fichier ne peuvent pas être vérifiées et le fichier est susceptible de changer avec les nouvelles versions.

J'ai vérifié le générateur sur simplelinux.ch , mais ce n'est pas non plus d'Ubuntu donc je n'ai pas l'intention de l'utiliser.

Ryan Burnette
la source

Réponses:

19

Je ne sais pas trop ce que tu veux, mais:

  • Le référentiel parent est toujours http://archive.ubuntu.com/ubuntu - tout le reste en est le miroir. Les autres miroirs principaux ont tous un domaine de la forme <cctld>.archive.ubuntu.com, où le code abrégé à deux caractères est le domaine de premier niveau de code de pays . Vous pouvez trouver des miroirs supplémentaires avec leur statut sur Launchpad .
  • Le nom de code de distribution fait partie du canal (le troisième terme). Vous pouvez l'utiliser lsb_release -scpour le découvrir, et c'est le premier mot du joli nom de la version en minuscule ( trustypour Trusty Tahr, par exemple).
  • Il y a cinq canaux: <codename>, <codename>-security, <codename>-updates, <codename>-backportset <codename>-proposed. Le premier est nécessaire car c'est la base, le second est fortement recommandé car il contient des correctifs de sécurité, le quatrième uniquement si vous avez besoin d'un package rétroporté à partir d'une version plus récente et le cinquième uniquement si un développeur vous demande de l'activer pour tester un éventuel réparer.
  • Il y a quatre sections du référentiel: main, multiverse, universeet restricted( Quelle est la différence entre multivers, univers, restreint et principal? )

Vous pouvez donc toujours créer un coffre-fort sources.listqui contient juste:

deb http://archive.ubuntu.com/ubuntu <codename> main multiverse universe restricted
deb http://archive.ubuntu.com/ubuntu <codename>-security main multiverse universe restricted

Si vous voulez qu'une commande fasse ceci:

printf 'deb http://archive.ubuntu.com/ubuntu %s main multiverse universe restricted\n' $(lsb_release -sc){,-security} > /etc/apt/sources.list

En plus de la liste Launchpad, la liste fournie par le programme Software Sources provient de /usr/share/python-apt/templates/Ubuntu.mirrors, qui provient du python-apt-commonpackage. Ce package n'est qu'une dépendance indirecte de Suggestionsapt , il ne peut donc pas être installé par défaut sur un serveur.

muru
la source
C'est exactement ce sur quoi je voulais des éclaircissements. Je vous remercie!
Ryan Burnette
cela répond parfaitement aux deux messages (celui lié et celui-ci)
Brian Thomas
Mais vous devriez toujours valider cette réponse avec la documentation sur le site Web d'Ubuntu lui-même car vous ne pouvez pas vérifier les intentions de la personne qui fournit cette réponse?
Herbert Van-Vliet
7

Si vous comprenez ce que représente chaque ligne /etc/apt/sources.list, vous pouvez générer votre propre liste. Par exemple, une ligne dans mon sources.listest,

deb http://archive.ubuntu.com/ubuntu/ trusty main

Il comprend 4 sections:

  • Section 1: La première section est debici, ce qui signifie qu'il s'agit d'un référentiel de tous les packages binaires. seule une autre valeur possible est deb-srcce qui signifie que c'est un référentiel de codes source.
  • Section 2: cette section contient l'URI du référentiel ( http://us.archive.ubuntu.com/ubuntu/ dans ce cas). L'URI peut varier pour les miroirs. Par exemple, si vous souhaitez utiliser le miroir américain officiel, l'URI sera http://us.archive.ubuntu.com/ubuntu/ .
  • Section 3: Il contient le nom de code (et le nom du canal) de la version que vous utilisez, dans ce cas trustyqui est le nom de code de ma version Ubuntu (14.04 LTS). vous pouvez trouver le vôtre par lsb_release -sc. Par exemple, si vous utilisez 12.04, le nom de code sera "précis". Maintenant, pour déclarer d'autres canaux, par exemple pour déclarer le canal de sécurité que vous devez utiliser trusty-security.

  • Section 4: Cette section contient les "noms de section" du référentiel. Il y a généralement 4 noms de section utilisés: main, restricted, universe, multiverse. Vous pouvez mettre tous les noms de section dans la même ligne de déclaration d'un référentiel ou vous pouvez utiliser des lignes différentes pour chacune des sections, mais il ne doit pas y avoir d'entrée en double. Si vous lisez le /etc/apt/sources.list, vous verrez la description des packages que contient chacune de ces sections.

heemayl
la source