Как установить приложение с помощью файла DEB только для одного пользователя?

При установке приложений через программный центр или файл DEB они обычно устанавливаются в системе для всех пользователей.

Есть ли способ установить приложение только для одного пользователя? [!d1 ]

1
задан 27 April 2014 в 00:12

5 ответов

Ну dpkg не поможет вам, поскольку это не его цель дизайна.

Единственное, что бросается в голову - это просто извлечь пакет и попытаться поместить файлы вручную в домашний каталог

. d1]

Однако это будет работать только на некоторые вещи. Множество пакетов разделено на куски (исполняемые файлы или скрипты в /usr/bin, библиотеки в /lib и другие наряды в /usr/share и т. Д.), И эти места жестко закодированы скриптами сборки. Таким образом, если вы попытаетесь втянуть что-то подобное в ~, он сломается. Вы могли бы часами раскручивать зависимости, но вы могли бы делать что-то полезное с вашим временем, например, находить лекарство от рака или поглощать какую-то красоту в мире.

Вы сделали бы намного лучше, чтобы захватить не-упакованную версию от тех, кто пишет программное обеспечение. Почти все бесплатное программное обеспечение доступно в виде сжатого архива в качестве источника, поэтому хватайте его и просто создавайте. Вы не выполняете шаг make install. Ваше приложение построено, просто поместите его туда, где вы хотите.

10
ответ дан 25 May 2018 в 22:45
  • 1
    Что касается последнего варианта: мне кажется, что он может помочь в некоторых случаях (простой программе), но обычно пакет, например, устанавливает сценарии инициализации в /etc/init, ищет конфигурационные файлы в /etc или имеет некоторые другие пути жёстко. – arrange 3 March 2011 в 00:41
  • 2
    Проекты, основанные на autoconf , позволяют установить настраиваемый каталог установки через ./configure --prefix=$HOME/local. – Ingo Karkat 18 September 2012 в 00:16

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

Чтобы установить пакет для другого пользователя чем root, возможно использовать вышеупомянутый процесс с chroot вместо chroot.

Отказ от ответственности: я не пробовал это и не имел много опыта во время написания с dpkg или chroot, но из того, что я знаю об этих инструментах, этот процесс может работать.

Ссылки, которые имеют информацию, которая может быть полезна для людей, которые хотите добиться эффекта chroot без возможностей root:

Эта страница о связях привязки только для чтения (кажется, что это может быть полезно даже для людей, выполняющих «стандартные» chroot. page на serverfault.com Эти страницы о контейнерах Linux Страница man для [ f13])

Update

Теперь я немного поработал с вещами, которые касаются этой темы, и выяснил еще несколько ...

Фрагменты ( локальные блоки среды):

Эта страница о связях привязки только для чтения (кажется, что это может быть полезно даже для людей, выполняющих «стандартные» chroot Это - создайте другую иерархию файловой системы Debian внутри каталога Эта страница на serverfault.com Эта страница - вариант debian, который использует меньше места и часто используется в chroot Эти страницы о Linux Containers Эти - могут запускать исполняемые файлы других архитектур; может использоваться с некоторыми из этих инструментов, если они не поддерживают некоторые архитектуры процессоров Страница руководства для fakechroot)

Полный (полные поставщики локальной среды):

Этот - Создайте еще одну иерархию файловой системы Debian внутри каталога Qemu - Запустите полный виртуальный компьютер Эта страница - Дебиан вариант, который использует меньше места и часто используется в средах chroot Страница man для fakechroot - Позволяет иметь полный корень внутри локальной среды, когда использование часто используется в chroot , которая доступна в версиях ядра Linux версии 3.8 и после.

do : путем эмуляции или наличия локальных привилегий root, пакеты DEB могут быть установлены для локальной среды.

6
ответ дан 25 May 2018 в 22:45
  • 1
    Не стесняйтесь полностью отформатировать свой ответ, если у вас есть информация, которая противоречит вашей предыдущей информации (или если вы думаете, что она добавляет что-либо). Во многих случаях ваш ответ будет более ясным, если вы перефразируете вместо добавления дополнительных «Редактировать». или "Обновить" разделы. Ваша информация интересна, но, возможно, наиболее важные части застревают внизу. – belacqua 2 March 2011 в 09:36
  • 2
    @jgbelacqua - переформатирован, спасибо за подсказку. – Abbafei 3 March 2011 в 02:27

Возможно, вы можете использовать опцию --root для dpkg для установки в другой каталог. Но, вероятно, столкнется с проблемами, если приложение ищет вещи в фиксированных местах, таких как /etc.

Короче говоря, я не думаю, что есть простой способ.

4
ответ дан 25 May 2018 в 22:45

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

2
ответ дан 25 May 2018 в 22:45
  • 1
    Общей мотивацией для установки приложения для одного пользователя является необходимость избегать использования административных прав для установки. – ændrük 2 March 2011 в 01:04
  • 2
    @ ændrük Но если он уже устанавливает из .deb, разве мы не принимаем права администратора? – belacqua 2 March 2011 в 10:21
  • 3
    @jgbelacqua Насколько мне известно, да, установка с .deb требует прав администратора. Но, в более общем плане, установка чего-то "только для одного пользователя" никогда не должны требовать повышения до привилегий, используемых для общесистемного администрирования. Например, я часто устанавливаю программы только для себя, помещая их в ~/bin. В этом вопросе есть двусмысленность относительно того, хочет ли Takkat ограничить доступ / видимость многопользовательского приложения или хочет ли он установить однопользовательское приложение. Вопросы вашего и аранжирования используют прежнюю интерпретацию, а остальные - последние. – ændrük 2 March 2011 в 23:34

Doubtful.

Деб - это в основном архивы, которые извлекаются в корень вашей файловой системы при установке (плюс некоторая конфигурация). Если вы хотите установить их только для одного пользователя, вам нужно как-то установить их в папку / home / user. Даже если вы это сделаете, они не будут работать, как, например, f.e. бинарные файлы приложений не будут помещаться в / usr / bin (или аналогично), и система не найдет их, если вы попытаетесь запустить их. Аналогично библиотеки и т. Д. Были бы бесполезны, так как система не знала, что где-то в / home. Вы можете попробовать подход грубой силы и настроить переменную PATH, чтобы указать, где бы вы не извлекли файлы из архива deb, но это было бы не только ОЧЕНЬ небезопасно, но могло бы вызвать проблемы совместимости (элементы меню меню не будут работать , поскольку GNOME расширяет файлы .desktop, находящиеся в /usr/share/applications).

Кроме того, если вы установили пакет только для некоторых пользователей, это может вызвать проблемы с безумной зависимостью, если какой-либо другой пользователь установил пакет, который конфликтует с другим, который вы установили только для себя - и, возможно, возникнет множество других проблем, связанных с управлением пакетами.

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

1
ответ дан 25 May 2018 в 22:45

Другие вопросы по тегам:

Похожие вопросы: