Каково обычное расположение для установки приложений в Linux?

69370
Thomas Owens

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

68

7 ответов на вопрос

92
James Polley

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

  • bin это сокращение от "двоичного", конечно,
  • sbin является сокращением от «двоичный файл сервера», иначе определяется как:

    Утилиты, используемые для системного администрирования (и другие команды только для 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

интересно. если бы я проектировал Linux, я бы поместил сетевые общие приложения в / usr / shared, а затем поместил частные локальные хост-приложения в / usr. таким образом, я мог бы поделиться / usr / shared без также, через наследование, совместного использования / usr. djangofan 14 лет назад 3
Действительно хороший ответ. Мне также нравится комментарий о том, как держать вещи вне системы управления пакетами. DaveParillo 14 лет назад 1
Определенно / выбрать "полные сторонние пакеты". Большинство установок разделяют различные двоичные файлы, библиотеки, файлы и т. Д. На разные каталоги, но когда у вас есть каталог «все в одном», с / opt легко работать. Avery Payne 10 лет назад 1
Пара быстрых вопросов: 1) Если / usr должен быть доступным для всех машин в сети, не означает ли это, что все дочерние каталоги также будут доступны для совместного использования, что делает / usr / local видимым для других машин в сети? 2) Что такое FHS 3) Когда вы говорите о командах, необходимых для монтирования / usr, вы говорите о том, как ОС загружается, скажем, после завершения работы? Я прошу прощения за бомбардировку вопросов 7 лет спустя, но я новичок в Linux, и у меня возник тот же вопрос после просмотра руководств по установке, в которых говорится, куда помещать файлы, но не ПОЧЕМУ их помещать туда. +1 к слову Ungeheuer 7 лет назад 0
4
DaveParillo

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

/ 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
Adam Luchjenbroers

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

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

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

0
William Hilsum

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

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

В чем разница между / bin, / usr / bin и / sbin? / bin имеет смысл, поскольку он предназначен для файлов BINary. Thomas Owens 14 лет назад 3
0
digitxp

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

0
CarlF

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

0
Dale

I like to use /apps for most add-on apps that I install on multiple servers. I keep a copy of the folder in /installs/apps on my nfs server. When I create any new linux server I mount the installs folder and copy /apps and I have many different common apps on the new server. I delete those entries I don't need for this new server and I'm done. Well, maybe I need to run a script or three for setting environment variables or path statements but that's pretty much what it takes to set up many new servers.

I come from a Windows and .net background. One of the promises of .net was that most apps could be installed by using Windows xcopy. I look for the same thing in Linux. Where available, I choose the tarball over the RPM or yum, etc. so I can deploy to /apps with cp -r and add the app to my nfs server for future deployments.

Вопрос требует конвенции. Вы описали, что вы делаете, лично. Вы можете по крайней мере связать это с соглашением? fixer1234 8 лет назад 1

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