조건부로 apt 저장소를 추가하는 쉘 스크립트


8

적절한 저장소를 추가 할 쉘 스크립트를 작성하고 싶습니다.
나는를 사용하여 그것을 할 수 있다는 것을 알고있다 sudo add-apt-repository -y <repo>.

내 질문은 저장소가 이미 추가되지 않은 경우에만 수행 할 수 있다는 것입니다.

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

감사


add-apt-repository한 번만 추가합니다. 흥미로운 부분은 apt-get update조건부 로 수행하는 것입니다.
Beni Cherniavsky-Paskin

실제로 저장소를 두 번 추가하려고 했습니까? 내가 지금 한 것은 add-apt-repository테마에 대한 두 번이지만.에서 하나의 파일 만 생성되었습니다. /etc/apt/sources/sources.list.d아마도 검사를 수행합니까?
Sergiy Kolodyazhnyy

나는 그것을 그러나 IIRC 시도 이후 저장소의 목록 파일의 라인을 복제하는 동안 그것은을이었다
Itay

답변:


5

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

4
다른 답변을 개선하려면 수정을 제안하고 새 답변을 만들지 마십시오.
David Foerster

5

나는 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
}

좀 더 우아한 방법이 있는지 궁금합니다.


1

이제 저장소를 추가하기 전에 제거 할 수 있습니다.

sudo add-apt-repository -r $REPO
sudo add-apt-repository $REPO
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.