จะดูได้อย่างไรว่า ppa รองรับ distro ของฉัน


9

ฉันมักจะใช้เทอร์มินัลเพื่อเพิ่ม PPA ลงในรายการทรัพยากรของฉันเท่านั้นเพื่อค้นหาภายหลังว่า PPA ไม่รองรับเวอร์ชัน Ubuntu ของฉัน อัลลาจึงได้รับการต้อนรับด้วยข้อผิดพลาด:

404  Not Found

ฉันจะตรวจสอบผ่านทางเทอร์มินัลได้อย่างไรหากจะเพิ่ม ppa รองรับเวอร์ชัน Ubuntu ของฉัน


@ Wilf ยิ่งกว่า แต่ถ้าไม่มีตัวเลือกขั้ว ฉันยินดีที่จะรับโซลูชั่น gui หลังจากใช้เวลาพอสมควร
blade19899

ฉันแก้ไขคำตอบของฉันด้วยสคริปต์การทำงาน;)
MrVaykadji

@MrVaykadji เป็นคนดี
blade19899

คำตอบ:


8

อัปเดต :

ตอนนี้สคริปต์จะตรวจสอบว่า ppa สนับสนุน distro ของคุณหรือไม่แล้วขอการยืนยันถ้าคุณต้องการเพิ่ม repo ลงในรายการแหล่งที่มาของคุณแล้วติดตั้งแพคเกจเท่านั้น

ใช้สิ่งนี้ด้วยความเสี่ยงของคุณเอง! ฉันแค่ทดสอบสิ่งนี้กับสอง ppa! ฉันจะไม่รับผิดชอบต่อแพ็คเกจที่เสียหาย!

รหัส:

#!/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's

./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 สำหรับ "if something is an output" ซึ่งช่วยลดไฟล์ชั่วคราวที่สร้างขึ้น
MrVaykadji

@MrVaykadji ไม่สามารถแก้ไขสิ่งที่ไม่เสียหาย! : D
blade19899

ถูกต้องแล้ว! Nb: ฉันอัปเดตคำตอบของคุณกับlsb_release -scความคิดของคุณและใช้กับผลลัพธ์;)
MrVaykadji

@MrVaykadji ผู้เรียนอย่างรวดเร็ว! xD
blade19899

ในการป้องกันของฉันฉันเคยรู้จัก C และ (ที่สำคัญที่สุด) ฉันได้เรียน "หลักการเขียนโปรแกรม" จากที่นั่นฉันต้อง google "วิธีทำ X ใน bash" และvoilà
MrVaykadji

7

สคริปต์ทุบตีเพื่อลอง PPA สำหรับการแจกจ่ายของคุณ:

ฉันเพิ่งเรียนรู้ที่จะทุบตีคุณฮ่าฮ่า มันใช้งานได้ดีฉันภูมิใจ (และขอบคุณ 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 เพื่อใช้โดยตรงใน command-line :

ppa-test ppa:something/something


ตัวอย่าง:

(ที่นี่ฉันใช้: ppa: libreoffice / ppaด้วย~ / myscript )

ppa ตรวจสอบ

แก้ไข: อัปเดตด้วยแนวคิดของ Blade19899 ที่ใช้lsb_release


หมายเหตุ: สำหรับคนฝรั่งเศสฉันทำ fr-version พร้อมส่วนช่วยเหลือและหัวข้อเฉพาะ: forum.ubuntu-fr.org/viewtopic.php?id=1504971
MrVaykadji

4

ฉันไม่ได้ทดสอบมัน แต่สคริปต์เช่นนี้ควรใช้ได้:

#!/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- มันจะดูเหมือนจะทำงานแม้ว่า :)
วิลฟ์

1
โหวตขึ้นมันทำงานได้!
blade19899

3

ฉันอาจมีโซลูชัน GUI สำหรับคุณ! วิธีที่ดีที่สุดสำหรับฉันคือ PPA Manager:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

เมื่อคุณเพิ่ม ppa หรือ ppas ที่เพิ่มเข้าไปแล้วในระบบของคุณให้เปิด PPA Manager แล้วคลิกจัดการ ppas มันจะนำคุณไปสู่หน้าต่างใหม่ที่มีรายการของ PPAS ในระบบของคุณคลิกที่ ppa ใด ๆ และเลือกlist packagesด้านล่างหากมีแพ็คเกจใด ๆ รายการถ้าไม่คุณสามารถลบได้ ทำงานให้ฉันแม้กระทั่งเมื่อวานนี้ฉันมี ppa สำหรับ Saucy และ Trusty ดังนั้นรายการแพ็คเกจแสดงให้ฉันเห็นว่า "0" และฉันลบมันออก :)


โย่อว์, ฉันได้ยินมาว่าคุณต้องการตรวจสอบ PPA ดังนั้นจึงมี PPA เพื่อตรวจสอบ PPA ของคุณ: D
MrVaykadji

อะไรก็ได้ที่ดีที่สุด :)
JoKeR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.