แสดงรายการที่เก็บ ppa ทั้งหมดที่เพิ่มในระบบของฉัน


21

ฉันจะแสดงรายการที่เก็บ ppa ทั้งหมดที่เพิ่มในระบบของฉันและบันทึกลงใน.txtไฟล์เพื่อที่ฉันไม่ต้องการใช้เวลาในการค้นหา ppa เพื่อการติดตั้งใหม่และฉันสามารถเลือก ppa line ใน.txtไฟล์ของฉันและต่อท้าย คำสั่ง sudo add-apt-repository? มีวิธีอื่นอีกไหมในการทำเช่นนี้ซึ่งฉันไม่ต้องการให้ปุ่ม gpg ด้วยตนเอง?

คำตอบ:


19

จากฉันจะรับรายการที่เก็บข้อมูลและ PPA ทั้งหมดจากบรรทัดคำสั่งไปยังสคริปต์การติดตั้งได้อย่างไร

ส่วนหนึ่งของคำตอบดูเหมือนจะมีสิ่งที่คุณกำลังมองหา:

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

บันทึกสิ่งนี้เป็น listppa.sh

listppa.sh > installppa.sh

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

installppa.sh

20

สำหรับผู้ที่ต้องการตรวจสอบ PPAs ที่ติดตั้งโดยไม่ทำอะไรกับพวกเขาโดยอัตโนมัติคุณสามารถทำได้:

$ apt-cache policy

ในระบบของฉันนี่คือสิ่งที่แสดง:

% 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
...

ยกมาจากที่นี่ :

[ apt-cache policy] ดึงลำดับความสำคัญที่เกี่ยวข้องกับแต่ละแหล่งเก็บข้อมูล จากเอาต์พุตคุณสามารถสรุปรายการของที่เก็บและ PPA ที่มีอยู่ทั้งหมด

แหล่งที่มา: http://ask.xmodulo.com/list-installed-repositories-ppas-ubuntu.html


5
นี่เป็นสิ่งที่ดีและเรียบง่าย แต่ผลลัพธ์ก็รวมที่เก็บฐานของ Ubuntu ด้วย apt-cache policy | grep http | awk '{print $2 $3}' | sort -uหากคุณกำลังจะทำสิ่งที่คุณอาจรวมทั้งใช้เต็มรูปแบบคำสั่งสุดท้ายที่ใช้ในการเชื่อมโยงที่คุณให้เป็นแหล่งที่มาของคุณ: ผลลัพธ์จะถูกจัดระเบียบที่ดีขึ้นและง่ายขึ้นในสายตา
pjd

หมายเหตุ: apt-cache policyจะแสดงเฉพาะ Repos apt-get updateหลังจากที่คุณได้ทำงาน หากคุณเพียงแค่เพิ่ม repo ที่มีadd-apt-repositoryก็จะไม่แสดงขึ้นด้วยจนกว่าคุณจะทำงานapt-cache policy apt-get update
wisbucky

0

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

รายการ PPA ในppa:USER/REPOรูปแบบ:

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:'

รายการที่เก็บทั้งหมดรวมถึง PPA ในppa:USER/REPOรูปแบบ:

เพียงลบไฟล์สุดท้ายgrep(อย่าลืมลบ|\จากบรรทัดก่อนหน้าหลังจากsedคำสั่ง)

ดูคำตอบของฉันเกี่ยวกับคำถามอื่น ๆ สำหรับสคริปต์ทั้งหมดที่คุณสามารถบันทึกและใช้รวมถึงการสร้างสคริปต์การติดตั้ง

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