Пользовательская локальная система управления пакетами


10

Мне нужно развертывать, управлять и запускать программное обеспечение в качестве непривилегированного пользователя в SuSE (то есть, без корневого доступа, не могу использовать управление пакетами системы и т. Д.).

Какие у меня варианты?

Я бы предпочел повторно использовать менеджер пакетов системы (YaST), настроив отдельный локальный репозиторий пользователей. Второй лучший выбор - это отдельная система управления пакетами, которая поддерживает локальные пользовательские репозитории. Предпочтительно он также будет поддерживать обновления в стиле push (в отличие от pull).


Канонический вопрос, который я искал, но не нашел до тех пор, пока я не получил награду за этот. - Менеджеры не-корневых пакетов
Петр Доброгост

Я думаю, что нечего сказать об этом, кроме того, что было сказано. Существуют различные возможные методологии установки программного обеспечения от имени пользователя без полномочий root, но формальных систем не существует, поэтому нет канонического ответа. Хотя это может показаться «очень интересным и важным» вопросом, вероятно, это так только для небольшого меньшинства пользователей, которые испытывают серьезную потребность в такой вещи, что, учитывая потенциально колоссальный объем работы и головную боль, помогает объяснить, почему этого не произошло
Златовласка

Ответы:


7

Хорошо для Gentoo есть проект Gentoo Prefix, который позволяет вам устанавливать пакеты куда-либо, кроме /. Портедж Gentoo Package Manager написан на Python и очень переносим, ​​поэтому вы можете легко настроить новое дерево для пользователя, к которому у этого пользователя есть полный доступ, ничего не нарушая.

Две проблемы, которые я вижу:

  1. Вероятно, вам придется скомпилировать много вещей или собрать двоичные пакеты для своих пользователей таким образом, и вам, вероятно, придется устанавливать много вещей дважды, чтобы префикс работал правильно (я думаю, что будет сложно собрать вещи). против вас уже установлены пакеты таким образом)

  2. У тебя не было бы пуш-сервиса.

Другой подход, который я вижу, состоит в том, чтобы предложить набор файлов tar.gz, которые в основном представляют собой пользовательские пакеты из вашего дистрибутива, пропатченные для использования другого префикса: допустим, вы создаете каталог «Library» в каждом пользовательском каталоге и добавляете «~ / Library / usr / bin "для каждого пути пользователя может быть создан простой менеджер пакетов, чтобы позаботиться об установках (вы также можете посмотреть на pacman Arch Linux, так как в основном это просто файлы .tar.gz и зависимости).


1
Но он не использует Gentoo, он на SuSE. Так как это поможет?
ire_and_curses

Как сказал ire_and_curses, это для Gentoo, а не SuSE. Я бы понизил голос, но я только в 123 повторениях (требуется 125, чтобы понизить ..)
JamesTheAwesomeDude

3
Префикс Gentoo также может быть установлен на SUSE.
zjhui

3
Хотя это не специфический для SuSE ответ, нет конкретного ответа для SuSE , поэтому тот, кто абсолютно должен иметь систему Linux, способную сделать это, может быть заинтересован в том, чтобы знать, что на самом деле доступно. «Альтернативы» вряд ли являются неуместными или касательными, если они фактически являются единственной возможностью . + 1
Златовласка

0

Используйте менеджер привилегированных пользователей [licensed :(], и вы можете запускать команды, которым нужен доступ суперпользователя как обычного пользователя. Все отслеживается и проверяется


2
Здравствуй! Может кто-нибудь подробнее остановиться на этом ...? Может ли пользователь нормально работать с Linux (получать пакеты, устанавливать, компилировать и т. Д.) В ограниченной сетевой среде (то есть без доступа к настройкам локального / удаленного прокси-сервера и т. Д.)?
Никос Александрис

0

Вы можете разрешить все zypper family commandдля вашего пользователя в /etc/sudoers file.


Не могли бы вы быть немного точнее? Как вы это делаете, какие меры предосторожности должны быть приняты, какие-либо риски?
vonbrand

zypperтакая команда, как apt-get в Debian или yumRedHat-base дистрибутиве. Таким образом, вы можете:, youruser ALL = NOPASSWD: /usr/sbin/zypperтогда вам не нужны права root и ваш пароль.
PersianGulf

Когда вы указываете команды, вы не рискуете.
PersianGulf

1
Конечно, нет риска. Не то, чтобы любой случайный пользователь, который может устанавливать / удалять пакеты, мог по-королевски испортить систему.
vonbrand

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