Почему я должен переместить все в / opt?

В Ubuntu 14.04 после выполнения принятого ответа отредактируйте /etc/apache2/conf-available/php5-fpm.conf

<IfModule mod_fastcgi.c>
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
</IfModule>

Затем выполните

#sudo a2enconf php5-fpm
#sudo apache2 restart
1
задан 3 December 2017 в 20:26

4 ответа

Вы?

Дело в том, что вам не нужно это делать. Использование /opt - это соглашение. Я бы рекомендовал использовать его, но это не является строго необходимым.

Из иерархии файловых систем Linux: Глава 1. Иерархия файловых систем Linux:

1.13. / opt Этот каталог зарезервирован для всего программного обеспечения и дополнительных пакетов, которые не являются частью стандартной установки. Например, здесь можно найти пакеты StarOffice, Kylix, Netscape Communicator и WordPerfect. Чтобы соответствовать FSSTND, все сторонние приложения должны быть установлены в этом каталоге. Любой пакет, который должен быть установлен здесь, должен находить свои статические файлы (например, дополнительные шрифты, клипарт, файлы базы данных), должен находить свои статические файлы в отдельном дереве каталогов / opt / 'package' или / opt / 'provider' (аналогично тому, как это делается в котором Windows будет устанавливать новое программное обеспечение в свое собственное дерево каталогов. C: \ Windows \ Progam Files \ «Название программы»), где «package» - это имя, которое описывает пакет программного обеспечения, а «поставщик» - это зарегистрированное имя LANANA провайдера. Хотя большинство дистрибутивов пренебрегают созданием каталогов / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib и / opt / man, они зарезервированы для использования локальным системным администратором. Пакеты могут предоставлять «интерфейсные» файлы, предназначенные для размещения (путем связывания или копирования) этих зарезервированных каталогов системным администратором, но должны нормально функционировать при отсутствии этих зарезервированных каталогов. Программы, вызываемые пользователями, находятся в каталоге / opt / 'package' / bin. Если пакет включает страницы руководства UNIX, они расположены в / opt / 'package' / man и должны использоваться те же подструктуры, что и / usr / share / man. Пакетные файлы, которые являются переменными, должны быть установлены в / var / opt. Конфигурационные файлы, специфичные для хоста, устанавливаются в / etc / opt. Ни при каких обстоятельствах другие файлы пакетов не существуют за пределами иерархии / opt, / var / opt и / etc / opt, за исключением тех файлов пакетов, которые должны находиться в определенных местах в дереве файловой системы для правильной работы. Например, файлы блокировки устройства в / var / lock и устройства в / dev. Распределения могут устанавливать программное обеспечение в / opt, но не должны изменять или удалять программное обеспечение, установленное локальным системным администратором, без согласия местного системного администратора. Использование / opt для дополнительного программного обеспечения - это хорошо зарекомендовавшая себя практика в сообществе UNIX. Бинарный интерфейс прикладного программного обеспечения System V [AT & amp; T 1990], основанный на определении интерфейса системы V (третье издание) и стандарте Intel Binary Compatibility Standard v. 2 (iBCS2), обеспечивает структуру / opt, очень похожую на ту, которая определена здесь. Как правило, все данные, необходимые для поддержки пакета в системе, должны присутствовать в / opt / 'package', включая файлы, предназначенные для копирования в / etc / opt / 'package' и / var / opt / 'package', а также зарезервированные каталоги в / opt. Меньшие ограничения на распределение с использованием / opt необходимы, поскольку возможны конфликты между установленным дистрибутивом и локально установленным программным обеспечением, особенно в случае фиксированных путей, найденных в некоторых двоичных программах. Структура каталогов ниже / opt / 'provider' оставлена ​​до упаковщика программного обеспечения, хотя рекомендуется установить пакеты в / opt / 'provider' / 'package' и следовать аналогичной структуре с рекомендациями для / опт / пакет. Действительная причина для отклонения от этой структуры - это пакеты поддержки, которые могут иметь файлы, установленные в / opt / 'provider' / lib или / opt / 'provider' / bin.
8
ответ дан 23 May 2018 в 14:11
  • 1
    Это странно, потому что большинство людей рекомендуют расстаться с небольшим пространством в корневом каталоге, и я подумал, потому что он не будет сильно изменен. Похоже, мне нужно напомнить этим советам следовать конвенциям? – Praytic 19 January 2016 в 19:53
  • 2
    @Praytic Не совсем. В прошлом /opt часто был отдельным приводом. Он будет использоваться для установки проприетарного программного обеспечения, которое часто требует больших дисковых пространств из-за объединения всех необходимых библиотек и других ресурсов. В наше время диски настолько велики, что возможно и просто использовать один корень на одном диске. – bain 19 January 2016 в 21:47

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

Основная причина использования /opt заключается в предоставлении общего стандартного пути, где внешнее программное обеспечение может быть установлено без вмешательства в остальное установленной системы. /opt не отображается в стандартных путях компилятора или компоновщика (gcc -print-search-dirs или /etc/ld.so.conf и т. д.), поэтому установленные в них заголовки и библиотеки несколько изолированы от основной системы и не должны мешать уже установленным программам.

Использование /opt задается стандартом иерархии файловой системы: / opt, который отмечает, что /opt изначально был получен из Unix.

