Установка пакета .deb в домашний каталог

31

Можно ли .debполностью установить пакет в моем домашнем каталоге на Debian?

free_easy
источник
Вы можете создать пакет deb, который можно установить где угодно. Но почему вы хотите? Пакеты должны быть установлены в систему.
Фахим Митха
5
@Faheem Mitha - У нас у всех нет root-прав на наши Unix-блоки, я точно не знаю, где я работаю. Если нам нужен пакет (в моем случае RPM) для использования некоторой части программного обеспечения, было бы неплохо, если бы мы могли установить его в пространстве пользователя, а не разговаривать с ИТ-специалистом и заставлять его устанавливать пакет в системе для нас.
Марк Бут
@FaheemMitha Еще одна вещь - тестирование новой версии пакета. Если я хочу сделать определенный пакет доступным только одному пользователю, я не буду устанавливать его в масштабе всей системы.
Эратиэль
@Erathiel Ну, это действительно случай использования для виртуальной машины.
Фахим Митха
@FaheemMitha Может быть, а может и нет;) Моим примером использования была машина разработки с несколькими пользователями, выполняющими функции среды разработки. Мне нужно было переместить пакет в новую версию только для одного конкретного пользователя, чтобы мы могли проверить, как ведет себя новая версия. Но сервер сам по себе является виртуальной машиной, так что вы отчасти правы;)
Erathiel

Ответы:

19

Это зависит от того, что вы подразумеваете под «установкой». Можно извлечь содержимое файла .deb с помощью dpkg-deb -x <filename.deb>, но можно ли использовать программное обеспечение после его локального извлечения, зависит от того, как оно написано. Многие программы Linux ожидают найти свои файлы ресурсов в стандартных местах, указанных во время компиляции, таких как /usr/shareили /usr/lib, что приведет к сбою, если программное обеспечение не установлено в обычном месте. Также любые общесистемные файлы конфигурации, установленные пакетом, такие как .desktopфайлы, которые создают записи в меню «Пуск», не будут работать должным образом, если они установлены в неправильном месте.


источник
3
это должно бытьdpkg-deb -x app.deb /path/to/target/dir/
Qed
или просто dpkg -x app.deb / path / to / target / dir /
Эрик Аронесты
5

Спасибо за все ваши комментарии и ответы. Это был пакет программного обеспечения, в котором я хотел бы провести некоторые базовые проверки правильности упаковки. Я являюсь пользователем root на моем компьютере, но не хотел бы делать там реальную установку и не хотел бы сейчас использовать виртуальный образ. Я пришел с этим решением: https://serverfault.com/questions/23734/is-there-any-way-to-get-apt-to-install-packages-to-my-home-directory, который отлично работает для я атм.

free_easy
источник
5
@ Ивогель спрашивает: «На странице, на которую вы ссылаетесь, много постов, и я не могу сказать, какое из них подходит вам. Не могли бы вы уточнить?»
DRS
4

Обратите внимание, что использование системы пакетов Debian требует root-доступа. Таким образом, для установки пакета deb в домашний каталог пользователя требуется доступ с правами root. Если у вас есть root-доступ, тогда имеет смысл просто установить систему как обычно.

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

Фахим Митха
источник
Я не знаю, был ли он добавлен после того, как этот ответ был создан, но в dpkg есть опция --force-non-root, которую можно использовать, чтобы обойти это.
Брюс Адамс
@BruceAdams Я не вижу эту опцию в справочной странице. Можете ли вы предоставить ссылку?
Фахим Митха
Если вы запускаете dpkg --help, это упоминает --force-thing. Если вы запустите dpkg --force-help, он даст больше подробностей. См., Например, askubuntu.com/questions/193695/…
Брюс Адамс
@BruceAdams Хорошо, я вижу это, но я понятия не имею, как это будет работать not-root Try to (de)install things even when not root.
Фахим Митха
См. Мой вопрос stackoverflow.com/questions/47099045/… Однако на момент написания этого вопроса еще не было ответа. Так что я тоже понятия не имею.
Брюс Адамс