70

В настоящее время я устанавливаю NetBeans, и каталог установки по умолчанию - /home/thomasowens/netbeans-6.8 . Я не фанат этого места, поэтому я смотрю на /etc , /bin , /usr/bin и /sbin . Есть ли в Linux место, которое по соглашению совпадает с каталогом C:\Program Files в Windows?

7 ответов7

94

Согласно Стандарту Иерархии Файловой системы, есть несколько мест, которые являются приемлемыми, в зависимости от приложения. Я цитирую это широко здесь.

  • bin это сокращение от "двоичный", конечно
  • sbin - это сокращение от "server binary", иначе определяется как:

    Утилиты, используемые для системного администрирования (и другие команды только для root)

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

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

Взяв их вместе:

  • /usr/bin - это основной каталог исполняемых команд в системе.
  • /usr/sbin для любых несущественных двоичных файлов, используемых исключительно системным администратором.
  • Программы системного администрирования, необходимые для восстановления системы, восстановления системы, монтирования /usr или других важных функций, должны быть вместо этого помещены в /sbin (т. Е. Все, что вам нужно для доступа к монтированию /usr/sbin в /sbin)
  • Аналогично, важные пользовательские команды, которые могут понадобиться перед монтированием /usr идут в /bin
  • Все, что установлено только на локальном компьютере, должно быть в /usr/local/bin или /usr/local/sbin

Есть еще одно использование для /usr /local. Большинство вещей, которые вы устанавливаете через менеджер пакетов вашего дистрибутива, будут помещены в /usr; многие люди помещают вещи, которые они скомпилировали вручную, в /usr /local. Это не дает им возможности работать с системой управления пакетами и позволяет определить, что вы установили из дистрибутива (и вам не нужно выполнять резервное копирование, потому что вы можете получить его снова) и что вы скомпилировали вручную; он также позволяет одновременно запускать разные версии (например, /usr /bin /firefox против /usr /local /bin /firefox).


Просто, когда вы думали, что все решено, есть еще одно место, которое, вероятно, является ближайшим эквивалентом c:\Program Files - /opt:

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

/opt , вероятно, наиболее близок к c:\program files , поскольку именно в этом месте вы можете ожидать, что приложение, в котором все его файлы находятся в одной папке, а не разбросано по /usr/bin , /var и /etc . д. Обычно он используется только очень большими пакетами, но в этом случае, учитывая, что Netbeans хочет иметь свою собственную папку, возможно, имеет смысл поместить ее в /opt /netbeans

5

На самом деле все сводится к личным предпочтениям. Я объясню мой за то, что он стоит.

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

  1. Если я буду использовать только скрипт или небольшую программу, я установлю ее в ~/bin - на этом большинство моих вещей заканчивается.
  2. Если это что-то вроде того, что вы описали (NetBeans) с собственным полным файловым деревом, я устанавливаю его в /opt
  3. Если это один исполняемый файл, я устанавливаю его в /usr /local /bin

Почему я различаю № 2 и № 3? Понятия не имею, это просто привычка, которую я выработал со временем. Выясняется, что /opt обычно становится глубоким деревом файлов, но на нем установлены только 2 или 3 фактических «вещи». На данный момент у меня установлены записи lampp и lotus в opt, 2 директории, в каждой из которых есть довольно большие деревья. В /usr /local /bin у меня есть 20 или 30 записей, но нет подкаталога.

Я не устанавливаю вещи в /usr /bin или /usr /sbin, потому что мне нравится хранить вещи, которые я добавляю вручную (а не часть простой установки из стандартного репозитория), отдельно.

1

В то время как Стандарт Иерархии Файловой системы действительно дает некоторое руководство. Я обнаружил, что большинству дистрибутивов нравится устанавливать пакеты в /usr/share .

Из-за этого я принял практику установки любого приложения, не установленного через менеджер пакетов (rpm / apt-get / emerge) в /usr/local . Это позволяет мне отделять приложения и библиотеки, которые не управляются с помощью управления пакетами, от тех, которые используются.

Это техника, которая помогла мне управлять моей системой под Fedora Core и Gentoo.

0

Мне нравится использовать /apps для большинства дополнительных приложений, которые я устанавливаю на нескольких серверах. Я храню копию папки в /installs /apps на моем сервере NFS. Когда я создаю любой новый сервер Linux, я монтирую папку installs и копирую /apps, и у меня есть много разных общих приложений на новом сервере. Я удаляю те записи, которые мне не нужны для этого нового сервера, и все готово. Ну, может быть, мне нужно запустить скрипт или три для установки переменных среды или операторов пути, но это в значительной степени то, что нужно для настройки многих новых серверов.

Я пришел из Windows и .net фона. Одним из обещаний .net было то, что большинство приложений можно было установить с помощью Windows xcopy. Я ищу то же самое в Linux. Там, где это возможно, я выбираю tarball вместо RPM или yum и т.д., Чтобы я мог выполнить развертывание в /apps с помощью cp -r и добавить приложение на свой сервер nfs для будущих развертываний.

0

Я бы подумал, что по умолчанию находится /bin , именно там почти все устанавливается по умолчанию, если используется apt-get или аналогичный ...

... Тем не менее, когда дело доходит до более современных программ (или программ без установщика), которые имеют много дополнительных файлов, мне нравится размещать их в своем собственном каталоге в /bin .

0

Обычно они устанавливаются в несколько папок, в основном /usr, /local, /bin и т.д. Вы можете узнать, куда устанавливается программа, из установщика GDebi (на вкладке файлы). Если вы собираетесь переместить Netbeans, я бы посоветовал переместить его в /opt, потому что именно там Google, кажется, устанавливает свои вещи.

0

Согласен с ответом Джеймса Полли, но на самом деле каталог по умолчанию имеет большой смысл, если вам не нужно делить приложение между несколькими учетными записями. Мне, например, нужно было установить Eclipse 3.0 (устаревший) для работы Flex в Linux, и я поместил его в $ HOME/eclipse3.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .