liệt kê tất cả các kho lưu trữ ppa được thêm vào hệ thống của tôi


21

Làm cách nào tôi có thể liệt kê tất cả các kho lưu trữ ppa được thêm vào hệ thống của mình và lưu nó vào một .txttệp, để tôi không muốn dành thời gian tìm kiếm ppa cho các cài đặt mới và tôi chỉ có thể chọn một dòng ppa trong .txttệp của mình và chắp thêm ra lệnh sudo add-apt-repository? Ngoài ra còn có cách nào khác để làm điều này trong đó tôi không muốn cung cấp các phím gpg bằng tay?

Câu trả lời:


19

Từ Làm cách nào tôi có thể nhận danh sách tất cả các kho lưu trữ và PPA từ dòng lệnh thành tập lệnh cài đặt?

Một phần của câu trả lời dường như có những gì bạn đang tìm kiếm:

#! /bin/sh 
# listppa Script to get all the PPA installed on a system ready to share for reininstall
for APT in `find /etc/apt/ -name \*.list`; do
    grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
        USER=`echo $ENTRY | cut -d/ -f4`
        PPA=`echo $ENTRY | cut -d/ -f5`
        echo sudo apt-add-repository ppa:$USER/$PPA
    done
done

Lưu cái này làm listppa.sh

listppa.sh > installppa.sh

Điều này tạo ra một tập lệnh mà bạn có thể sao lưu ở đâu đó, sau đó chạy để thêm PPA của bạn vào bản cài đặt mới bằng cách chạy đơn giản:

installppa.sh

20

Đối với những người chỉ muốn kiểm tra PPA mà họ đã cài đặt mà không thực sự làm gì với chúng một cách tự động, bạn có thể làm:

$ apt-cache policy

Trong hệ thống của tôi, đây là một chút về những gì nó hiển thị:

% apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-rael-gc-scudcloud,a=precise,n=precise,l=ScudCloud - Linux client for Slack,c=main
     origin ppa.launchpad.net
...

Trích dẫn từ đây :

[ apt-cache policy] lấy các ưu tiên liên quan đến từng tài nguyên kho lưu trữ. Từ đầu ra của nó, bạn có thể suy ra một danh sách tất cả các kho lưu trữ và PPA có sẵn.

Nguồn: http://ask.xmodulo.com/list-installed-repose khu-ppas-ubfox.html


5
Điều này là tốt và đơn giản, tuy nhiên đầu ra cũng bao gồm các kho cơ sở Ubuntu. Nếu bạn sẽ làm điều đó, bạn cũng có thể sử dụng lệnh đầy đủ, cuối cùng được sử dụng trong liên kết bạn đã cung cấp làm nguồn của mình : apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. Đầu ra được tổ chức tốt hơn và dễ dàng hơn trên mắt.
pjd

Lưu ý: apt-cache policysẽ chỉ hiển thị các repos sau khi bạn đã chạy apt-get update. Nếu bạn chỉ thêm một repo với add-apt-repository, nó sẽ không hiển thị apt-cache policycho đến khi bạn chạy apt-get update.
wvducky

0

Từ câu trả lời của tôi về Làm thế nào tôi có thể nhận được một danh sách tất cả các kho lưu trữ và PPA từ dòng lệnh vào một tập lệnh cài đặt?

Liệt kê các PPA theo ppa:USER/REPOđịnh dạng:

grep -E '^deb\s' /etc/apt/sources.list /etc/apt/sources.list.d/*.list |\
  cut -f2- -d: |\
  cut -f2 -d' ' |\
  sed -re 's#http://ppa\.launchpad\.net/([^/]+)/([^/]+)(.*?)$#ppa:\1/\2#g' |\
  grep '^ppa:'

Liệt kê tất cả các kho lưu trữ bao gồm cả PPA theo ppa:USER/REPOđịnh dạng:

Chỉ cần xóa cuối cùng grep(đừng quên xóa |\từ dòng trước sau sedlệnh).

Xem câu trả lời của tôi cho câu hỏi khác để biết các tập lệnh đầy đủ mà bạn có thể lưu và sử dụng, bao gồm cả việc tạo tập lệnh cài đặt.

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.