แสดงรายการซอฟต์แวร์ทั้งหมดที่ติดตั้งจากองค์ประกอบเฉพาะ (ปลอด contrib)


12

มีวิธีในการแสดงรายการทั้งหมดnon-freeและcontribซอฟต์แวร์ที่ติดตั้งใน Debian ผ่านaptหรือไม่

/etc/apt/sources.list มีดังนี้

deb http://ftp.us.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

# wheezy-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ wheezy-updates main
deb-src http://ftp.us.debian.org/debian/ wheezy-updates main

ฉันเพิ่มnon-freeและcontribหลายปีที่ผ่านมาเนื่องจากฉันต้องการไดรเวอร์ที่ไม่ใช้การ์ดแสดงผลซึ่งตอนนี้ถูกแทนที่ด้วยอันใหม่ที่ไม่ต้องการไดร์เวอร์ที่ไม่ต้องเสียค่าใช้จ่าย ฉันต้องการกำจัดสิ่งที่ไม่ใช่ฟรี แต่ฉันกลัวว่าฉันอาจติดตั้งซอฟต์แวร์ที่ไม่ใช่ฟรีอื่น ๆ ในช่วงหลายปีที่ผ่านมาซึ่งฉันไม่สามารถถอนการติดตั้งได้


คำตอบ:


15
  • dpkg-query -W -f='${Section}\t${Package}\n' | grep ^non-free
  • aptitude search '~i ?section(non-free)'

Section จะไม่ปลอด / ... สำหรับทุกสิ่งจากเส้นทางที่ไม่ใช่ฟรี

[หมายเหตุ] สำหรับ gcc docs ...

 This documentation is licensed under the terms of the GNU Free
 Documentation License, and contains invariant sections, so it can't be
 part of Debian main.

(ฉันสงสัยเกี่ยวกับเรื่องนั้นเช่นกัน แต่ก็ไม่ได้ตรวจสอบจนกว่าจะมีการพูดถึง)


ทั้งคู่ให้ผลลัพธ์ที่แตกต่างกัน ( pastebin.com/rAhYHTk8 ) สิ่ง NVIDIA เป็นไดรเวอร์ดังนั้น dpkg ดูเหมือนว่าถูกต้อง! upvoted ฉันแค่สงสัยว่า gcc-doc กำลังทำอะไรที่นั่น
อเล็กซ์

สิ่งที่ NVIDIA ถูกลบออกไปแล้วอาจจะอยู่ในรายการเพราะมันเก็บไว้. deb หรืออะไรบางอย่าง ฉันเพียงแค่จำสิ่งหนึ่งที่ผมได้จากการไม่ฟรีซึ่งไม่ได้จดทะเบียน: ผลในการdpkg -l | grep -i nonfree flashplugin-nonfreeฉันสงสัยว่าทำไมมันถึงไม่แสดงด้วยความถนัดและถ้ามันเป็นรายการทุกอย่างจากที่ไม่ใช่ฟรี
อเล็กซ์

2
เพราะมันอยู่ใน contrib :: debian / pool / contrib / f / flashplugin-nonfree ( Section: contrib/web)
Ricky Beam

1
หนึ่งซับสำหรับทั้งสองส่วนคือ dpkg-query -W -f='${Section}\t${Package}\n' | sort | egrep ^contrib\|^non-free
GKFX

เกี่ยวกับdpkg-query -W -f='${Section}\t${Package}\n': Sectionไม่แสดงส่วนประกอบ (อย่างน้อยก็ไม่ได้สำหรับฉันในอูบุนตู 18.04.) เป็นองค์ประกอบตัวอย่างเช่นอาจจะมีmain, หรือcontrib non-freeในขณะที่ส่วนที่เป็นสิ่งที่ต้องการ: admin, gnome, หรือutils x11
mpb

6

มีโปรแกรมที่เรียกว่าVRMS(เสมือน Richard M. Stallman) ซึ่งจะรายงานซอฟต์แวร์ที่ไม่มีค่าใช้จ่ายทั้งหมดในระบบของคุณโดยสรุปสั้น ๆ มันอยู่ใน repo's และคุณสามารถติดตั้งผ่านapt;-)


2
มันมูลค่าการกล่าวขวัญเพิ่มตัวเองไปvrms /etc/cron.monthlyฉันประหลาดใจเมื่อฉันได้รับจดหมายจาก Stallman เสมือนหนึ่งเดือนหลังจากการติดตั้ง
อเล็กซ์

2

ฉันมี 'กระตุ้น' ที่คล้ายกันไม่กี่ปีที่ผ่านมาและไม่สามารถระบุได้ว่าข้อมูลแพคเกจเดิมจะถูกเก็บไว้ในระบบหลังจากดาวน์โหลดแพคเกจ dpkgฉันไม่คิดว่าข้อมูลนี้สามารถใช้ได้กับ

ดังนั้นสิ่งที่ฉันสิ้นสุดคือการติดตั้งเครื่องเสมือนที่สะอาดการตั้งค่าที่เหมาะสม/etc/apt/sources.listและติดตั้งรายการทั้งหมดที่สร้างโดย:

dpkg --get-selections | fgrep -v deinstall | cut -s -f 1

แพ็คเกจที่จะไม่ติดตั้ง (ฉันดาวน์โหลดเพื่อประหยัดเวลาด้วยapt-get -d)

คุณอาจจะสามารถทำสิ่งที่คล้ายกันโดยใช้apt-get --root-directory=some_dirหลังจากเปลี่ยนของคุณชั่วคราวsources.listแต่ฉันไม่แน่ใจว่าที่ใช้ฐานข้อมูลการติดตั้งปัจจุบันของคุณและเพิ่งย้ายแพคเกจที่นั่น VM สำหรับการทดลองประเภทนี้ปลอดภัยกว่ามาก ปกติฉันมีการติดตั้งพื้นฐานที่สะอาดของ Linux ปัจจุบันของฉันเป็น VM ดังนั้นฉันต้องโคลนเท่านั้น (ไม่ใช่ว่าการติดตั้ง Linux บน VM ใช้เวลานานขนาดนั้น)


Nice "โซลูชัน" ขณะนี้ฉันไม่มีพื้นที่ว่างในดิสก์ แต่ฉันคิดว่า apt จะแสดงแพ็คเกจที่ไม่พบ
อเล็กซ์

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

0

เยี่ยมชมสอบถามอูบุนตู นี่บรรทัดคำสั่ง:

FILTER=non-free TMP_DIR=$(mktemp -d) && {
  dpkg -l | grep ^ii | cut -f 3 -d' ' | cut -f 1 -d : | sort | uniq > ${TMP_DIR}/pkg_installed.list
  cat /var/lib/apt/lists/*_${FILTER}_*Packages | grep "^Package:"  | sort | uniq | cut -d' ' -f2 > ${TMP_DIR}/pkg_filtered.list
  comm -12 ${TMP_DIR}/pkg_installed.list ${TMP_DIR}/pkg_filtered.list
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.