Назад | Перейти на главную страницу

об / мин без рута

Можно ли использовать 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 может быть установлен локально без доступа суперпользователя при соблюдении двух условий:

  1. Пакет изначально создавался для перемещения
  2. Двоичный файл '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