Как проверить, добавляется ли репозиторий уже

У меня есть два репозитория, которые я хочу, чтобы мой сценарий проверил, находятся ли они в системе. Как я могу проверить командной строкой, если репозиторий уже добавляется к системе и, в противном случае добавьте их?

4
задан 31 August 2012 в 21:55

3 ответа

Вы видите, что весь репозиторий включил в терминале с этой командой ниже (Это распечатает всю строку репозитория, запускающуюся с deb или deb-src)

find /etc/apt/ -name *.list | xargs cat | grep  ^[[:space:]]*deb

Объяснение: сначала find найдите все файлы с .list расширение в /etc/apt каталог и подача xargs список, которые в свою очередь печатают весь текст на всех тех файлах к дисплею т.е. Монитору. Затем grep выберите те строки, из которых запускается с deb. Я использовал дополнительный шаг для включения тех строк также, который запускается с пробельных символов вместо deb.

Если Вы хотите видеть только репозитории с двоичными пакетами не исходные пакеты (deb-src), используйте другой grep для исключения записей с deb-src как этот:

find /etc/apt/ -name *.list | xargs cat | grep  ^[[:space:]]*deb | grep -v deb-src

Для добавления репозитория с помощью командной строки просто используйте этот вид команды:

(Я предполагаю, что Ваша исходная строка репозитория похожа на это deb http://mydomain.com/ubuntu precise main )

echo deb http://mydomain.com/ubuntu precise main | sudo tee -a /etc/apt/sources.list

Эта команда использование tee программа, которая используется, чтобы читать и записать от стандартного входа до стандартного вывода. Здесь, это проводит отраженную repo строку и поместило ту строку в конце /etc/apt/sources.list файл, который является основным исходным файлом репозитория.

Обратите внимание на то, что без использования -a опция для tee все sources.list будет заменен справедливой отраженной строкой.

Кроме того, можно использовать собственный файл для пользовательского repo без касания sources.list файл. Например,

echo deb http://mydomain.com/ubuntu precise main | sudo tee -a /etc/apt/sources.list.d/teles.list

Это создаст файл в /etc/apt/sources.list.d каталог с именем teles.list содержа строку deb http://mydomain.com/ubuntu precise main.

Обратите внимание, что, для добавления источника репозитория к системе скрипт должен быть запущен с корнем priviledge

7
ответ дан 21 October 2019 в 11:44

Я не знаю, является ли это тем, в чем Вы нуждаетесь, но ввод

software-properties-gtk

в терминале или в командных окнах тире откроет список источников программного обеспечения.

Использование эта команда для добавления PPA

sudo add-apt-repository ppa:YOUR PPA HERE

Hope, который помогает

РЕДАКТИРОВАНИЕ: можно отредактировать файл с sudo nano /etc/apt/sources.list, если это необходимо. nano терминальный текстовый редактор, Вам, вероятно, придется сделать это сначала

sudo apt-get install nano

для установки его.

0
ответ дан 21 October 2019 в 11:44

Я просто использовал бы grep, если название репозитория находится в REPO переменная, сделайте что-то вроде этого:

if ! grep -q "$REPO" /etc/apt/sources.list; then
  # do something if repo is not installed
fi
0
ответ дан 21 October 2019 в 11:44

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

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