Bagaimana saya bisa menghapus semua paket dari satu sumber Debian?

8

Saya sebelumnya menambahkan beberapa sumber eksternal /etc/apt/sources.list.dtetapi saya sekarang ingin menghapus salah satunya. Aku juga mau:

  • hapus semua paket hanya dari sumber itu
  • kembalikan semua paket ke versi di sumber asli saya
  • sebagai alternatif, buat daftar semua paket dari sumber ini sehingga saya dapat melakukan prosedur ini secara manual

Bagaimana saya bisa melakukan ini?

david.libremone
sumber

Jawaban:

11

Bergantung pada konfigurasi repositori yang ingin Anda hapus, apt list --installedmungkin memberikan informasi yang cukup untuk mengidentifikasi paket yang Anda perlukan untuk menghapus atau menurunkan versi. Pilihan lain, jika repositori mendefinisikan "Asal" yang unik, adalah menggunakan aptitude search '~i ~Oorigin'(menggantikan yang originsesuai).

(Ini adalah jawaban umum; jika Anda mengedit pertanyaan untuk menentukan dengan tepat sumber yang ingin Anda hapus, saya dapat menambahkan jawaban tertentu.)

Stephen Kitt
sumber
ini terlihat menjanjikan, bisakah saya mendapatkan daftar asal-usul entah bagaimana?
david.libremone
2
Ya, apt-cache policyakan menunjukkan kepada Anda asal untuk semua repositori yang Anda konfigurasikan (lihat o=di output).
Stephen Kitt
3

Atau dengan dpkg:

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i yourkeyword

Sebagai contoh

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i multimedia

pengembalian:

audacious                                1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins                        1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins-data                   1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main    
snipp

Ini menunjukkan kepada saya paket-paket dari deb-multimedia.org. Hasil yang sama dengandpkg-query -W -f='${Section}\t\t${Package}\n' | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | egrep -i multimedia

fedorqui
sumber