Sistem kökünde Bilinmeyen Klasör /.rpmdb


16

Birisi kök dizindeki /.rpmdb klasörünün ne için olduğunu açıklayabilir mi? Hangi uygulama onu oluşturur ve kullanıyor?

Yanıtlar:


11

Bu dizini ne oluşturduğunu kesin olarak söyleyemem, ancak muhtemelen NVIDIA veya VirtualBox gibi üçüncü taraf Linux çekirdek sürücülerini DKMS kullanarak yüklemenin bir yan etkisi olarak veya tarafından sağlanmayan başka bir desteklenmeyen yükleyici komut dosyası tarafından oluşturulmuş olması muhtemeldir . Ubuntu. Bu dizin büyük olasılıkla hem rpm tabanlı hem de deb tabanlı dağıtımları destekleyecek bir yükleme işleminin yan etkisi olarak oluşturulmuştur. DKMS böyle bir yükleme betiği olur ve kesinlikle doğru koşullarda bu dizini oluşturabilirsiniz. Dizin, sisteminize zarar vermeden güvenle silinebilir, ancak daha sonra güncelleştirmeler yüklendiğinde yeniden oluşturulabilir. Bu sorunu izleyen açık hata raporu için hata # 1069350'ye bakın .

Bu kısa cevap, şimdi biraz daha ayrıntı.

.Rpmdb dosyası nedir?

Bildiğiniz gibi, rpm bir yazılım paketleme formatı ve paketleri kurmak ve kurulu paketlerin veritabanını ve bunların bağımlılıklarını korumak için bir araç setidir. Birçok dağıtım tarafından kullanılır, ancak Ubuntu ve diğer deb tabanlı dağıtımlar tarafından kullanılmaz. Ne yazık ki Ubuntu için, rpmkomutun her türlü kullanımı geçerli bir "rpmdb" veritabanının var olmasını veya yaratılmasını gerektirir.

Devir tabanlı dağıtımlarda, tanım gereği sistem çapında bir devir / dakikaya sahip oldukları için bu bir sorun oluşturmaz. Ubuntu sistemlerinde, sistem çapında bir rpm veritabanına gerek olmadığından rpm, özellikle her kullanıcının ana dizini altında bir veritabanı kullanacak şekilde yapılandırılmıştır $HOME/.rpmdb. Bu veritabanı her rpmçalıştığında sessizce oluşturulur . Her kullanıcının ana dizininde olduğundan, paylaşılan izinlerle veya veritabanının bir yönetici tarafından oluşturulmasını istemeyle ilgili bir sorun yoktur. Her kullanıcı sadece kendi özel boş rpm veritabanını alır.

Neden rpm Ubuntu'da çalıştırılsın?

Bazı projelerin, bu dağıtımın rpm tabanlı, deb tabanlı veya her ikisi de olsun, herhangi bir dağıtım üzerinde çalışacak yükleme komut dosyaları oluşturmaktan hoşlandığı ortaya çıktı. DKMS böyle bir projedir, bir sistemin çalıştığı Linux çekirdeği için üçüncü taraf sürücülerin oluşturulmasına izin verir ve dağıtımlar üzerinde çalışmak için yazılır. Hangi dağıtımın çalıştığını ve hangi çekirdek sürümünün mevcut olduğunu belirleme mantığının bir kısmında rpm, veritabanını sorgulamak için bir komut yürütür . Daha önce açıkladığım gibi, .rpmdbgeçerli kullanıcının ana dizininde zaten bir dizin yoksa bu sessizce bir dizin oluşturur . Ubuntu rpm tabanlı bir dağıtım olmadığından ve DKMS devam ettiğinden veritabanı sorgusu başarısız olmalıdır.

Ubuntu'dan VirtualBox, NVIDIA, ndiswrapper veya openswan gibi herhangi bir Linux çekirdek sürücü paketi yüklerseniz, muhtemelen çekirdeğiniz için bu sürücüleri yüklemek için DKMS kullanıyorsunuzdur. Bu genellikle sürücü Ubuntu depolarından kurulduğunda otomatik olarak yapılır. Çekirdek veya sürücü güncellemesi yüklendiğinde DKMS, sürücüyü kullanılabilir tüm çekirdek sürümleri için yeniden oluşturmak üzere yeniden çalışır. Bu paketler güncellendiğinde, /root/.rpmdbdizinin aslında kökün ana dizininde göründüğü gösterilmiştir, çünkü kök güncellemeleri yüklemek için gereklidir.

