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

Каждый раз, когда я читаю советы по установке SDK, IDE, некоторого расширения и т. д., он говорит, что я должен распаковать их в /opt. Зачем мне это нужно?

Когда я устанавливал Ubuntu, я читал, что я должен установить только 10-20 GiB для файловой системы / и оставшегося свободного места для /home. Так что я должен расширить пространство для корневой папки или оставить все содержимое в /home? Есть ли разница?

14 голосов | спросил Praytic 19 Jpm1000000pmTue, 19 Jan 2016 17:08:55 +030016 2016, 17:08:55

5 ответов


19

Сначала поймите, что любой каталог, который явно не является точкой монтирования для отдельного раздела (или подкаталога такой точки монтирования), сохраняется в корне (/). Таким образом, если у вас есть root (/) и /home, и никаких других разделов, ваш каталог /opt - это просто каталог с правами root (/). Аналогично для /tmp, /sbin и что угодно остальное. Таким образом, исходный вопрос основан на ложной предпосылке, что вам нужны отдельные разделы для каждой директории, которая ведет к корню (/), и поэтому на него нельзя ответить напрямую.

Во-вторых, /opt используется для стороннего программного обеспечения, которое в контексте Ubuntu означает предварительно скомпилированное программное обеспечение, которое не распространяется через Debian. Иногда вы увидите официальную документацию по программе, которая ссылается на /opt, но доступны пакеты Debian, которые удаляют эти файлы в другом месте. В таких случаях вы должны игнорировать официальную документацию или, по крайней мере, игнорировать ее ссылки на местоположение файла, когда используете пакет Debian. Кроме того, если у вас есть выбор использования предварительно скомпилированного пакета через tarball или пакет Debian, лучше всего использовать пакет Debian. В общем, использование /opt довольно редко в наши дни. Если вы все еще думаете, что вам нужно поместить файлы в /opt, вам может показаться, что вы назвали программное обеспечение, так как люди здесь могут знать, является ли Debian пакет доступен для этого программного обеспечения.

Наконец, комбинируя две предыдущие точки, очень редко для установок Ubuntu разделять /opt на отдельный раздел, потому что это редкость для значительные объемы данных, которые будут храниться там. Большинство программ Ubuntu входят в /usr и в других местах. Когда-то было принято разделять /usr на отдельный раздел, но эта практика довольно редка сегодня. Если вам действительно нужно установить много программного обеспечения в /opt, тогда для него создается отдельный раздел may иметь смысл - но во многих случаях это не будет действительно полезно. Отдельные разделы имеют смысл, если вам нужно обращаться с безопасностью по-разному, если будут полезны разные функции файловой системы, чтобы обмениваться данными между несколькими установками ОС в конфигурации с несколькими загрузками и по другим причинам. Обычная установка программного обеспечения вряд ли принесет пользу из отдельного раздела; на самом деле создание отдельного раздела для /opt может вызвать проблемы, если размер, потребляемый программным обеспечением, хранящимся там, изменяется или если вы получаете оценку размера неправильно.

ответил Rod Smith 19 Jpm1000000pmTue, 19 Jan 2016 19:54:58 +030016 2016, 19:54:58
8

Вы?

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

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

  

1,13. /Неавтоматического

     

Этот каталог зарезервирован для всего программного обеспечения и дополнительных пакетов, которые не являются частью стандартной установки. Например, здесь можно найти пакеты 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 & 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 /package. Действительная причина для отклонения от этой структуры - это пакеты поддержки, которые могут иметь файлы, установленные в /opt /'provider' /lib или /opt /'provider' /bin.

ответил Torrien 19 Jpm1000000pmTue, 19 Jan 2016 17:15:22 +030016 2016, 17:15:22
4

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

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

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

  

/opt: дополнительные пакеты прикладных программ

     

Цель

     

/opt зарезервирован для установки дополнительного программного обеспечения   пакеты.

     

Пакет, который должен быть установлен в /opt, должен найти его статические файлы в   отдельный /opt /<package> или /opt /<provider> дерево каталогов, где   & Lt; & пакет GT; это имя, которое описывает пакет программного обеспечения и <поставщик>   является зарегистрированным именем LANANA провайдера.

     

Требования

     

Каталоги /opt /bin, /opt /doc, /opt /include, /opt /info, /opt /lib,   и /opt /man зарезервированы для использования локальным системным администратором. пакеты   могут предоставлять файлы «front-end», предназначенные для размещения (путем связывания или   копирование) этих зарезервированных каталогов локальным системным администратором,   но должны нормально функционировать в отсутствие этих зарезервированных   каталоги.

     

Программы, вызываемые пользователями, должны быть расположены в каталоге   /opt /<package> /bin или под /opt /<provider> иерархия. Если   пакет включает страницы руководства UNIX, они должны быть расположены в   /opt /<package> /share /man или под /opt /<provider> иерархии и   необходимо использовать ту же субструктуру, что и /usr /share /man.

     

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

     

Файлы конфигурации, специфичные для хоста, должны быть установлены в /etc /opt. Увидеть   раздел в /etc для получения дополнительной информации.

     

Никакие другие файлы пакетов не могут существовать вне /opt, /var /opt и   /etc /opt, за исключением тех файлов пакетов, которые должны находиться   в определенных местах в дереве файловой системы, чтобы функционировать   должным образом. Например, файлы блокировки устройства должны быть помещены в /var /lock   и устройства должны быть расположены в /dev.

     

Распространения могут устанавливать программное обеспечение в /opt, но не должны изменять или   удалить программное обеспечение, установленное локальным системным администратором, без   согласие местного администратора системы.

     

Обоснование

     

Использование /opt для дополнительного программного обеспечения - это хорошо зарекомендовавшая себя практика в   сообщество UNIX. Бинарный интерфейс приложения System V [AT & T   1990], на основе определения интерфейса системы V (третье издание),   обеспечивает структуру /opt, очень похожую на ту, которая определена здесь.

     

Стандарт Intel Binary Compatibility Standard v. 2 (iBCS2) также обеспечивает   аналогичная структура для /opt.

     

Как правило, все данные, необходимые для поддержки пакета в системе, должны быть   присутствовать в /opt /<package & gt ;,включая файлы, предназначенные для копирования   в /etc /opt /<package> и /var /opt /<package> а также зарезервировано   каталогов в /opt.

     

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

     

Структура каталогов ниже /opt /<provider> до   упаковщик программного обеспечения, хотя рекомендуется, чтобы пакеты   устанавливаются в /opt /<provider> /<package> и следуют аналогичным   структура к руководящим принципам для /opt /package. Действительная причина для   расходящаяся от этой структуры, предназначена для пакетов поддержки, которые могут иметь   файлы, установленные в /opt /<provider> /lib или /opt /<provider> /bin.

ответил bain 19 Jpm1000000pmTue, 19 Jan 2016 20:40:13 +030016 2016, 20:40:13
3

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

ответил fkraiem 19 Jpm1000000pmTue, 19 Jan 2016 17:18:27 +030016 2016, 17:18:27
2

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

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

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

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

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

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

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

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

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

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

ответил Joe 21 Jam1000000amThu, 21 Jan 2016 00:37:15 +030016 2016, 00:37:15

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132