2011-12-27 33 views
84

Tôi muốn có một danh sách các repos trong sources.list, cộng với những người trong số sources.list.d /.Cách lấy danh sách các kho lưu trữ apt-get đang kiểm tra?

Tôi có thể lấy danh sách này trong một biểu mẫu phù hợp để thiết lập một máy chủ khác để nó có thể xem cùng một bản repo không?

Ngoài ra, làm cách nào để xác định repo nào là gói nguồn , được cài đặt hoặc khả dụng?

+0

Xem http://askubuntu.com/questions/148932/how-can-i-get-a-list-of-all-repositories-and-ppas-from-the-command-line – Mawg

Trả lời

12

Hãy thử điều này:

cat /etc/apt/sources.list 
+17

Điều đó sẽ không bao gồm các repos từ /etc/apt/sources.list.d/, IE kết quả từ # apt-add-repository XXX – ktenney

+0

'grep -Erh^deb/etc/apt/sources.list *' nên thực hiện thủ thuật. – David

+0

'grep -Erh '^ deb'/etc/apt/sources.list *' để loại trừ các dòng 'deb-src'. – David

101

Có vẻ như gần nhất là:

apt-cache policy 
+1

Có ai đó tăng cường đầu ra (tóm tắt các url vv) và muốn chia sẻ lệnh của mình ở đây không? – lony

29

AFAIK bạn không thể yêu cầu apt cho các nguồn hiện tại của họ là gì, tuy nhiên bạn có thể làm những gì bạn muốn sử dụng vỏ công cụ.

Bắt một danh sách các kho:

grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* >> current.repos.list 

Áp dụng danh sách:

apt-add-repository << current.repos.list 

Về nhận repo từ một gói phần mềm (cài đặt hoặc có sẵn), điều này sẽ làm các trick

apt-cache policy package_name |grep -m1 http| awk '{ print $2 " " $3 }' 

Tuy nhiên, điều đó sẽ cho bạn thấy kho lưu trữ của phiên bản mới nhất có sẵn của gói đó, bạn ma y có nhiều kho lưu trữ hơn cho cùng gói với các phiên bản cũ hơn. Loại bỏ tất cả các công cụ grep/awk nếu bạn muốn xem danh sách đầy đủ.

+0

rất đẹp! Các công cụ apt rất phong phú, tôi ngạc nhiên điều này không thuận tiện hơn. Cảm ơn, Kent – ktenney

+2

danh sách đầy đủ đơn giản 'chính sách apt-cache | grep http | awk '{print $ 2 $ 3}' | sort -u' – shadowbq

1

Đó là không một định dạng thích hợp cho một cách mù quáng sao chép sang máy khác, nhưng người dùng có nhu cầu làm việc hiểu xem họ đã thêm một kho lưu trữ hay chưa (như tôi đã làm), bạn chỉ có thể làm:

sudo apt update 

Khi apt đang cập nhật, nó sẽ xuất ra danh sách các kho lưu trữ mà nó tìm nạp. Có vẻ như hiển nhiên, nhưng tôi vừa mới nhận ra rằng các url GET là nó phát ra.

Các vấn đề liên quan