用于有条件地添加 apt 存储库的 shell 脚本

用于有条件地添加 apt 存储库的 shell 脚本

我想编写一个 shell 脚本来添加 apt 存储库。
我知道我可以使用 来做到这一点sudo add-apt-repository -y <repo>

我的问题是,只有当存储库尚未添加时我才能这样做吗,例如:

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

谢谢

答案1

我最终编写了一个函数来处理 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
}

我想知道是否还有其他更优雅的方法。

答案2

我改变了 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

答案3

现在可以在添加存储库之前将其删除:

sudo add-apt-repository -r $REPO
sudo add-apt-repository $REPO

相关内容