วิธีรับรายการที่เก็บ apt-get กำลังตรวจสอบ? [ปิด]


137

ฉันต้องการรายชื่อ repos ใน source.list รวมถึงรายการในแหล่งรายการ d /

ฉันจะรับรายการนี้ในรูปแบบที่เหมาะสมกับการตั้งค่าโฮสต์อื่นเพื่อให้ดูรีโพเดียวกันได้หรือไม่

นอกจากนี้ฉันจะทราบได้อย่างไรว่า repo ใดเป็นแหล่งที่มาของแพ็กเกจทั้งที่ติดตั้งหรือพร้อมใช้งาน


คำตอบ:


178

ดูเหมือนว่าใกล้เคียงที่สุดคือ:

apt-cache policy

3
มีใครปรับปรุงเอาต์พุต (สรุป urls ฯลฯ ) และต้องการแบ่งปันคำสั่งของเขาที่นี่หรือไม่?
lony

@Iony Howbout this:apt-cache policy | awk '/http.*amd64/{print$2}' | sort -u
SebMa

51

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

การรับรายชื่อที่เก็บ:

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

การใช้รายการ:

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

เกี่ยวกับการรับ repo จากแพ็คเกจ (ติดตั้งหรือพร้อมใช้งาน) สิ่งนี้จะทำเคล็ดลับ

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

อย่างไรก็ตามนั่นจะแสดงที่เก็บของเวอร์ชันล่าสุดที่มีอยู่ของแพ็กเกจนั้นคุณอาจมีที่เก็บเพิ่มเติมสำหรับแพ็กเกจเดียวกันกับเวอร์ชันเก่า ลบสิ่ง grep / awk ทั้งหมดหากคุณต้องการดูรายการทั้งหมด


12
รายการเต็มแบบง่ายๆapt-cache policy |grep http |awk '{print $2 $3}' |sort -u
shadowbq

2
ไม่มีช่องว่างapt-cache policy |grep http |awk '{print $2 " " $3}' |sort -u
shadowbq

1
ในบรรทัดคำสั่งด้วย grep: /etc/apt/sources.list.d/*ควรเปลี่ยนเป็น/etc/apt/sources.list.d/*.list. สำหรับเหตุผลดู askubuntu.com/questions/82825/…
Erik Sjölund

17

ลองสิ่งนี้:

cat /etc/apt/sources.list

27
ซึ่งจะไม่รวม repos จาก /etc/apt/sources.list.d/, IE ที่เกิดจาก # apt-add-repository XXX
ktenney

3
grep -Erh ^deb /etc/apt/sources.list*ควรทำเคล็ดลับ
เดวิด

1
grep -Erh '^deb ' /etc/apt/sources.list*เพื่อไม่รวมdeb-srcบรรทัด
เดวิด

10

มันไม่ได้เป็นรูปแบบที่เหมาะสมสำหรับการคัดลอกสุ่มสี่สุ่มห้าไปยังเครื่องอื่น แต่ผู้ใช้ที่มีความประสงค์ที่จะทำงานออกว่าพวกเขาได้เพิ่มพื้นที่เก็บข้อมูลเลยหรือไม่ (เช่นผม) คุณก็สามารถทำได้:

sudo apt update

เมื่อaptกำลังอัปเดตระบบจะแสดงรายการที่เก็บข้อมูลที่ดึงมา ดูเหมือนชัดเจน แต่ฉันเพิ่งรู้ว่าGETURL คืออะไรที่คายออกมา

แก้ไข:awkนิพจน์ -based ต่อไปนี้สามารถใช้เพื่อสร้าง source.list:

 cat /tmp/apt-update.txt | awk '/http/ { gsub("/", " ", $3); gsub("^\s\*$", "main", $3); printf("deb "); if($4 ~ "^[a-z0-9]$") printf("[arch=" $4 "] "); print($2 " " $3) }' | sort | uniq

หรือตามคำตอบอื่น ๆ ที่แนะนำคุณสามารถเพียงแค่catแหล่งข้อมูลที่มีอยู่แล้วทั้งหมดดังนี้:

cat /etc/apt/sources.list /etc/apt/sources.list.d/*

เนื่องจาก repos ที่ปิดใช้งานถูกแสดงความคิดเห็นด้วยแฮชจึงควรใช้งานได้ตามที่ตั้งใจไว้


ทำไมต้องโหวตลง? อย่างน้อยก็แสดงความคิดเห็นเพื่อที่ฉันจะได้ปรับปรุงคำตอบของฉัน .......
starbeamrainbowlabs

ลงคะแนน (สำหรับตอนนี้) พร้อมความคิดเห็น: โปรดแสดงวิธีการจับเอาท์พุทนี้และแปลงเป็นคำตอบสำหรับคำถามกล่าวคือทุกครั้งที่เราapt updateทำเราจะกรองผลลัพธ์ / ข้อความนั้นเพื่อดึงข้อมูลที่เกี่ยวข้องกับคำถามนี้อย่างไร
dardisco

2
ดีขึ้นมาก! +1 สำหรับใช้awkในการกรอง
dardisco

-4

ฉันมาที่นี่เพื่ออะไรบางอย่าง แต่สิ่งที่ฉันต้องการคือ:

cd /etc/apt    
nano source.list     
deb http://http.kali.org/kali kali-rolling main non-free contrib    
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
apt upgrade && update 

แหล่งที่มา: https://docs.kali.org/general-use/kali-linux-sources-list-repositories

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