Debkg sistemindeki dpkg tarafından oluşturulmamış veya oluşturulmamış dosyalar nasıl bulunur?


20

Geçmişte elle bazı şeyler yükledim ve ilgili tüm dosyaları ayıklamak istiyorum. Bu nedenle, Debian sisteminde yüklü olan paketlerin hiçbirine dahil olmayan tüm dosyaları (örneğin / usr içinde) otomatik olarak bulmanın bir yoluna ihtiyacım var. Ancak, paket kurulumu sırasında oluşturulan dosyaları da filtrelemem gerekir (dpkg yükleme sonrası komut dosyaları ve benzeri şeyler tarafından).


Yanıtlar:


25

cruftPaketi kullanın :

cruft, orada olmaması gereken bir şey için sisteme bakmak için bir programdır; ya da orada olması gereken her şey için, ama değil.


4

Böyle bir şey deneyebilirsiniz:

dpkg -L --list-all-package-files | grep "^/usr" > dpkg-files.dat   **(don't know the dpkg option "--list-all-package-files", read mand dpkg)**
find /usr -type f -o -type l > all-usr-files.dat
sort dpkg-files.dat all-usr-files.dat | uniq -c | grep " 1 "

Bu şekilde / usr içindeki tüm dosyaları alırsınız, ancak herhangi bir paket dosyası alamazsınız. İlk atış olarak bu size yardımcı olabilir.


grep -h "^/usr" /var/lib/dpkg/info/*.list > dpkg-files.dat
-L'yi

--list-all-package-filesSeçenek yok .
Karol

@DerfK: Birden fazla paket listelemek için -l alabilirsiniz, örneğin:dpkg -L `aptitude search ~i -F "%p"`
Karol

Bu yaklaşımla ilgili sorun, / usr içinde dpkg tarafından listelenenden daha fazla dosya veya bağlantı olmasıdır. Örneğin, muhtemelen bazı kurulum sonrası komut dosyaları tarafından oluşturulan / usr / bin / aptitude var, ancak dpkg tarafından listelenmiyor. Yani, burada ne istediğimi herhangi bir paket yükleyerek oluşturulan veya oluşturulan dosyaların bir listesi sanırım (soru değişecek).
Karol

@Karol: Diğer dosya kaynakları saptırmalar ve alternatifler olabilir. Çıktı cümle biçimindedir ancak dpkg-divert --listkök olarak sapmaları görebilirsiniz (Bunlara genellikle bir sonek verilir). Alternatifler biraz daha zordur, / var / lib / dpkg / alternuments / içindeki dosya formatı gariptir ve update-alternativesbana hemen her şeyi söyler, ancak bağlantının adı. find /usr -lname '/etc/alternatives/*'muhtemelen bunları elde etmenin en kolay yoludur.
DerfK
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.