rpmDağıtım türünü algılamanın bir yolu olarak komutları da yürütebilecek başka bir üçüncü taraf yükleme komut dosyası bilmiyorum , ancak kesinlikle mümkün. Örneğin, LargeProprietaryProgram'ı Initech'ten yüklemek ve bunun için bir install.shkomut dosyasını kök olarak çalıştırmanız gerekebilir . Bu komut dosyası, bir rpm tabanlı dağıtım çalıştırıp çalıştırmadığınızı görmek için bir rpm veritabanını sorgulamaya çalışabilir ve /root/.rpmdbyeniden oluşturulur.

Böylece sisteminizde neden görebileceğiniz /home/user/.rpmdbve /root/.rpmdbdizinler görünebilir . Ama neden sistem kök dizininde?

Neden kök dizinde .rpmdb oluşturulur?

Bunun en kolay açıklaması, $HOMEortam değişkeninin bir şekilde çalışan bazı işlem bağlamında ayarlanmamış olmasıdır rpm. Tartışma uğruna DKMS kullanalım çünkü rpmkomutları çalıştırabileceğini kesinlikle biliyoruz . Genellikle paketler yüklendiğinde veya güncellendiğinde çalıştığından, kullandığınız paket yöneticisinin bulunduğu ortamda çalışır. sudo apt-getPaketleri yüklemek için kullanırsanız , doğru bir miras alır $HOME. PackageKit kullanırsanız, hiç $HOMEdeğişkeni olmayabilir . Synaptic veya Ubuntu Yazılım Merkezi tarafından hangi ortamın sağlandığından emin değilim.

DKMS $HOMEdeğişkeni olmayan bir ortamda çalışıyorsa ve rpm veritabanının tanımlanma biçimi nedeniyle, /.rpmdbyerine boş bir rpm veritabanı oluşturulacaktır /root/.rpmdb. Bu, rpm14.10 geliştirme sürümünde Ubuntu için pakette düzeltildi , bu nedenle tanımlanmamış /root/.rpmdbolsa bile şimdi oluşturulmalıdır $HOME.

Umarım bu neden .rpmdbbir Ubuntu sisteminde neden çağrılan dizinler olduğunu , neden otomatik olarak oluşturulabileceğini ve neden doğru koşullar altında kök dizinde oluşturulabileceğini açıklar . Endişelenecek bir şey yok, bu dizinin varlığında kötü niyetli bir şey yok ve varlığı estetik veya güvenlik tarayıcılarına saldırgansa silinebilir.


-1

RPM (Red Hat Paket Yöneticisi) bir paket yönetim sistemidir. RPM ilk olarak 1997'de Erik Troan ve Marc Ewing tarafından Red Hat Linux'ta kullanılmak üzere yazılmıştır , ancak şimdi birçok GNU / Linux dağıtımında kullanılmaktadır.

Paket yöneticisinin perde arkasında çalışmak , depolanan RPM veritabanıdır ( RPMDB ) /var/lib/rpm. Kurulu rpm'lerin tüm meta bilgilerini içeren tek bir veritabanından (Paketler) oluşur . Veritabanı, bir kullanıcı (RPM kullanarak) bir paket yüklediğinde değiştirilen ve oluşturulan tüm dosyaları izlemek için kullanılır , böylece kullanıcının (RPM aracılığıyla) değişiklikleri geri almasını ve paketi daha sonra kaldırmasını sağlar.


Referans: http://en.wikipedia.org/wiki/RPM_Package_Manager


4
Bu, neden /.rpmdbbir Ubuntu sisteminde (rpm kullanmayan) görüneceğini açıklamakla ne kadar ilgili ?
Gilles 'SO- kötü olmayı kes

1
belki de kullanılmışalien
jet
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.