Возможно ли использовать rpm без рут-доступа?
Возможно ли использовать rpm без рут-доступа?
Ответы:
В зависимости от содержимого пакета вы можете просто извлечь содержимое rpm и использовать его где-нибудь в вашем домашнем каталоге. Даже если он не помечен как перемещаемый. Если двоичные файлы в пакете имеют жестко заданные пути или если приложению требуется доступ с правами root, это может быть невозможно.
Есть много ответов, предлагающих перемещаемые пакеты. Параметр перемещения предназначен для администраторов, чтобы выбрать пункт назначения (например, для пункта назначения должен быть / 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 содержит опцию с именем relocatable. Если rpm построен с включенной перемещаемостью, его можно установить в каталог, указанный пользователем, используя параметр --prefix. Таким образом, предположительно rpm может быть установлен локально без доступа суперпользователя, если выполняются два условия:
Но, как правило, нет, вам нужен доступ суперпользователя для установки RPM. Несмотря на то, что существует опция relocatable, я почти никогда не видел пакет, созданный для его поддержки.
Некоторые пакеты можно перемещать, поэтому они могут нормально работать без рута, просто укажите префикс при установке: rpm -i my.rpm --prefix = / my / home / folder
Если пакет не перемещаем, вы все равно можете извлечь файлы из RPM и попробовать запустить его. Вы можете извлечь RPM-файлы, используя, например:
Скопируйте файлы в папку ~ /, добавьте дополнительные библиотеки зависимостей и надейтесь на лучшее. Не гарантировано, но вы можете получить некоторые не перемещаемые пакеты, работающие таким образом.
Вы можете принудительно установить его в другой каталог, используя другой путь dbpath. Также вам, вероятно, не следует запускать какие-либо сценарии напрямую, не проверяя их.
Это поместит rpm в текущий каталог и извлечет сценарии, чтобы вы могли редактировать и запускать их при необходимости.
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
Да, но вы можете не захотеть. Я использовал пользовательские манифесты puppet и rpm-пакеты для поддержки программного обеспечения в вычислительных кластерах, к которым у меня не было root-доступа. В теории это так же просто, как
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
Тем не менее, есть некоторые особенности в том, как это ведет себя в EL4, EL5 и EL6, поэтому вам потребуется различный набор шагов и опций для каждого из них. У меня больше нет такой информации. Эти причуды, а также частые проблемы с базой данных RPM (возможно, из-за NFS) заставили меня сожалеть об использовании rpm.
rpmкоманду без доступа sudo / root.