скрипт оболочки для условного добавления репозитория 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
задан 11 May 2013 в 10:57

3 ответа

Я изменил функцию 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
0
ответ дан 11 May 2013 в 10:57

В итоге я написал функцию для работы с репозиториями 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
}

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

0
ответ дан 11 May 2013 в 10:57

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

sudo add-apt-repository -r $REPO
sudo add-apt-repository $REPO
0
ответ дан 11 May 2013 в 10:57

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

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