shell script untuk menambahkan repositori apt secara kondisional

8

Saya ingin menulis skrip shell yang akan menambah repositori apt.
Saya tahu bahwa saya bisa melakukannya dengan menggunakan sudo add-apt-repository -y <repo>.

Pertanyaan saya adalah dapatkah saya melakukannya hanya jika repositori belum ditambahkan, seperti:

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

Terima kasih

Tidak apa-apa
sumber
add-apt-repositoryhanya akan menambahkannya sekali; bagian yang menarik adalah melakukan apt-get updatekondisional.
Beni Cherniavsky-Paskin
Pernahkah Anda benar-benar mencoba menambahkan repositori dua kali? Apa yang telah saya lakukan sekarang adalah add-apt-repositoryuntuk tema dua kali, tetapi itu menghasilkan hanya satu file di. /etc/apt/sources/sources.list.dMungkin sudah melakukan pemeriksaan?
Sergiy Kolodyazhnyy
Sudah lama sejak saya mencobanya tetapi IIRC itu menduplikasi baris dalam file daftar repositori
Itay

Jawaban:

5

Saya mengubah fungsi Itay sehingga menangani beberapa parameter:

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
}

Untuk dipanggil seperti ini:

add_ppa webupd8team/atom xorg-edgers/ppa ubuntu-wine/ppa
Ugo Hed
sumber
4
Jika Anda ingin meningkatkan jawaban lain, harap sarankan edit untuk itu dan jangan membuat jawaban baru.
David Foerster
5

Saya akhirnya menulis fungsi untuk menangani repositori 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
}

Saya ingin tahu apakah ada cara yang lebih elegan.

Tidak apa-apa
sumber
1

Sekarang mungkin untuk menghapus repositori sebelum menambahkannya:

sudo add-apt-repository -r $REPO
sudo add-apt-repository $REPO
Mike Shiyan
sumber