Làm thế nào để xem một ppa hỗ trợ distro của tôi


9

Tôi thường sử dụng thiết bị đầu cuối để thêm PPA vào danh sách tài nguyên của mình, chỉ để biết sau đó PPA không hỗ trợ phiên bản Ubuntu của tôi. Allas, do đó được chào đón với một lỗi:

404  Not Found

Làm cách nào tôi có thể kiểm tra qua thiết bị đầu cuối, nếu ppa được thêm hỗ trợ phiên bản Ubuntu của tôi?


@Wilf, tốt nhất là. Nhưng, nếu không có tùy chọn thiết bị đầu cuối. Sẵn sàng chấp nhận một giải pháp gui, sau một khoảng thời gian khá.
lưỡi19899

Tôi đã chỉnh sửa câu trả lời của mình bằng một kịch bản hoạt động;)
MrVaykadji

@MrVaykadji, một cái hay đấy.
lưỡi19899

Câu trả lời:


8

Cập nhật :

Tập lệnh hiện kiểm tra xem ppa có hỗ trợ bản phân phối của bạn không, và sau đó sẽ xác nhận nếu bạn muốn thêm repo vào danh sách nguồn của mình và chỉ sau đó cài đặt các gói.

Sử dụng điều này có nguy cơ của riêng bạn! Tôi chỉ thử nghiệm điều này trên hai ppa! Tôi sẽ không chịu trách nhiệm cho các gói bị hỏng!

mã:

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

sử dụng:

Không hỗ trợ ppa's

./support.sh ppa:m-gehre/ppa
saucy is not supported

hỗ trợ 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
....

Xem kịch bản hoạt động:

Cải thiện nó. Câu trả lời gốc của Wilf


Cũng hay, nhưng gần đây tôi (haha) biết rằng đó if [[ -n something]]là lệnh bash cho "nếu một cái gì đó là đầu ra", giúp giảm các tệp tạm thời được tạo.
MrVaykadji

@MrVaykadji đừng sửa những gì không hỏng! : D
blade19899

Đúng rồi haha! Nb: Tôi đã cập nhật câu trả lời của mình với lsb_release -scý tưởng của bạn và thậm chí đã sử dụng nó trên đầu ra;)
MrVaykadji

@MrVaykadji, người học nhanh! xD
blade19899

Để bảo vệ, tôi đã từng biết một số C và (quan trọng nhất) tôi đã tham gia một số lớp "nguyên tắc lập trình", từ đó, tôi chỉ cần google "cách làm X trong bash" và voilà.
MrVaykadji

7

Tập lệnh bash để thử PPA cho bản phân phối của bạn:

Tôi vừa học được một số bash cho bạn haha. Điều này hoạt động rất tốt, tôi tự hào (và cảm ơn Wilf vì câu trả lời của anh ấy)

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

Sử dụng :

1) Sao chép tệp này trong tệp văn bản ở đâu đó (trong ví dụ bên dưới ~/myscript)

2) Sử dụng lệnh:

bash myscript ppa:something/something 

Lưu ý: bạn cũng có thể sao chép tập lệnh đó trong / usr / bin / thư mục sudo cp ~/myscript /usr/bin/ppa-test && sudo chmod +x /usr/bin/ppa-test để sử dụng trực tiếp trong dòng lệnh :

ppa-test ppa:something/something


Thí dụ :

(ở đây tôi đã sử dụng: ppa: libreoffice / ppa với ~ / myscript )

kiểm tra ppa

Chỉnh sửa: cập nhật với ý tưởng sử dụng của blade19899lsb_release


Lưu ý: đối với người Pháp, tôi đã thực hiện phiên bản fr với phần trợ giúp và chủ đề dành riêng: forum.ub Ubuntu-fr.org / viewtopic.php? Id = 1504971
MrVaykadji

4

Tôi đã không kiểm tra nó, nhưng một kịch bản như thế này sẽ hoạt động:

#!/bin/bash
echo "http://ppa.launchpad.net/$(echo $1 | sed -e 's/ppa://g')/ubuntu/dists"

Bạn phải chạy cái này như ./SCRIPTNAME ppa:WHATEVER/WHATEVER- lớp lót này cũng hoạt động, nhưng bạn đã chèn tên PPA (ở đâu ppa:gnome3-team/gnome3):

echo "http://ppa.launchpad.net/$(echo ppa:gnome3-team/gnome3 | sed -e 's/ppa://g')/ubuntu/dists"

Sau đó, bạn có thể mở liên kết trong thiết bị đầu cuối (một số thiết bị đầu cuối tự động hiển thị các liên kết có thể nhấp) hoặc chạy nó curlđể tải xuống dưới dạng văn bản. Nó sẽ chỉ hiển thị danh sách các thư mục cho các bản phát hành được hỗ trợ cho ppa.

Gần đây tôi đã thêm một ppa, vì vậy tôi đã xem xét điều đó cộng với điều Phần mềm và Cập nhật và đoán ...


Tôi nên đề cập, bạn phải chạy nó như ./SCRIPTNAME ppa:WHATEVER/WHATEVER- nó dường như hoạt động mặc dù :)
Wilf

1
Nâng cao nó làm việc!
lưỡi19899

3

Vâng, tôi có thể có một giải pháp GUI cho bạn! Cách tốt nhất đối với tôi là PPA Manager:

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

Khi bạn đã thêm ppa hoặc ppas đã được thêm vào hệ thống của mình, hãy mở Trình quản lý PPA và nhấp vào quản lý ppas, nó sẽ đưa bạn đến cửa sổ mới với danh sách ppas trong hệ thống của bạn, nhấp vào bất kỳ ppa nào và chọn list packagesbên dưới, nếu có bất kỳ gói nào có sẵn danh sách nếu không bạn có thể xóa nó. Làm việc cho tôi ngay cả ngày hôm qua tôi đã có ppa cho Saucy và Trusty vì vậy các gói danh sách hiển thị cho tôi "0" và tôi đã xóa nó :)


Yo dawg, tôi nghe nói bạn muốn kiểm tra PPA, vì vậy có PPA để kiểm tra PPA của bạn: D
MrVaykadji

bất cứ điều gì tốt nhất :)
JoKeR
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.