web-dev-qa-db-fra.com

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

Je cherche la meilleure méthode pour restaurer /etc/apt/sources.list par défaut à partir de la ligne de commande.

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

Des solutions exclues

Avant de marquer ceci comme un doublon, notez que j'ai déjà examiné cette question . Cela ne s'applique que si l'interface graphique d'Ubuntu est disponible. Cette question est spécifique à la ligne de commande.

J'ai également passé en revue cette question où la solution acceptée consiste à coller le contenu de leur fichier sources.list. 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 peut être modifié avec les nouvelles versions.

J'ai jeté un œil sur le générateur sur simplelinux.ch , mais ce n’est pas de la part d’Ubuntu et je n’envisage donc pas de l'utiliser.

17
Ryan Burnette

Je ne suis pas sûr de ce que tu veux, mais:

  • Le référentiel parent est toujours http://archive.ubuntu.com/ubunt - 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 court à 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 utiliser lsb_release -sc pour le savoir, et c'est le premier mot du joli nom de la version en minuscule (trusty pour Trusty Tahr, par exemple).
  • Il existe cinq canaux: <codename>, <codename>-security, <codename>-updates, <codename>-backports et <codename>-proposed. Le premier est nécessaire car il s'agit de la base, le second est hautement recommandé car il contient des correctifs de sécurité, le quatrième uniquement si vous avez besoin d'un paquet transféré depuis une version plus récente et le cinquième uniquement si un développeur vous demande de l'activer pour tester une éventuelle réparer.
  • Il existe quatre sections de référentiel: main, multiverse, universe et restricted ( Quelle est la différence entre multivers, univers, restreint et principal? )

Ainsi, vous pouvez toujours créer un sources.list sûr qui contient uniquement:

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 une commande pour faire 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 Sources de logiciels provient de /usr/share/python-apt/templates/Ubuntu.mirrors, qui provient du package python-apt-common . Ce package est uniquement une dépendance indirecte Suggère de apt , de sorte qu'il ne peut pas être installé par défaut sur un serveur.

20
muru

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

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

Il comporte 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. La seule autre valeur possible est deb-src, ce qui signifie qu'il s'agit d'un référentiel de codes sources.
  • 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 ex. si vous voulez 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 de canal) de la version que vous utilisez, dans ce cas trustyqui correspond au 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, déclarez d’autres canaux, par exemple pour déclarer le canal de sécurité, vous devez utiliser trusty-security.

  • Section 4: Cette section contient les "noms de section" du référentiel. On utilise généralement 4 noms de section: 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 utiliser différentes lignes 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 alors la description des packages que chacune de ces sections contient.

7
heemayl