Menggunakan aptitude, untuk mencari paket yang diinstal di luar cabang stabil, Anda dapat menggunakan:
aptitude search "?narrow(?installed,?not(?archive(stable)))"
Untuk melihat versi serta nama paket (dan bukannya deskripsi), Anda dapat menggunakan perintah dengan opsi format ( -F
singkatnya), sebagai berikut.
aptitude search -F "%p %V %v" "?narrow(?installed,?not(?archive(stable)))"
Untuk format lebih lanjut, silakan lihat halaman manual (inilah dokumentasi dengan opsi yang tersedia .)
Itu berfungsi misalnya, di Debian jika Anda menginstal paket di luar Squeeze (dengan menjalankan, misalnya apt-get install -t sid package-name
,.
Anda dapat melihat dari mana paket yang diinstal berasal dari apt-cache policy
, penggunaannya adalah sebagai berikut:
apt-cache policy <package-name>
Sebagai contoh, paket python-numpy saya membuat keluaran berikut:
$ LANG=C apt-cache policy python-numpy
python-numpy:
Installed: 1:1.6.2-1
Candidate: 1:1.6.2-1.2
Version table:
1:1.7.0-1 0
1 http://ftp.es.debian.org/debian/ experimental/main amd64 Packages
1:1.6.2-1.2 0
500 http://ftp.es.debian.org/debian/ sid/main amd64 Packages
*** 1:1.6.2-1 0
100 /var/lib/dpkg/status
1:1.4.1-5 0
990 http://ftp.es.debian.org/debian/ squeeze/main amd64 Packages
990 http://ftp.de.debian.org/debian/ squeeze/main amd64 Packages
Itu berarti saya satu versi di belakang cabang sid / main saat ini, jadi saya sudah menginstal versi sid-lama. Saya melihat saya tidak memiliki yang stabil karena belum 1.4.1-5
, dan saya saat ini di 1.6.2-1
.
Pada saat pengiriman paket ini sudah diperbarui:)
?any-version()
, karena~narrow(pat1, pat2)
sama?any-version(pat1 pat2)
dan mendukung?any-version(pat1 pat2 pat3)
tanpa terlihat bodoh.Setelah membaca halaman info dari aptitude dan selusin upaya, saya akhirnya mendapatkan ini:
atau (setara):
Ini akan mencari paket yang diinstal dari arsip tidak stabil dari repositori apa pun . Anda harus memfilter paket dari arsip default Anda (menguji contoh di atas).
Jika Anda ingin memfilter paket yang diinstal dari www.debian-multimedia.org/unstable:
Sunting: “Archive”, “origin” dll. Dikurangkan dari
Release
file repositori. Sayangnya tidak semua alat dapat melihat semua baris tersebut dan mereka menggunakan sintaks yang berbeda untuk mereka. Anda dapat menemukan file-file tersebut sebagai/var/lib/apt/lists/*Release
. Atau cukup ketikapt-cache policy
untuk mendapatkan ikhtisar. apt-cache mengubah format outputnya: versi yang lebih baru menggunakan gaya apt_preferences.Suite:
atauArchive:
(nama lama!)?archive(___)
atau~A___
%t
release a=___
natty-backports
,trusty-security
,stable
Origin:
?origin(___)
atau~O___
release o=___
Canonical
,Google, Inc.
,LP-PPA-dockbar-main
,Ubuntu
sumber
Periksa tag asal (seperti o = Debian ) untuk masing-masing repositori Anda saat ini:
Kemudian cari paket dari (atau bukan dari) asal tertentu:
Ini tidak cocok untuk audit keamanan karena bergantung pada setiap repositori untuk memberikan informasi asal sendiri, tetapi mungkin bermanfaat untuk memecahkan masalah asal paket yang hadir dalam beberapa repositori.
sumber
aptitude search
Pola Anda tidak bagus. - Mereka memilih seperti ini "daftar paket di mana satu versi diinstal, dan setiap versi lain ada di Debian" atau "beberapa versi diinstal, dan setidaknya satu versi dari paket itu tersedia di non-Debian". - Apa yang kita cari adalah “versi yang diinstal adalah dari Debian (atau tidak)”. Ini harus dilakukan dengan?narrow()
atau?any-version()
.nemo-fileroller
darilinuxmint
, tetapi ada diDebian
, juga. Jadi itu muncul dalam daftar, karena itu diinstal dan ada di suatu tempat dari Debian.Untuk kelengkapan: Di sistem Ubuntu Anda juga dapat menggunakan Synaptic untuk tugas ini. Di kolom kiri Anda dapat memfilter paket berdasarkan asalnya.
sumber
Saya telah menemukan ini:
Anda juga dapat menemukan daftar istilah pencarian yang didukung oleh "pencarian bakat" di sini .
sumber
sudo
? Sepertinya saya bahwa ini juga berfungsi tanpa menjalankannya sebagai root.Pertama, cari file yang sesuai untuk repositori yang menarik di / var / lib / apt / daftar. Seharusnya dimungkinkan untuk melakukan ini secara terprogram, tetapi saya tidak perlu melakukannya.
Menggunakan google chrome sebagai contoh, coba ini:
dan saya mendapatkan output:
dpkg -s mengembalikan 0 jika paket diinstal dan bukan nol sebaliknya. Untuk keperluan referensi di masa mendatang, output dari
adalah
sumber
Jawaban lain sebenarnya salah, karena parameter ke
?archive()
adalah ekspresi reguler. Jadi?archive(stable)
cocok dengan keduanyastable
danunstable
. Untuk mengecualikanstable
Anda hanya perlu jangkar pola regex:Untuk mengecualikan beberapa repositori:
Perhatikan juga bahwa beberapa paket termasuk dalam beberapa repositori, mis
xenial-security,xenial-updates
.?archive()
mengevaluasi pola regex terhadap setiap repositori secara individual, sehingga?archive("^xenial-updates$")
akan cocok dengan semua paket milikxenial-updates
, bahkan jika itu milik repositori lain juga.sumber