При установке пользовательских приложений, где & ldquo; лучшие практики & rdquo; предложить их найти?

Иногда я устанавливаю приложения вручную, а не с помощью apt или другого менеджера пакетов.

В каком месте (/usr/, /usr/local/, /opt/, /home/ и т. Д.) Предлагаются «лучшие практики» для установки пользовательских приложений?

241
задан 26 April 2017 в 20:58

6 ответов

Это зависит, на самом деле. Если у приложения есть makefile, или, например, для python-приложений, если приложение использует distutils (например, имеет файл setup.py), или аналогичную систему сборки/установки, то вы должны установить его в /usr/local/. Часто это поведение по умолчанию.

Насколько я понимаю, /usr/local/ имеет иерархию, похожую на /usr/. Однако, такие каталоги как /usr/bin/ и /usr/lib/ обычно зарезервированы для пакетов, устанавливаемых через apt. Поэтому программа, ожидающая "install" в /usr/, должна хорошо работать в /usr/local/.

Если вам просто нужно извлечь тарбол и запустить его напрямую (например, Firefox), то поместите его в /opt/. Программа, которой нужен только один каталог и которая получит все файлы/библиотеки относительно этого каталога, может получить для себя один каталог в /opt/.

205
ответ дан 26 April 2017 в 20:58

Следует помнить, что / usr обозначает не пользователя , а скорее системные ресурсы unix .

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

Между тем приложения и другие вещи находятся в / opt .

Некоторые люди чувствуют себя комфортно, помещая что-то в / home , хотя я редко следую этому соглашению.

Все, что сказано , Я позволяю диспетчеру пакетов распространения делать все по своему усмотрению, а затем делаю то же самое при раскладке вручную.

130
ответ дан 26 April 2017 в 20:58

Стандарт иерархии файловой системы 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.

29
ответ дан 26 April 2017 в 20:58

Установка нестабильных программ, таких как 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

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

36
ответ дан 26 April 2017 в 20:58

Обычно у меня дома есть папка с именем "Программы", в которую я устанавливаю эти программы, достаточно странно (или нет), что это все java-файлы прямо сейчас.

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

7
ответ дан 26 April 2017 в 20:58

Используйте "checkinstall" для преобразования вашего чужого пакета в deb так, чтобы его можно было удалить с помощью менеджера пакетов.

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

1
ответ дан 26 April 2017 в 20:58

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

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