Как добавить репозиторий apt-get без редактирования /etc/apt/sources.list?

19

Я хочу добавить репозиторий в apt-get (без возможности испортить /etc/apt/sources.list) через пользователя скрипта. Этот скрипт может выполняться несколько раз, поэтому я не могу просто добавлять запись каждый раз. Есть ли способ добавить один файл в каталог с записями?

Я знаю, что вы можете сделать это ради ням, но я не уверен, возможно ли это для apt-get. Пожалуйста, дайте мне знать, если мне нужно добавить больше информации.

Daisetsu
источник
Если дважды щелкнуть файл /etc/apt/sources.list, откроется графический интерфейс с мастером добавления репозиториев. Существует флажок, в котором вы можете включать и отключать записи (например, разрешить использование новой записи только при обновлении некоторого «чужого» программного обеспечения репозитория), и записи могут быть удалены. Он также создает резервную копию sources.list.save в том же каталоге. Если вам нужна дополнительная защита, вы всегда можете сделать копию оригинального файла перед его изменением. Так что нет большого риска испортить файл, если вы идете по маршруту сценария именно по этой причине.
fixer1234

Ответы:

21

Вы можете разместить файлы в /etc/apt/sources.list.d. Это описано в справочной странице для sources.list(тип man sources.list). На странице руководства написано:

Старые SOURCES.LIST.D

Каталог /etc/apt/sources.list.d позволяет добавлять записи sources.list в отдельные файлы. Формат такой же, как и для обычного файла sources.list. Имена файлов должны заканчиваться на .list и могут содержать только буквы (az и AZ), цифры (0-9), подчеркивание (_), дефис (-) и точку (.). В противном случае они будут молча игнорироваться.

ОБНОВИТЬ:

2016 SOURCES.LIST.D

Каталог /etc/apt/sources.list.d позволяет добавлять записи sources.list в отдельные файлы. Разрешены два разных формата файлов, как описано в следующих двух разделах. Имена файлов должны иметь расширение .list или .sources в зависимости от содержимого формата. Имена файлов могут содержать только буквы (az и AZ), цифры (0-9), подчеркивание (_), дефис (-) и точку (.). В противном случае APT напечатает уведомление о том, что он проигнорировал файл, если этот файл не соответствует шаблону в списке конфигурации Dir :: Ignore-Files-Silently - в этом случае он будет игнорироваться без уведомления.

larsks
источник
8

Вы можете попробовать:

add-apt-repository <REPOSITORY LINE>

Строка репозитория будет просто тем, что вы добавите в список sources.list или PPA-репозиторий. Проверьте man-страницу здесь или выполните:

man add-apt-repository
BloodPhilia
источник
1
При быстром взгляде на файл man для add-apt-repository это выглядит так, как будто он просто добавляет строку в файл sources.list, он не упоминает, проверяет ли он, так что это то же самое, что и "echo line >> sources.list "который у меня уже был. Спасибо за ответ, хотя.
Daisetsu
2
@Daisetsu Я знаю, что так и есть, я думал, тебе просто неудобно редактировать файл вручную! Должно быть, неправильно понял! Здорово, что вы получили ответ, который работал для вас, хотя!
BloodPhilia
1

Я (думал, что мне) нужно было добавить репозиторий ppa в crunchbang, (debian) install:
( NB "raring" - это версия ubuntu, которая совпадает с версией debian, которую я использовал), поэтому я сделал:

sudo su -

# you can call the file anything that you want, but it has to end with .list to be a valid for apt-get
echo 'deb http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/ raring main'>> /etc/apt/sources.list.d/boot-repair.list

# get the keys for that repo so that apt can verify the signed .deb files
wget http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu/dists/raring/Release.gpg
apt-key add Release.gpg
#gpg --search-keys 60D8DA0B

apt-get update

Большая часть этого объясняется на начальной загрузки ремонтного страницы (хотя в конце концов TestDisk , а затем Gparted были тем, что я на самом деле нужно , чтобы восстановить потерянный раздел и поврежденную MBR.) Это , вероятно, не способ Debian (TM) , но работал на меня.

Некоторые репозитории Debian относятся к «старому стилю», и тогда вам нужна только строка вроде:

deb http://repo.alexx.net/apt/ /
# the trailing slash needs to be there

add-apt-repository хорош, если он у вас есть, но, похоже, это более Ubuntu.

Алекс Рош
источник
0

add-apt-repository имеет третью форму (помимо PPA-URL и полных подходящих строк), которая позволяет распространять компоненты:

sudo add-apt-repository universe
sudo add-apt-repository contrib

Это было введено в 12.10 (Quantal).

Tobu
источник
это показывает Error: 'contrib' invalid использование Ubuntu 16.04
Джаффер Уилсон