Неизвестная Папка в Системе базируется/.rpmdb

Кто-то может объяснить, для чего/.rpmdb папка в корневом каталоге? Какое приложение создает его и использует его?

16
задан 4 June 2014 в 14:11

2 ответа

Об/мин (Диспетчер пакетов Red Hat) является системой управления пакета. Это, который об/мин был первоначально записан в 1997 Erik Troan и Marc Ewing для использования в Red Hat Linux, но теперь используется во многих GNU/дистрибутивы Linux.

Незаметная работа диспетчера пакетов является базой данных RPM ( RPMDB), сохраненный в /var/lib/rpm. Это состоит из единой базы данных (Пакеты), содержащие всю метаинформацию установленный rpms. База данных используется для отслеживания все файлы, которые изменяются и создаются когда пользователь (использующий об/мин) установки пакет , таким образом позволяя пользователю (через об/мин) обратить изменения и удалить пакет позже.

<час>

Ссылка: http://en.wikipedia.org/wiki/RPM_Package_Manager

-1
ответ дан 23 November 2019 в 02:37

Я не могу сказать окончательно, что создает этот каталог, но вероятно, что это создается или как побочный эффект установки сторонних драйверов ядра Linux, таких как NVIDIA или как VirtualBox с помощью DKMS, или некоторым другим неподдерживаемым сценарием установщика, не предоставленным Ubuntu. Этот каталог был по всей вероятности создан как побочный эффект процесса установки, который, оказывается, поддерживает и основанные на об/мин и находящиеся в deb дистрибутивы. DKMS, оказывается, такой сценарий установки и может определенно создать этот каталог при правильных условиях. Каталог может безопасно быть удален, не вредя Вашей системе, но это может быть создано снова, когда обновления установлены позже. Посмотрите ошибку № 1069350 для открытого отчета об ошибках, отслеживающего эту проблему.

Это - короткий ответ, теперь еще некоторая деталь.

Что такое .rpmdb?

Как можно знать, об/мин является программным обеспечением упаковочный формат и набор инструментов для установки пакетов и поддержания базы данных установленных пакетов и их взаимозависимостей. Это используется многими дистрибутивами, но не Ubuntu и другими находящимися в deb дистрибутивами. К сожалению для Ubuntu, однако, любого использования rpm команда требует, чтобы допустимая "rpmdb" база данных существовала или была создана.

На основанных на об/мин дистрибутивах это не проблема, потому что у них есть rpmdb в масштабе всей системы по определению. В системах Ubuntu с тех пор нет никакой потребности в базе данных об/мин в масштабе всей системы, rpm настроен для использования базы данных в соответствии с корневым каталогом каждого пользователя, конкретно $HOME/.rpmdb. Эта база данных тихо создается по мере необходимости каждый раз, когда rpm выполнения. Так как это находится в корневом каталоге каждого пользователя, нет никаких проблем с общими полномочиями или требованием, чтобы база данных была создана администратором. Каждый пользователь просто получает их собственную частную пустую базу данных об/мин.

Почему об/мин был бы выполнен вообще на Ubuntu?

Оказывается, что некоторым проектам нравится создавать сценарии установки, которые будут работать над любым распределением, является ли то распределение основанным на об/мин, находящимся в deb, или ни один. DKMS является одним таким проектом, он позволяет сторонним драйверам быть созданными для любого ядра Linux, которое система, оказывается, выполняет, и он записан для работы через дистрибутивы. В части его логики для определения, на каком распределении это работает и какая версия ядра присутствует она выполняется rpm управляйте для запросов базы данных. Как я объяснил ранее, это тихо создаст a .rpmdb каталог, если Вы уже не существуете в корневом каталоге текущего пользователя. Запрос базы данных должен перестать работать, так как Ubuntu не является основанным на об/мин распределением, и DKMS продвигается.

При установке каких-либо дополнительных пакетов драйвера ядра Linux из Ubuntu, таких как VirtualBox, NVIDIA, ndiswrapper, или openswan, Вы, вероятно, используете DKMS для установки тех драйверов для ядра. Это обычно делается автоматически, когда драйвер установлен из репозиториев Ubuntu. Так любое время или обновление ядра или драйвера установлено, выполнения DKMS снова для восстановления драйвера для всех доступных версий ядра. Было показано это, когда те пакеты обновляются, /root/.rpmdb каталог действительно на самом деле появляется, который находится в корневом каталоге корня, так как корень требуется, чтобы устанавливать обновления.

Я не знаю ни о каких других определенных сторонних сценариях установки, которые могут также выполниться rpm команды как способ обнаружить тип распределения, но это, конечно, возможно. Например, можно хотеть установить LargeProprietaryProgram от Initech, и сделать так Вы работаете install.sh сценарий как корень. Этот сценарий может попытаться запросить базу данных об/мин, чтобы видеть, выполняете ли Вы основанное на об/мин распределение, и /root/.rpmdb создается снова.

Таким образом, это объясняет, почему можно видеть /home/user/.rpmdb и /root/.rpmdb каталоги обнаруживаются в Вашей системе. Но почему в системном корневом каталоге?

Почему .rpmdb создается в корневом каталоге?

Самое легкое объяснение этого состоит в том что $HOME переменная среды сброшена так или иначе в некотором контексте процесса, который работает rpm. Давайте использовать DKMS ради аргумента, потому что мы окончательно знаем, что он может работать rpm команды. Поскольку это обычно работает, когда пакеты установлены или обновлены, это работает в среде любого диспетчера пакетов, который Вы, оказывается, используете. Если Вы используете sudo apt-get для установки пакетов это наследует корректное $HOME. При использовании PackageKit он не может иметь a $HOME переменная вообще. Я не уверен, какая среда обеспечивается Центром программного обеспечения Ubuntu или Синаптическим.

Таким образом, если DKMS работает в среде, которая не имеет a $HOME переменная, и из-за способа, которым база данных об/мин была определена, пустая база данных об/мин, будет создана в /.rpmdb вместо /root/.rpmdb. Это было зафиксировано в rpm пакет для Ubuntu в 14,10 версиях разработки, таким образом, это должно теперь создать /root/.rpmdb даже если $HOME не определяется.

Я надеюсь, что это объясняет, почему существуют названные каталоги .rpmdb вообще в системе Ubuntu, почему они могут быть созданы по-видимому автоматически, и почему можно быть создан в корневом каталоге под правильным набором условий. Это - ничто для волнения о, нет ничего злонамеренного в существовании этого каталога, и это может просто быть удалено, если его присутствие оскорбительное к сканерам безопасности или эстетике.

11
ответ дан 23 November 2019 в 02:37

Другие вопросы по тегам:

Похожие вопросы: