При установке приложений через программный центр или файл DEB они обычно устанавливаются в системе для всех пользователей.
Есть ли способ установить приложение только для одного пользователя? [!d1 ]
Ну dpkg не поможет вам, поскольку это не его цель дизайна.
Единственное, что бросается в голову - это просто извлечь пакет и попытаться поместить файлы вручную в домашний каталог
. d1]
Однако это будет работать только на некоторые вещи. Множество пакетов разделено на куски (исполняемые файлы или скрипты в /usr/bin, библиотеки в /lib и другие наряды в /usr/share и т. Д.), И эти места жестко закодированы скриптами сборки. Таким образом, если вы попытаетесь втянуть что-то подобное в ~, он сломается. Вы могли бы часами раскручивать зависимости, но вы могли бы делать что-то полезное с вашим временем, например, находить лекарство от рака или поглощать какую-то красоту в мире.
Вы сделали бы намного лучше, чтобы захватить не-упакованную версию от тех, кто пишет программное обеспечение. Почти все бесплатное программное обеспечение доступно в виде сжатого архива в качестве источника, поэтому хватайте его и просто создавайте. Вы не выполняете шаг make install. Ваше приложение построено, просто поместите его туда, где вы хотите.
Я не слишком разбираюсь в этом вопросе, но, как видно из других ответов, вы можете установить пакет в другой каталог вместо / с dpkg, используя параметр --root а затем введите chroot в каталог, в который был установлен пакет (который, конечно же, может быть каталогом в домашнем каталоге пользователя).
Чтобы установить пакет для другого пользователя чем root, возможно использовать вышеупомянутый процесс с chroot вместо chroot.
Отказ от ответственности: я не пробовал это и не имел много опыта во время написания с dpkg или chroot, но из того, что я знаю об этих инструментах, этот процесс может работать.
Ссылки, которые имеют информацию, которая может быть полезна для людей, которые хотите добиться эффекта chroot без возможностей root:
Эта страница о связях привязки только для чтения (кажется, что это может быть полезно даже для людей, выполняющих «стандартные» chroot. page на serverfault.com Эти страницы о контейнерах Linux Страница man для [ f13])Теперь я немного поработал с вещами, которые касаются этой темы, и выяснил еще несколько ...
Фрагменты ( локальные блоки среды):
Эта страница о связях привязки только для чтения (кажется, что это может быть полезно даже для людей, выполняющих «стандартные» chroot Это - создайте другую иерархию файловой системы Debian внутри каталога Эта страница на serverfault.com Эта страница - вариант debian, который использует меньше места и часто используется в chroot Эти страницы о Linux Containers Эти - могут запускать исполняемые файлы других архитектур; может использоваться с некоторыми из этих инструментов, если они не поддерживают некоторые архитектуры процессоров Страница руководства для fakechroot)Полный (полные поставщики локальной среды):
Этот - Создайте еще одну иерархию файловой системы Debian внутри каталога Qemu - Запустите полный виртуальный компьютер Эта страница - Дебиан вариант, который использует меньше места и часто используется в средах chroot Страница man для fakechroot - Позволяет иметь полный корень внутри локальной среды, когда использование часто используется в chroot , которая доступна в версиях ядра Linux версии 3.8 и после.do : путем эмуляции или наличия локальных привилегий root, пакеты DEB могут быть установлены для локальной среды.
Возможно, вы можете использовать опцию --root для dpkg для установки в другой каталог. Но, вероятно, столкнется с проблемами, если приложение ищет вещи в фиксированных местах, таких как /etc.
Короче говоря, я не думаю, что есть простой способ.
Вы можете изменить права на исполняемый файл, чтобы только один пользователь мог его запустить. Затем, при необходимости, вы можете удалить приложение из меню других пользователей.
Doubtful.
Деб - это в основном архивы, которые извлекаются в корень вашей файловой системы при установке (плюс некоторая конфигурация). Если вы хотите установить их только для одного пользователя, вам нужно как-то установить их в папку / home / user. Даже если вы это сделаете, они не будут работать, как, например, f.e. бинарные файлы приложений не будут помещаться в / usr / bin (или аналогично), и система не найдет их, если вы попытаетесь запустить их. Аналогично библиотеки и т. Д. Были бы бесполезны, так как система не знала, что где-то в / home. Вы можете попробовать подход грубой силы и настроить переменную PATH, чтобы указать, где бы вы не извлекли файлы из архива deb, но это было бы не только ОЧЕНЬ небезопасно, но могло бы вызвать проблемы совместимости (элементы меню меню не будут работать , поскольку GNOME расширяет файлы .desktop, находящиеся в /usr/share/applications).
Кроме того, если вы установили пакет только для некоторых пользователей, это может вызвать проблемы с безумной зависимостью, если какой-либо другой пользователь установил пакет, который конфликтует с другим, который вы установили только для себя - и, возможно, возникнет множество других проблем, связанных с управлением пакетами.
Все эти проблемы затрудняют управление пакетами отдельно для пользователей, поэтому кажется их невозможно установить только для одного пользователя, потому что идея, лежащая в основе .debs, запрещает это.