Использование Yum для установки пакетов только для моего пользователя


23

Я хотел бы иметь возможность устанавливать пакеты с помощью менеджера пакетов (Yum доступен на моем сервере), но у меня нет доступа с правами root. Технически мне не нужен root-доступ, я просто хочу, чтобы пакеты устанавливались в моем домашнем каталоге.

Есть ли способ, которым я могу сделать это?

Ответы:


9

Как указывает Игнасио, вы можете использовать yumdownloader.

Но для второго шага

rpm -ivh --relocate /usr=/home/username/usr --relocate /etc=/home/username/etc

или

rpm -ivh --relocate /=/home/username/progname

наверное проще.

Если в RPM есть какие-либо сценарии, предполагающие, что они выполняются от имени пользователя root, вам также может понадобиться добавить эту --noscriptsопцию.

Плюс вы можете добавить --aidопцию для разрешения зависимостей.

Еще одна полезная опция в этом случае - --rootизбегать rpm для записи в /varпуть (так как вы не root), поэтому команда будет выглядеть примерно так:

rpm -ivh --relocate /=/home/username/progname --root /home/username/progname

1
Обратите внимание на следующее руководство от Fedora : «Использование средства RPM для создания перемещаемых пакетов настоятельно не рекомендуется. Трудно сделать работу должным образом, невозможно использовать из установщика или из yum, и, как правило, не требуется, если другие рекомендации по упаковке Однако в маловероятном случае, если у вас есть веская причина для перемещения пакета, вы ДОЛЖНЫ указать это намерение и обоснование в запросе на проверку пакета. "
Кристиан Чиупиту

Ну, хорошо, хорошо. Первый вариант с relocate не сработал, потому что ему нужен доступ к / var от имени root. Второй вариант не сработал, потому что, кажется, для этого вам нужен root-доступ. Я получаю следующее сообщение об ошибке: error: Невозможно изменить корневой каталог: операция не разрешена
Sylvain

11

Не используя ням. Однако вы можете использовать их yumdownloader, а затем пропустить пакеты rpm2cpio ... | cpio -id, чтобы извлечь их содержимое, а затем поместить файлы в соответствующие места.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.