Ripristina i repository apt predefiniti in sources.list dalla riga di comando


17

Sto cercando il metodo migliore per ripristinare i valori /etc/apt/sources.listpredefiniti dalla riga di comando.

Non c'è modo di fare riferimento al codice sorgente del pacchetto che genera questo file o qualcosa del genere? Voglio un modo affidabile e indipendente dalla versione per ripristinare questo file.

Soluzioni escluse

Prima di contrassegnarlo come duplicato, tieni presente che ho già esaminato questa domanda . È applicabile solo se hai la GUI di Ubuntu disponibile. Questa domanda è specifica per la riga di comando.

Ho anche esaminato questa domanda in cui la soluzione accettata è che qualcuno ha incollato il contenuto del proprio sources.listfile. Questo non è un modo appropriato per ripristinare il file poiché le intenzioni della persona che fornisce il contenuto del file non possono essere verificate e il file è soggetto a modifiche con le nuove versioni.

Ho controllato il generatore su simplelinux.ch , ma anche questo non proviene da Ubuntu, quindi non ho intenzione di usarlo.

Risposte:


19

Non sono sicuro di quello che vuoi, ma:

  • Il repository padre è sempre http://archive.ubuntu.com/ubuntu - tutto il resto ne è un mirror. Gli altri mirror primari hanno tutti un dominio del modulo <cctld>.archive.ubuntu.com, in cui il codice funzione di due caratteri è il dominio di primo livello del codice paese . Puoi trovare ulteriori mirror con il loro stato su Launchpad .
  • Il nome in codice di distribuzione fa parte del canale (il terzo termine). Puoi usarlo lsb_release -scper scoprirlo, ed è la prima parola dell'uscita bel nome in minuscolo ( trustyper Trusty Tahr, per esempio).
  • Ci sono cinque canali: <codename>, <codename>-security, <codename>-updates, <codename>-backportse <codename>-proposed. Il primo è necessario in quanto è la base, il secondo è altamente raccomandato in quanto contiene correzioni di sicurezza, il quarto solo se è necessario eseguire il backport di un pacchetto da una versione più recente e il quinto solo se uno sviluppatore chiede di abilitarlo per testare un possibile fix.
  • Ci sono quattro sezioni repository: main, multiverse, universee restricted( Qual è la differenza tra il multiverso, universo, ristrette e principale? )

Quindi puoi sempre creare una cassaforte sources.listche contiene solo:

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

Se vuoi un comando per fare questo:

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

Oltre all'elenco Launchpad, viene fornito l'elenco fornito dal programma Sorgenti software /usr/share/python-apt/templates/Ubuntu.mirrors, che proviene dal python-apt-commonpacchetto. Questo pacchetto è solo una dipendenza suggerita indiretta di apt, quindi potrebbe non essere installato per impostazione predefinita su un server.


Questo è esattamente ciò su cui volevo chiarimenti. Grazie!
Ryan Burnette,

questo risponde perfettamente per entrambi i post (quello collegato e questo)
Brian Thomas

Ma dovresti comunque convalidare questa risposta con la documentazione sul sito Web di Ubuntu stesso poiché non riesci a verificare le intenzioni della persona che fornisce questa risposta?
Herbert Van-Vliet,

7

Se capisci cosa rappresenta ogni riga /etc/apt/sources.list, puoi generare il tuo elenco. Ad esempio una linea nel mio sources.listè,

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

Ha 4 sezioni:

  • Sezione 1: La prima sezione è debqui, il che significa che è un repository di tutti i pacchetti binari. solo un altro valore possibile è deb-srcche significa che è un repository di codici sorgente.
  • Sezione 2: questa sezione contiene l'URI del repository ( http://us.archive.ubuntu.com/ubuntu/ in questo caso). L'URI può variare per i mirror, ad esempio se si desidera utilizzare il mirror ufficiale degli Stati Uniti, l'URI sarà http://us.archive.ubuntu.com/ubuntu/ .
  • Sezione 3: contiene il nome in codice (e il nome del canale) della versione in uso, in questo caso trustyil nome in codice della mia versione di Ubuntu (14.04 LTS). puoi trovare il tuo entro lsb_release -sc. Ad esempio, se si utilizza 12.04, il nome in codice sarà "preciso". Ora per dichiarare altri canali, ad esempio per dichiarare il canale di sicurezza, è necessario utilizzare trusty-security.

  • Sezione 4: Questa sezione contiene "nomi di sezione" del repository. Di solito ci sono 4 nomi delle sezioni utilizzati: main, restricted, universe, multiverse. È possibile inserire tutti i nomi di sezione nella stessa riga di dichiarazione di un repository oppure è possibile utilizzare righe diverse per ciascuna sezione, ma non devono essere presenti voci duplicate. Se leggi il /etc/apt/sources.list, allora vedrai la descrizione dei pacchetti contenuti in ciascuna di queste sezioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.