나는 종종 터미널을 사용하여 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"이 표시되어 제거했습니다. :)