У меня есть два репозитория, которые я хочу, чтобы мой сценарий проверил, находятся ли они в системе. Как я могу проверить командной строкой, если репозиторий уже добавляется к системе и, в противном случае добавьте их?
Вы видите, что весь репозиторий включил в терминале с этой командой ниже (Это распечатает всю строку репозитория, запускающуюся с 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
Я не знаю, является ли это тем, в чем Вы нуждаетесь, но ввод
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
для установки его.
Я просто использовал бы grep
, если название репозитория находится в REPO
переменная, сделайте что-то вроде этого:
if ! grep -q "$REPO" /etc/apt/sources.list; then
# do something if repo is not installed
fi