Где при установке пользовательских приложений "лучшие практики" предполагают их нахождение?
Иногда я устанавливаю приложения вручную, а не используя apt
или другой менеджер пакетов.
В каком месте (/usr/
, /usr/local/
, /opt/
, /home/
и т. д.) предлагается "лучшие практики" для установки пользовательских приложений?
6 ответов
Это зависит, действительно. Если приложение имеет make-файл или, например, для приложений на Python, если приложение использует distutils (например, имеет setup.py
файл), или аналогичная система сборки / установки, вы должны установить ее в /usr/local/
, Это часто - поведение по умолчанию.
Из того, что я понимаю, /usr/local/
имеет иерархию, которая похожа на /usr/
, Тем не менее, каталоги, как /usr/bin/
а также /usr/lib/
обычно зарезервированы для установки пакетов через apt
, Таким образом, программа ожидает "установки" в /usr/
должно нормально работать в /usr/local/
,
Если вам просто нужно извлечь tarball и запустить его напрямую (например, Firefox), поместите его в /opt/
, Программа, которая нуждается только в одном каталоге и получит все файлы / библиотеки, относящиеся к этому каталогу, может получить один каталог для себя в /opt/
,
Это хорошо помнить, что /usr
не означает пользовательские, а скорее системные ресурсы unix.
Таким образом, я склонен считать, что любой дистрибутив имеет право растоптать содержимое /usr,
и что мои конкретные дополнения к системе идут в /usr/local
, который я сохраняю перед обновлением.
Между тем, приложения и другие вещи идут в /opt
,
Некоторые люди чувствуют себя комфортно /home
хотя я редко следую этому соглашению.
После всего этого я позволил менеджеру дистрибутива сначала делать что-то по-своему, а затем, когда выполнял ручную работу, делал то же самое.
Установите нестабильные программы, такие как firefox devel, в / home / user / opt /, чтобы их было легче удалить, и у других пользователей не возникнет путаницы в отношении того, какую версию им следует использовать... Так что, если это не программа для глобального использования, установите это в подпапке в вашем домашнем каталоге.
Никогда не устанавливайте программы в / usr /, это может вызвать хаос, вещи, установленные в / usr /, предназначены только для дистрибутивных пакетов. / usr / local / предназначен для локально скомпилированных пакетов. И структура работает точно так же! файлы в / usr / local / будут иметь приоритет над файлами в / usr /
/ opt / следует использовать для установки предварительно скомпилированных (двоичных) пакетов (Thunderbird, Eclipse, Netbeans, IBM NetSphere и т. д.) и тому подобное. Но если они предназначены только для одного пользователя, они должны быть помещены в ваш домашний каталог.
Если вы хотите иметь возможность запускать программу, установленную в "странном" месте (например, / home / user / opt / firefox /) без ввода полного пути, вам нужно добавить ее в переменную $PATH, вы можете сделать это следующим образом: добавив такую строку в ваш /home/user/.profile
export PATH=/home/user/opt/firefox:$PATH
Имя папки должно быть тем, где находится исполняемый файл, который вам нужно запустить.
Стандарт иерархии файловой системы Linux указывает /usr/local
,
От http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:
Первоначально идея "/ usr / local" заключалась в том, чтобы на каждой машине был отдельный каталог ("local") "/ usr", кроме "/ usr", который мог быть просто смонтирован только для чтения откуда-то еще. Он копирует структуру / usr. В наши дни "/ usr / local" широко рассматривается как хорошее место для хранения самостоятельно скомпилированных или сторонних программ. Иерархия / usr / local предназначена для использования системным администратором при локальной установке программного обеспечения. Он должен быть защищен от перезаписи при обновлении системного программного обеспечения. Он может использоваться для программ и данных, которые являются общими для группы хостов, но не найдены в / usr. Локально установленное программное обеспечение должно быть размещено в / usr / local, а не / usr, если оно не устанавливается для замены или обновления программного обеспечения в / usr.
У меня обычно есть папка с именем "Программы" в моем доме, где я устанавливаю эти программы, как ни странно (или нет), все они прямо сейчас java.
У меня есть одно большое преимущество, когда я переустанавливаю или меняю компьютеры, они перемещаются вместе с остальной частью моего дома. У него есть явный недостаток, эти приложения доступны только моему пользователю.
Используйте "checkinstall", чтобы преобразовать ваш инопланетный пакет в deb, чтобы его можно было удалить с помощью менеджера пакетов.
Обратите внимание, что файлы конфигурации часто не обрабатываются как файлы конфигурации (возможно, игнорируются или, возможно, рассматриваются как часть приложения), и что сценарии до и после установки иногда путаются, хотя обычно они предупреждают вас, когда считают, что У deb будет плохой сценарий до или после установки.