/ opt: дополнительные программные пакеты приложений. Назначение / opt зарезервировано для установки дополнительных пакетов прикладных программ. Пакет, который должен быть установлен в / opt, должен найти свои статические файлы в отдельном / opt / & lt; package & gt; или / opt / & lt; provider & gt; дерево каталогов, где & lt; package & gt; это имя, которое описывает пакет программного обеспечения и & lt; поставщик & gt; является зарегистрированным именем LANANA провайдера. Требования. Каталоги / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib и / opt / man зарезервированы для использования локальным системным администратором. Пакеты могут предоставлять файлы «front-end», предназначенные для размещения (путем связывания или копирования) этих зарезервированных каталогов локальным системным администратором, но должны нормально функционировать при отсутствии этих зарезервированных каталогов. Программы, вызываемые пользователями, должны быть расположены в каталоге / opt / & lt; package & gt; / bin или в каталоге / opt / & lt; provider & gt; иерархия. Если пакет содержит страницы руководства UNIX, они должны быть расположены в каталоге / opt / & lt; package & gt; / share / man или в каталоге / opt / & lt; provider & gt; иерархии и той же подструктуры, что и / usr / share / man. Пакетные файлы, которые являются переменными (изменение в нормальной работе), должны быть установлены в / var / opt. Дополнительную информацию см. В разделе / ​​var / opt. Конфигурационные файлы, специфичные для хоста, должны быть установлены в / etc / opt. Дополнительную информацию см. В разделе / ​​etc. Никакие другие файлы пакетов не могут существовать вне иерархии / opt, / var / opt и / etc / opt, за исключением тех файлов пакетов, которые должны находиться в определенных местах в дереве файловой системы для правильной работы. Например, файлы блокировки устройства должны быть помещены в / var / lock, а устройства должны быть расположены в / dev. Распределения могут устанавливать программное обеспечение в / opt, но не должны изменять или удалять программное обеспечение, установленное локальным системным администратором, без согласия местного системного администратора. Обоснование Использование / opt для дополнительного программного обеспечения - это хорошо зарекомендовавшая себя практика в сообществе UNIX. Бинарный интерфейс Application V System V [AT & amp; T 1990], основанный на определении интерфейса системы V (третье издание), обеспечивает структуру / opt, очень похожую на ту, которая определена здесь. Стандарт Intel Binary Compatibility Standard v. 2 (iBCS2) также обеспечивает аналогичную структуру для / opt. Как правило, все данные, необходимые для поддержки пакета в системе, должны присутствовать в / opt / & lt; package & gt ;, включая файлы, предназначенные для копирования в / etc / opt / & lt; package & gt; и / var / opt / & lt; package & gt; а также зарезервированные каталоги в / opt. Небольшие ограничения на дистрибутивы с использованием / opt необходимы, потому что возможны конфликты между установленным дистрибутивом и локально установленным программным обеспечением, особенно в случае фиксированных путей, найденных в некотором двоичном программном обеспечении. Структура каталогов ниже / opt / & lt; provider & gt; остается до упаковщика программного обеспечения, хотя рекомендуется, чтобы пакеты были установлены в / opt / & lt; provider & gt; / & lt; package & gt; и следуйте аналогичной структуре с рекомендациями для / opt / package. Действительной причиной для отклонения от этой структуры являются пакеты поддержки, которые могут иметь файлы, установленные в / opt / & lt; provider & gt; / lib или / opt / & lt; provider / gt; / bin.
4
ответ дан 23 May 2018 в 14:11

Нет ничего святого в /opt, просто обычная практика заключается в том, чтобы поставить предварительно скомпилированное программное обеспечение, которое должно быть доступно всем пользователям системы в этом каталоге. Если вы являетесь единственным пользователем системы, нет ничего плохого в том, чтобы извлечь его в свой домашний каталог. И даже если в системе есть несколько пользователей, которым необходим доступ к этому программному обеспечению, но вы хотите использовать пространство на своем разделе /home, нет ничего плохого в создании общедоступного каталога /home/softwarename и извлечения вашего программного обеспечения там ( только caveat, если у вас есть пользователь с именем softwarename, вы не сможете использовать его в домашнем каталоге пользователя).

3
ответ дан 23 May 2018 в 14:11

Подробные ответы очень хорошие, но (помимо программного обеспечения, которое может иметь жестко закодированные абсолютные пути в нем - не лучшая практика программирования), главное, что несистемное / нераспространенное программное обеспечение не следует хранить смешанным

Помещение вещей в /opt или /usr/local сохраняет чистоту и безопасность.

В частности, ваш путь поиска программного обеспечения ($ PATH) определяет порядок поиска мест при поиске программы для определенного имени. Обычно места, такие как /opt и /usr/local, находятся ближе к концу списка.

Если вы устанавливаете пакет с программой с именем cp в нем, то порядок поиска по умолчанию, который поставляется с вашим distro найдет нормальный, потому что каталог, в котором он хранится, выполняется поиск до таких мест, как /opt.

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

Если что-то вроде этого происходит, может потребоваться некоторое время, прежде чем кто-нибудь подумает запустить команду вроде type cp (чего может быть недостаточно, чтобы показать, что что-то не так), чтобы узнать, что то, что выполняется, не то, что вы думаете. До этого момента вы застряли в «Все точно так, как должно быть в стороне от мелких деталей, что это не сработает!»

В основном это помогает избежать неожиданных событий, а также позволяет избежать ситуаций, когда обновления системы могут удалять или заменять некоторые или все ваши «настраиваемые» установленные пакеты. Или, наоборот, некоторые «настраиваемые» программы могут перезаписывать системные программы, на которые могут положиться многие другие программы или скрипты.

С административной точки зрения, смешивая «системные» и «необязательные» программы / файлы в этих местах размещает вашу систему в «неопределенном» или, по крайней мере, «двусмысленном» состоянии.

Если у вас есть проблемы с вашей системой или программой и вам нужна помощь, один из первых задаваемых вопросов «Что ты изменил?» и «Можем ли мы временно отключить некоторые из этих изменений, чтобы мы знали, что мы рассматриваем реальную проблему, а не просто симптом чего-то другого».

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

1
ответ дан 23 May 2018 в 14:11

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

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