shell script para adicionar condicionalmente o repositório apt

8

Eu quero escrever um script de shell que irá adicionar um repositório apt.
Eu sei que posso fazer isso usando sudo add-apt-repository -y <repo> .

Minha pergunta é que posso fazer isso apenas se o repositório já não tiver sido adicionado, algo como:

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

Obrigado

    
por Itay 11.05.2013 / 08:57

3 respostas

5

Acabei de escrever uma função para lidar com os repositórios do ppa.

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

  echo "ppa: already exists"
  return 1
}

Eu me pergunto se existe alguma maneira mais elegante.

    
por Itay 11.05.2013 / 13:40
6

Alterei a função do Itay para que ele manipule vários parâmetros:

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
}

Para ser chamado assim:

add_ppa webupd8team/atom xorg-edgers/ppa ubuntu-wine/ppa
    
por Ugo Hed 23.03.2016 / 16:48
0

Agora é possível remover o repositório antes de adicioná-lo:

sudo add-apt-repository -r $REPO
sudo add-apt-repository $REPO
    
por Mike Shiyan 03.01.2017 / 23:10