Przywróć domyślne apt aptosources.list z wiersza poleceń

17

Szukam najlepszej metody przywrócenia /etc/apt/sources.listustawień domyślnych z wiersza polecenia.

Czy nie ma możliwości odwołania się do kodu źródłowego pakietu, który generuje ten plik lub coś w tym rodzaju? Chcę zaufanego i niezależnego od wersji sposobu przywrócenia tego pliku.

Rozwiązania wykluczone

Zanim oznaczysz to jako duplikat, zwróć uwagę, że sprawdziłem już to pytanie . Ma zastosowanie tylko, jeśli masz dostępny interfejs GUI Ubuntu. To pytanie jest specyficzne dla wiersza poleceń.

Przejrzałem również to pytanie, w którym zaakceptowanym rozwiązaniem jest wklejenie zawartości sources.listpliku. Nie jest to odpowiedni sposób na przywrócenie pliku, ponieważ intencje osoby dostarczającej zawartość pliku nie mogą zostać zweryfikowane, a plik może ulec zmianie wraz z nowymi wersjami.

Sprawdziłem generator na stronie simpleelinux.ch , ale nie jest to również Ubuntu, więc nie planuję go używać.

Ryan Burnette
źródło

Odpowiedzi:

19

Nie jestem pewien, czego chcesz, ale:

  • Repozytorium nadrzędne to zawsze http://archive.ubuntu.com/ubuntu - wszystko inne jest tego odzwierciedleniem. Wszystkie pozostałe serwery lustrzane mają domenę w postaci <cctld>.archive.ubuntu.com, w której dwuznakowy krótki kod jest domeną najwyższego poziomu kodu kraju . Możesz znaleźć dodatkowe mirrory z ich statusem w Launchpad .
  • Dystrybucyjna nazwa kodowa jest częścią kanału (trzeci termin). Możesz lsb_release -scto sprawdzić, a jest to pierwsze słowo z ładną nazwą wydania małymi literami ( trustyna przykład dla Trusty Tahr).
  • Istnieje pięć kanałów: <codename>, <codename>-security, <codename>-updates, <codename>-backportsi <codename>-proposed. Pierwszy jest konieczny, ponieważ jest bazą, drugi jest wysoce zalecany, ponieważ zawiera poprawki bezpieczeństwa, czwarty tylko, jeśli potrzebujesz pakietu przeniesionego z nowej wersji, a piąty tylko, jeśli programista poprosi cię o włączenie go do przetestowania możliwego naprawić.
  • Istnieją cztery sekcje repozytorium: main, multiverse, universei restricted( Jaka jest różnica między multiwersie, wszechświat, ograniczonej i główny? )

Możesz więc zawsze stworzyć sejf, sources.listktóry zawiera tylko:

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

Jeśli chcesz, aby polecenie to zrobiło:

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

Oprócz listy Launchpad, lista dostarczona przez program Software Sources pochodzi z /usr/share/python-apt/templates/Ubuntu.mirrors, która pochodzi z python-apt-commonpakietu. Ten pakiet jest tylko pośrednią zależnością Sugerujeapt , więc może nie być domyślnie instalowany na serwerze.

muru
źródło
Właśnie tego chciałem wyjaśnienia. Dziękuję Ci!
Ryan Burnette
odpowiada to doskonale na oba posty (ten połączony i ten)
Brian Thomas
Ale nadal musisz zweryfikować tę odpowiedź za pomocą dokumentacji na stronie Ubuntu, ponieważ nie możesz zweryfikować intencji osoby udzielającej tej odpowiedzi?
Herbert Van-Vliet
7

Jeśli rozumiesz, co oznacza każda linia /etc/apt/sources.list, możesz wygenerować własną listę. Na przykład wiersz w moim sources.listjest

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

Ma 4 sekcje:

  • Część 1: Pierwsza sekcja jest debtutaj, co oznacza, że ​​jest repozytorium wszystkich pakietów binarnych. tylko inna możliwa wartość deb-srcoznacza, że ​​jest to repozytorium kodów źródłowych.
  • Sekcja 2: Ta sekcja zawiera identyfikator URI repozytorium ( w tym przypadku http://us.archive.ubuntu.com/ubuntu/ ). Identyfikator URI może się różnić w przypadku kopii lustrzanych, np. Jeśli chcesz korzystać z oficjalnej kopii lustrzanej w USA, wówczas identyfikator URI to http://us.archive.ubuntu.com/ubuntu/ .
  • Część 3: Zawiera kryptonim (i nazwę kanału) używanego wydania, w tym przypadku trustyjest to kryptonim mojego wydania Ubuntu (14.04 LTS). możesz znaleźć swój lsb_release -sc. Na przykład, jeśli używasz 12.04, nazwa kodowa będzie „dokładna”. Teraz, aby zadeklarować inne kanały, np. Aby zadeklarować kanał bezpieczeństwa, którego należy użyć trusty-security.

  • Sekcja 4: Ta sekcja zawiera „nazwy sekcji” repozytorium. Są to zazwyczaj 4 Nazwy sekcji używanych: main, restricted, universe, multiverse. Możesz umieścić wszystkie nazwy sekcji w tym samym wierszu deklaracji repozytorium lub możesz użyć różnych wierszy dla każdej z sekcji, ale nie może być żadnej zduplikowanej pozycji. Jeśli czytasz /etc/apt/sources.list, zobaczysz opis pakietów, które zawiera każda z tych sekcji.

heemayl
źródło