我想编写一个 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