Иногда я устанавливаю приложения вручную, а не с помощью apt
или другого менеджера пакетов.
В каком месте (/usr/
, /usr/local/
, /opt/
, /home/
и т. Д.) Предлагаются «лучшие практики» для установки пользовательских приложений?
Это зависит, на самом деле. Если у приложения есть makefile, или, например, для python-приложений, если приложение использует distutils (например, имеет файл setup.py
), или аналогичную систему сборки/установки, то вы должны установить его в /usr/local/
. Часто это поведение по умолчанию.
Насколько я понимаю, /usr/local/
имеет иерархию, похожую на /usr/
. Однако, такие каталоги как /usr/bin/
и /usr/lib/
обычно зарезервированы для пакетов, устанавливаемых через apt
. Поэтому программа, ожидающая "install" в /usr/
, должна хорошо работать в /usr/local/
.
Если вам просто нужно извлечь тарбол и запустить его напрямую (например, Firefox), то поместите его в /opt/
. Программа, которой нужен только один каталог и которая получит все файлы/библиотеки относительно этого каталога, может получить для себя один каталог в /opt/
.
Следует помнить, что / usr
обозначает не пользователя , а скорее системные ресурсы unix .
Таким образом, я склонен полагать, что любой дистрибутив имеет право перебирать все содержимое / usr,
, а также то, что мои конкретные дополнения к системе находятся в / usr / local
, которые я сохраняю перед выполнением обновления.
Между тем приложения и другие вещи находятся в / opt
.
Некоторые люди чувствуют себя комфортно, помещая что-то в / home
, хотя я редко следую этому соглашению.
Все, что сказано , Я позволяю диспетчеру пакетов распространения делать все по своему усмотрению, а затем делаю то же самое при раскладке вручную.
Стандарт иерархии файловой системы Linux указывает /usr/local
.
С http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:
Первоначальная идея '/usr/local' должна была иметь отдельный ('локальный') каталог '/usr' на каждой машине кроме '/usr', который может быть просто установленная только для чтения откуда-нибудь еще. Он копирует структуру "/usr". В наши дни, '/usr/local' считается хорошим местом в которые сохраняют самокомпилирующиеся или сторонние программы. /usr/local иерархия предназначена для использования системным администратором при установке программное обеспечение на месте. Она должна быть защищена от перезаписи, когда системное программное обеспечение обновлено. Оно может быть использовано для программ и данных, которые являются общими для группы хостов, но не найдены в /usr. Локально установленное программное обеспечение должно быть помещено в /usr/local, а не в /usr если он не устанавливается для замены или обновления программного обеспечения в /usr.
Установка нестабильных программ, таких как 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
Имя папки должно быть тем, где находится исполняемый файл, который вам нужно запустить.
Обычно у меня дома есть папка с именем "Программы", в которую я устанавливаю эти программы, достаточно странно (или нет), что это все java-файлы прямо сейчас.
У этого есть одно большое преимущество для меня, когда я переустанавливаю или меняю компьютеры, которые они перемещаются вместе с остальной частью моего дома. У этого есть явный недостаток, эти приложения доступны только моему пользователю.
Используйте "checkinstall" для преобразования вашего чужого пакета в deb так, чтобы его можно было удалить с помощью менеджера пакетов.
Обратите внимание, что конфигурационные файлы часто не обрабатываются как конфигурационные файлы (возможно, их игнорируют или рассматривают как часть приложения), и что скрипты перед и после установки иногда бывают запутанными, хотя обычно он предупреждает, когда думает, что у deb будет плохой скрипт перед или после установки.