Risposte:
Non posso dire in modo definitivo cosa crea questa directory, ma è probabile che sia stata creata come effetto collaterale dell'installazione di driver del kernel Linux di terze parti come NVIDIA o VirtualBox tramite DKMS , o da qualche altro script di installazione non supportato non fornito da Ubuntu. Molto probabilmente questa directory è stata creata come effetto collaterale di un processo di installazione che supporta sia le distribuzioni basate su rpm che quelle basate su deb. DKMS sembra essere un tale script di installazione e può sicuramente creare questa directory nelle giuste condizioni. La directory può essere tranquillamente eliminata senza danneggiare il sistema, ma può essere creata di nuovo quando gli aggiornamenti vengono installati successivamente. Vedi bug # 1069350 per un rapporto bug aperto che tiene traccia di questo problema.
Questa è la risposta breve, ora qualche dettaglio in più.
Come forse saprai, rpm è un formato di pacchetto software e un insieme di strumenti per l'installazione di pacchetti e la manutenzione del database dei pacchetti installati e delle loro interdipendenze. È usato da molte distribuzioni ma non da Ubuntu e da altre distribuzioni basate su deb. Sfortunatamente per Ubuntu, tuttavia, qualsiasi uso del rpm
comando richiede l'esistenza o la creazione di un database "rpmdb" valido.
Nelle distribuzioni basate su rpm questo non è un problema perché hanno un rpmdb a livello di sistema per definizione. Sui sistemi Ubuntu, poiché non è necessario un database rpm a livello di sistema,rpm
è configurato per utilizzare un database nella directory principale di ciascun utente, in particolare $HOME/.rpmdb
. Questo database viene creato silenziosamente secondo necessità ogni volta che rpm
viene eseguito. Dal momento che si trova nella home directory di ciascun utente, non ci sono problemi con le autorizzazioni condivise o la necessità di creare il database da un amministratore. Ogni utente ottiene il proprio database rpm vuoto privato.
Si scopre che ad alcuni progetti piace creare script di installazione che funzioneranno su qualsiasi distribuzione, indipendentemente dal fatto che tale distribuzione sia basata su rpm, basata su deb o nessuna delle due. DKMS è uno di questi progetti, consente di creare driver di terze parti per qualunque kernel Linux sia in esecuzione su un sistema ed è scritto per funzionare su tutte le distribuzioni. Parte della sua logica per determinare su quale distribuzione è in esecuzione e su quale versione del kernel è presente, esegue un rpm
comando per interrogare il database. Come ho spiegato in precedenza, ciò creerà automaticamente una .rpmdb
directory se non esiste già nella home directory dell'utente corrente. La query del database non dovrebbe riuscire, poiché Ubuntu non è una distribuzione basata su rpm e DKMS continua.
Se installi altri pacchetti di driver del kernel Linux da Ubuntu come VirtualBox, NVIDIA, ndiswrapper o openswan, probabilmente stai usando DKMS per installare quei driver per il tuo kernel. Questo di solito viene eseguito automaticamente quando il driver viene installato dai repository Ubuntu. Quindi ogni volta che viene installato un aggiornamento del kernel o del driver, DKMS viene eseguito nuovamente per ricostruire il driver per tutte le versioni del kernel disponibili. È stato dimostrato che quando questi pacchetti vengono aggiornati, /root/.rpmdb
viene effettivamente visualizzata la directory, che si trova nella directory principale di root poiché è necessario il root per installare gli aggiornamenti.
Non conosco altri specifici script di installazione di terze parti che possono anche eseguire rpm
comandi come modo per rilevare il tipo di distribuzione, ma è certamente possibile. Ad esempio, potresti voler installare LargeProprietaryProgram da Initech e, per farlo, esegui uno install.sh
script come root. Questo script può tentare di interrogare un database rpm per vedere se stai eseguendo una distribuzione basata su rpm e/root/.rpmdb
è stato creato di nuovo.
Questo spiega perché potresti vedere /home/user/.rpmdb
e/root/.rpmdb
visualizzare le directory sul tuo sistema. Ma perché nella directory principale del sistema?
La spiegazione più semplice per questo è che la $HOME
variabile d'ambiente è in qualche modo disinserita in qualche contesto di processo che viene eseguito rpm
. Usiamo DKMS per ragioni di argomento perché sappiamo definitivamente che può eseguire rpm
comandi. Poiché in genere viene eseguito quando i pacchetti vengono installati o aggiornati, viene eseguito nell'ambiente di qualsiasi gestore di pacchetti che si utilizza. Se si utilizza sudo apt-get
per installare i pacchetti, erediterà un corretto $HOME
. Se usi PackageKit, potrebbe non avere affatto una $HOME
variabile. Non sono sicuro di quale ambiente sia fornito da Synaptic o Ubuntu Software Center.
Quindi, se DKMS è in esecuzione in un ambiente che non ha una $HOME
variabile e, a causa del modo in cui è stato definito il database rpm, al suo /.rpmdb
posto verrà creato un database rpm vuoto /root/.rpmdb
. Questo rpm
problema è stato risolto nel pacchetto per Ubuntu nella versione di sviluppo 14.10, quindi dovrebbe essere creato /root/.rpmdb
anche se $HOME
non definito.
Spero che questo spieghi perché ci sono delle directory chiamate .rpmdb
su un sistema Ubuntu, perché possono essere create apparentemente automaticamente, e perché uno può essere creato nella directory root nelle giuste condizioni. Non c'è nulla di cui preoccuparsi, non esiste nulla di dannoso nell'esistenza di questa directory e può essere semplicemente eliminata se la sua presenza è offensiva per l'estetica o gli scanner di sicurezza.
RPM (Red Hat Package Manager) è un sistema di gestione dei pacchetti. RPM è stato originariamente scritto nel 1997 da Erik Troan e Marc Ewing per l'uso in Red Hat Linux, ma ora è utilizzato in molte distribuzioni GNU / Linux.
Il dietro le quinte del gestore pacchetti è il database RPM ( RPMDB ), archiviato in /var/lib/rpm
. È costituito da un unico database (pacchetti) contenente tutte le meta informazioni degli rpms installati . Il database viene utilizzato per tenere traccia di tutti i file modificati e creati quando un utente (utilizzando RPM) installa un pacchetto , consentendo così all'utente (tramite RPM) di annullare le modifiche e rimuovere il pacchetto in un secondo momento.
Riferimento: http://en.wikipedia.org/wiki/RPM_Package_Manager
alien
/.rpmdb
dovrebbe apparire su un sistema Ubuntu (che non utilizza rpm)?