나는 종종 터미널을 사용하여 PPA를 내 자원 목록에 추가하고 나중에 PPA가 내 우분투 버전을 지원하지 않는다는 것을 알게됩니다. Allas는 따라서 오류가 발생했습니다.
404 Not Found
ppa를 추가하여 Ubuntu 버전을 지원하는 경우 터미널을 통해 어떻게 확인할 수 있습니까?
나는 종종 터미널을 사용하여 PPA를 내 자원 목록에 추가하고 나중에 PPA가 내 우분투 버전을 지원하지 않는다는 것을 알게됩니다. Allas는 따라서 오류가 발생했습니다.
404 Not Found
ppa를 추가하여 Ubuntu 버전을 지원하는 경우 터미널을 통해 어떻게 확인할 수 있습니까?
답변:
업데이트 :
스크립트는 이제 ppa가 배포판을 지원하는지 확인한 다음 소스 목록에 저장소를 추가하고 패키지 만 설치하려는 경우 확인을 요청합니다.
당신의 책임하에 이것을 사용하십시오! 나는 이것을 2 파파에서만 테스트했습니다! 파손 된 패키지에 대해서는 책임을지지 않습니다!
#!/bin/bash
#-----------------------------------------------
# Author : Imri Paloja
# Email : ****.******@*****.***
# HomePage : www.eurobytes.nl
# Version : 3.0
# Name : add-ppa
#-----------------------------------------------
# CHANGELOG
#
# 1. Asks for confirmation if ppa supports distro.
mkdir /tmp/add-ppa/
wget --quiet "http://ppa.launchpad.net/$(echo $1 | sed -e 's/ppa://g')/ubuntu/dists" -O /tmp/add-ppa/support.html
grep "$(lsb_release -sc)" "/tmp/add-ppa/support.html" >> /tmp/add-ppa/found.txt
cat /tmp/add-ppa/found.txt | sed 's|</b>|-|g' | sed 's|<[^>]*>||g' >> /tmp/add-ppa/stripped_file.txt
if [[ -s /tmp/add-ppa/stripped_file.txt ]] ; then
echo "$(lsb_release -sc) is supported"
read -p "Do you wish to install add the ppa to your source, and install the binaries [y/n] ?"
if [ "$REPLY" == "y" ] ; then
echo "Adding it to your sources list"
sudo add-apt-repository $1
echo "Refreshing your sources list"
sudo apt-get update
# Searching for the needed files, and installing them
wget --quiet "http://ppa.launchpad.net/$(echo $1 | sed -e 's/ppa://g')/ubuntu/dists/$(lsb_release -sc)/main/binary-amd64/Packages" -O /tmp/add-ppa/packages.html
grep "Package:" "/tmp/add-ppa/packages.html" >> /tmp/add-ppa/packages.txt
cat /tmp/add-ppa/packages.txt | sed ':a;N;$!ba;s/\n/ /g' >> /tmp/add-ppa/packages_stripped_file.txt
cat /tmp/add-ppa/packages_stripped_file.txt | sed 's|Package:||g' >> /tmp/add-ppa/packages_stripped_file2.txt
sudo apt-get install $(grep -vE "^\s*#" /tmp/add-ppa/packages_stripped_file2.txt | tr "\n" " ")
else
exit 0
fi
else
echo "$(lsb_release -sc) is not supported"
fi;
#Cleanup
rm -r /tmp/add-ppa/
지원되지 않는 ppa
./support.sh ppa:m-gehre/ppa
saucy is not supported
지원되는 ppa
./support.sh ppa:banshee-team/ppa
saucy is supported
Do you wish to add the ppa to your sources list, and install the binaries [y/n] ??
Adding it to your sources list
...
Refreshing your sources list
...
sudo apt-get install
....
작동중인 스크립트를 참조하십시오.
개선했습니다. Wilf의 원래 답변
if [[ -n something]]"생성하는 경우 출력"에 대한 bash 명령을 사용하여 생성 된 임시 파일을 줄이는 데 도움이됩니다.
lsb_release -sc생각으로 대답을 업데이트 했고 심지어 그것을 출력에도 사용했습니다.)
방금 당신에게 bash 를 배웠습니다 . 이것은 훌륭하게 작동합니다. 자랑 스럽습니다 (Wilf의 답변에 감사드립니다)
#!/bin/bash
# usage : bash myscript ppa:something/something
# get list of ppa's supported distribution
wget http://ppa.launchpad.net/$(echo $1 | sed -e 's/ppa://g')/ubuntu/dists -O /tmp/test-ppa.tmp -q
# check if your release is in the downloaded list
RELEASE=`cat /tmp/test-ppa.tmp | grep $(lsb_release -sc)`
if [[ -n "$RELEASE" ]] ; then
echo "$1 will work with $(lsb_release -si) $(lsb_release -sr) $(lsb_release -sc)"
else
echo "$1 won't work with $(lsb_release -si) $(lsb_release -sr) $(lsb_release -sc)"
fi
# cleaning
rm /tmp/test-ppa.tmp
1) 이것을 텍스트 파일에 복사하십시오 (아래 예에서 ~/myscript)
2) 다음 명령을 사용하십시오.
bash myscript ppa:something/something
참고 : / usr / bin / 폴더 에 해당 스크립트를 복사
sudo cp ~/myscript /usr/bin/ppa-test && sudo chmod +x /usr/bin/ppa-test하여 명령 줄에서 직접 사용할 수도 있습니다 .
ppa-test ppa:something/something
(여기에서 사용 : ppa : libreoffice / ppa with ~ / myscript )

편집 : blade19899의 사용 아이디어로 업데이트되었습니다 .lsb_release
테스트하지는 않았지만 다음과 같은 스크립트가 작동합니다.
#!/bin/bash
echo "http://ppa.launchpad.net/$(echo $1 | sed -e 's/ppa://g')/ubuntu/dists"
이것을 실행해야합니다 ./SCRIPTNAME ppa:WHATEVER/WHATEVER-이 라이너도 작동하지만 PPA 이름을 삽입했습니다 (있는 곳 ppa:gnome3-team/gnome3).
echo "http://ppa.launchpad.net/$(echo ppa:gnome3-team/gnome3 | sed -e 's/ppa://g')/ubuntu/dists"
그런 다음 터미널에서 링크를 열거 나 (일부 터미널에는 자동으로 클릭 가능한 링크가 표시됨) 링크를 실행하여 curl텍스트로 다운로드 할 수 있습니다. ppa에 대해 지원되는 릴리스의 폴더 목록 만 표시해야합니다.
나는 최근에 ppa를 추가 했으므로 소프트웨어와 업데이트를 플러스하고 추측했습니다 ...
./SCRIPTNAME ppa:WHATEVER/WHATEVER-그것은 작동하는 것처럼 보입니다 :)
글쎄, 당신을위한 GUI 솔루션이있을 수 있습니다! 나에게 가장 좋은 방법은 PPA 관리자입니다.
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager
시스템에 이미 추가 된 ppa 또는 ppas를 추가 한 경우 PPA 관리자를 열고 ppa 관리를 클릭하면 시스템에 ppa 목록이있는 새 창으로 이동하여 ppa를 클릭하고 list packages사용 가능한 패키지가있는 경우 아래를 선택하십시오. 당신이 그것을 삭제할 수없는 경우 목록. 어제 나에게도 Saucy and Trusty에 대한 PPA가 있었으므로 목록 패키지에 "0"이 표시되어 제거했습니다. :)