скрипт оболочки для условного добавления репозитория apt

Я хочу написать сценарий оболочки, который добавит репозиторий apt.
Я знаю, что могу сделать это, используя sudo add-apt-repository -y <repo>.

Мой вопрос, могу ли я сделать это, только если хранилище еще не было добавлено, что-то вроде:

if repo was not added yet:
  sudo add-apt-repository -y <repo>
  sudo apt-get update

Спасибо

8
задан 16.03.2020, 15:18

3 ответа

В итоге я написал функцию для работы с репозиториями ppa.

add_ppa() {
  grep -h "^deb.*$1" /etc/apt/sources.list.d/* > /dev/null 2>&1
  if [ $? -ne 0 ]
  then
    echo "Adding ppa:$1"
    sudo add-apt-repository -y ppa:$1
    return 0
  fi

  echo "ppa:$1 already exists"
  return 1
}

Интересно, есть ли более элегантный способ?

5
ответ дан 16.03.2020, 15:20

Теперь можно удалить хранилище до его добавления:

sudo add-apt-repository -r $REPO
sudo add-apt-repository $REPO
1
ответ дан 16.03.2020, 15:19

Я изменил функцию Itay, чтобы она обрабатывала несколько параметров:

add_ppa() {
  for i in "$@"; do
    grep -h "^deb.*$i" /etc/apt/sources.list.d/* > /dev/null 2>&1
    if [ $? -ne 0 ]
    then
      echo "Adding ppa:$i"
      sudo add-apt-repository -y ppa:$i
    else
      echo "ppa:$i already exists"
    fi
  done
}

Чтобы называться так:

add_ppa webupd8team/atom xorg-edgers/ppa ubuntu-wine/ppa
5
ответ дан 16.03.2020, 15:20
  • 1
    Если Вы хотите улучшить другой ответ, предложите редактирование ему, и don’t создают новый ответ. – teh1 16.03.2020, 15:20

Теги

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