Можно ли использовать rpm без рут-доступа?
Есть много ответов, предлагающих перемещаемые пакеты. Параметр перемещения предназначен для администраторов, чтобы выбрать место назначения (например, сделать местом назначения / opt вместо / usr / local) и не на самом деле для прав пользователей.
Хотя с помощью этого метода можно обойти некоторые проблемы с разрешениями, ГЛАВНАЯ проблема заключается в том, что при выполнении операций rpm он изменяет базы данных /var/lib/rpm/__db.*, принадлежащие root: root. Итак, как сказал JPerkSter: «короткий ответ = нет». Настройка sudo для удовлетворения конкретных потребностей, вероятно, будет лучшим выбором.
Учитывая все вышесказанное, относительно перемещаемых сборок, вы можете попробовать следовать перечисленным инструкциям. Вот.
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
Спецификация RPM содержит параметр, называемый «перемещаемый». Если rpm создан с включенной возможностью перемещения, он может быть установлен в указанную пользователем директорию с помощью параметра --prefix. Таким образом, предположительно, rpm может быть установлен локально без доступа суперпользователя при соблюдении двух условий:
Но, в общем, нет, вам нужен доступ суперпользователя для установки RPM. Хотя существует возможность перемещения, я почти никогда не видел пакета, который был бы создан для ее поддержки.
Некоторые пакеты можно перемещать, поэтому они могут нормально работать без root, просто укажите префикс при его установке: rpm -i my.rpm --prefix = / my / home / folder
Если пакет невозможно переместить, вы все равно можете извлечь файлы из RPM и попытаться запустить его. Вы можете извлечь файлы RPM, например, используя:
Скопируйте файлы в папку ~ /, добавьте дополнительные библиотеки зависимостей и надейтесь на лучшее. Не гарантируется, но вы можете получить некоторые неперемещаемые пакеты, работающие таким образом.
В зависимости от содержимого пакета вы можете просто извлечь содержимое об / мин и использовать его откуда-нибудь из домашнего каталога. Даже если он не отмечен как перемещаемый. Если двоичные файлы в пакете имеют жестко запрограммированные пути или если приложению требуется root-доступ, это может быть невозможно.
Вы можете принудительно установить его в другой каталог, используя другой путь к базе данных. Также вам, вероятно, не следует запускать скрипты напрямую, не проверяя их.
Это поместит rpm в текущий каталог и извлечет сценарии, чтобы вы могли редактировать и запускать их при необходимости.
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
Да, но вы можете не захотеть. Я использовал настраиваемые манифесты марионеток и пакеты rpm для поддержки программного обеспечения на вычислительных кластерах, к которым у меня не было доступа root. Теоретически это так просто, как
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
Однако в том, как это ведет себя в EL4, EL5 и EL6, есть свои особенности, поэтому для каждого из них потребуется свой набор шагов и параметров. У меня больше нет этой информации под рукой. Эти причуды, а также частые проблемы с базой данных RPM (возможно, из-за NFS) заставили меня пожалеть об использовании rpm.
Вы можете создавать RPM без корневого доступа, просто сделайте это в своем домашнем каталоге. Что касается установки RPM, я бы сказал короткий ответ = нет.
нет, это невозможно без доступа root, su или sudo