Значение по умолчанию восстановления способные репозитории в sources.list из командной строки

Я ищу лучший метод для восстановления /etc/apt/sources.list принимать значение по умолчанию из командной строки.

Там никакой путь не состоит в том, чтобы сослаться на исходный код пакета, который генерирует этот файл или что-то как этот? Я хочу доверяемый и независимый от версии способ восстановить этот файл.

Исключенные решения

Перед маркировкой этого как дубликат обратите внимание, что я уже рассмотрел этот вопрос. Это только применимо, если у Вас есть доступный GUI Ubuntu. Этот вопрос характерен для командной строки.

Я также рассмотрел этот вопрос, где принятое решение - кто-то, вставил содержание их sources.list файл. Это не соответствующий способ восстановить файл, поскольку намерения человека, обеспечивающего содержание файла, не могут быть проверены, и файл подвержен изменениям с новыми выпусками.

Я проверил генератор в simplelinux.ch, но это также не из Ubuntu, таким образом, я не планирую использовать его.

21
задан 13 April 2017 в 05:24

2 ответа

Я не уверен, что вы хотите, но:

  • Родительский репозиторий всегда http://archive.ubuntu.com / ubuntu - все остальное является зеркалом этого. Все остальные первичные зеркала имеют домен вида .archive.ubuntu.com , где двухсимвольный сокращенный код - это домен верхнего уровня кода страны .Вы можете найти дополнительные зеркала с их статусом на Launchpad .
  • Кодовое имя распределения является частью канала (третий член). Вы можете использовать lsb_release -sc , чтобы выяснить это, и это первое слово красивого названия выпуска в нижнем регистре (например, trusty для Trusty Tahr).
  • Существует пять каналов: , -security , -updates , -backports и - предложено . Первый необходим, так как он является базовым, второй настоятельно рекомендуется, поскольку он содержит исправления безопасности, четвертый, только если вам нужен какой-то пакет, перенесенный из более новой версии, а пятый - только если разработчик попросит вас включить его для тестирования возможного fix.
  • Есть четыре раздела репозитория: main , multiverse , universe и limited ( В чем разница между мультивселенная, вселенная, ограниченная и основная? )

Таким образом, вы всегда можете создать безопасный sources.list , содержащий только:

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

Если вы хотите, чтобы команда выполняла это:

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

Или lsb_release недоступен, используйте / etc / os-release из пакета base-files :

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

В дополнение к списку Launchpad, список, предоставленный программой «Источники программного обеспечения», из /usr/share/python-apt/templates/Ubuntu.mirrors , который взят из пакета python-apt-common . Этот пакет является косвенным. Предлагает зависимость от apt , поэтому он не может быть установлен по умолчанию на сервере.

22
ответ дан 23 November 2019 в 02:21

Если вы понимаете, что означает каждая строка в /etc/apt/sources.list , вы можете создать свой собственный список. Например, строка в моем sources.list :

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

Она состоит из 4 разделов:

  • Раздел 1: Первый раздел здесь deb , что означает, что это репозиторий все бинарные пакеты. только другое возможное значение - deb-src , что означает его репозиторий исходных кодов.
  • Раздел 2: Этот раздел содержит URI репозитория ( http: //us.archive.ubuntu .com / ubuntu / в данном случае). URI может отличаться для зеркал, например если вы хотите использовать официальное зеркало США, тогда URI будет http://us.archive.ubuntu.com/ubuntu/ .
  • Раздел 3: Он содержит кодовое имя (и имя канала) выпуска, который вы используете, в данном случае trusty , который является кодовым названием моего выпуска Ubuntu (14.04 LTS). вы можете найти свой по lsb_release -sc . Например, если вы используете 12.04, кодовое имя будет «точным». Теперь объявим другие каналы, например. чтобы объявить канал безопасности, вам необходимо использовать trusty-security .

  • Раздел 4: Этот раздел содержит «имена разделов» репозитория. Обычно используется 4 раздела: основная , ограниченная , вселенная , мультивселенная . Вы можете поместить все имена разделов в одну строку объявления репозитория, или вы можете использовать разные строки для каждого из разделов, но не должно быть дублирующихся записей. Если вы прочитаете /etc/apt/sources.list , то увидите описание пакетов, содержащихся в каждом из этих разделов.

7
ответ дан 23 November 2019 в 02:21

Другие вопросы по тегам:

Похожие вопросы: