Кто-нибудь знает, как проверить, что PPA уже добавлен в мою систему, прежде чем я добавлю его с помощью add-apt-repository
команды в shell script
.
Это было бы очень полезно.
Спасибо.
Кто-нибудь знает, как проверить, что PPA уже добавлен в мою систему, прежде чем я добавлю его с помощью add-apt-repository
команды в shell script
.
Это было бы очень полезно.
Спасибо.
Ответы:
Вы можете сделать что-то вроде этого:
the_ppa=... # e.g. the_ppa="ondrej/apache2"
if ! grep -q "^deb .*$the_ppa" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
# commands to add the ppa ...
fi
Ноты:
grep
выходит с успехом, если находит совпадение!
отрицает, поэтому команды будут выполняться, если нет совпадений = ppa не добавлено-q
Флаг делает grep
тихо , так что не печатает совпавшие строки. Это был бы просто шум, нам нужно только знать, есть ли совпадение или нет, для которого идеально подходит код выхода^deb .*
Префикс , чтобы убедиться , что искомая строка начинается с того deb
, чтобы исключить строки, которые закомментированныеОткройте свой терминал и введите эту команду
grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep fogger
замените фоггер на имя PPA.
Извлеките файлы list.save, исходники, убедитесь, что только строки deb, и посчитайте это для "fogger" ppa:
ppa_added=`grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v list.save | grep -v deb-src | grep deb | grep fogger | wc -l`
echo $ppa_added
deb
строки, которые закомментированы, начиная с # deb
, и строки из файлов, как foo-ppa.list.distUpgrade
- это предназначено?