Куда устанавливаются программы в Linux

Обновлено: 03.07.2024

Я хочу установить программу в Linux и запустить ее как демон. (В данном случае Team Speak 3, но вопрос носит общий характер). Пакет не предоставляется, только заархивированные двоичные файлы.

Где в структуре каталогов я должен разместить такую ​​программу по соглашению?

В Интернете я обнаружил, что /opt означает «дополнительные дополнительные приложения», а /usr — «пользовательские программы».

Я обнаружил, что в одном руководстве предлагается /opt, а в другом - /usr.

Так какой из них "более правильный"?

"Более правильный" зависит от вашего дистрибутива. Вам следует ознакомиться с рекомендациями вашего дистрибутива о том, куда поместить программное обеспечение, которым не управляет менеджер пакетов (часто /usr/local ), ИЛИ о том, как создать для него собственный пакет.

7 ответов 7

"Более правильный" зависит от вашего дистрибутива. Вам следует ознакомиться с рекомендациями вашего дистрибутива о том, куда поместить программное обеспечение, которым не управляет менеджер пакетов (часто /usr/local ), ИЛИ о том, как создать для него собственный пакет.

Как вы сказали, TeamSpeak просто помещает все в одну папку (и ее может быть нелегко реорганизовать), да, /opt/, вероятно, лучше всего.

(Но, например, в Archlinux менеджер пакетов может быть установлен там, поэтому я все равно сделаю PKGBUILD для установки в /opt .)

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

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

Если вы будете компилировать собственное программное обеспечение, то в конечном итоге вы сами определяете место установки. По соглашению программное обеспечение, скомпилированное и установленное вручную (не через менеджер пакетов, например, apt, yum, pacman), устанавливается в /usr/local. Некоторые пакеты (программы) создают в /usr/local подкаталог для хранения всех соответствующих файлов, например, /usr/local/openssl . Другие пакеты установят необходимые файлы в существующие каталоги, такие как /usr/local/sbin и /usr/local/etc. Это просто местоположения по умолчанию, которые можно изменить во время компиляции.

При компиляции программного обеспечения место установки можно указать с помощью параметра --prefix= при запуске ./configure . Настоятельно рекомендуется просмотреть все доступные параметры для вашего пакета, запустив $ ./configure --help | меньше . Кроме того, рекомендуется просмотреть документы INSTALL и README, прилагаемые к вашему пакету. Как правило, они содержат инструкции по установке и информацию о зависимостях, относящихся к конкретному пакету.

Следует также отметить, что хотя вы можете хранить программное обеспечение в любом месте, согласно FHS, исходный код для локально установленного программного обеспечения должен храниться в /usr/local/src. дерево, если вам нужно скопировать стандартный файл конфигурации или двоичный файл. Несмотря на то, что некоторые пакеты используют его, ваш исходный код не должен храниться в /usr/src, так как он предназначен для системного программного обеспечения, такого как ядро.

Наконец, вам нужно убедиться, что место установки указано в $PATH . Если вы решите установить свой пакет в /opt, но его нет в $PATH, ваша оболочка не найдет исполняемые файлы, и вам придется использовать абсолютный путь для вызова ваших программ. Вот несколько отличных дискуссий от AU о настройке $PATH

В Windows большинство приложений и данных приложений хранятся в специальном каталоге, известном как C:\Program Files (иногда C:\Program Files (x86)). Что эквивалентно этому пути в Ubuntu/Linux? Есть ли хоть один?

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

Я думаю, что этот вопрос был бы улучшен, если бы причина нуждалась в эквиваленте. Есть разница между, например, «давайте посмотрим, что я установил и что я могу запустить» и «я пытаюсь найти сохранение той или иной программы, чтобы я мог с ней повозиться». а может даже "подозреваю какой-то файл настроек/ini-файл для этой программы, который я могу подкрутить". Все это может быть вопрос «Program Files», но здесь есть разные ответы.

Связанный материал (но, вероятно, его не следует рассматривать как дубликат): как понять структуру файловой системы Ubuntu?

10 ответов 10

Поздний ответ. Я составил план действий для новичков. Если они ищут файл, но не знают, где искать, они могут использовать карту для приблизительной навигации. Скачать PNG в высоком разрешении можно здесь. Вы можете найти соответствующий пост здесь. Когда позволит время, я буду обновлять как файл, так и пост, добавляя полезные комментарии.


Когда я вижу, что это так, я понимаю, что неудивительно, что современные дистрибутивы пытаются это скрыть. Какой беспорядок (красивый беспорядок). И я не совсем согласен с этим макетом - он великолепен, но, например, /etc содержит конфиги приложений столько же, сколько конфиги операционной системы, поэтому кажется, что он должен быть слева от второго справа от самого желтого «Специфический для пользователя» вопрос как ветвь «нет». Например, apache — это приложение, а не обязательное для операционной системы. Как и Docker, Folding@Home, VMware или множество других, которые используют /etc для конфигураций. Зато отличная диаграмма.

[EDIT: вместо этого вам, вероятно, следует ознакомиться с ответом d4nyll, который представляет собой изящную карту, действующую как подробное руководство для начинающих по файловой системе Linux]

В

/bin и /usr/bin находятся сценарии, запускающие программы. Однако прямым эквивалентом «Program Files», вероятно, является /opt или, возможно, /usr/share (см. Стандарт иерархии файловой системы). Этот каталог содержит различные вспомогательные файлы для большинства программ.

Nautilus показывает /usr/share

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

Поэтому установка программы через файл deb, репозиторий или сборку, скорее всего, разместит файлы во всех этих местах.

[EDIT] И, как отмечают другие, есть также /sbin и /usr/sbin . Плюс /usr/local/bin , /opt/bin и даже /usr/games/ . Так что это определенно не прямое сравнение с c:\program files !

Как насчет /opt ? Я видел, что многие программы (как правило, с закрытым исходным кодом или на основе приложений) хранятся так же, как и Program Files .

Похоже, так оно и будет, с появлением Центра программного обеспечения Ubuntu, который, конечно же, поставляет туда свои игры. Но даже тогда, вряд ли прямое сравнение, правда? Хотя, возможно, самое близкое в наши дни.

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

Если вы ищете производительность на рабочем месте, (1) все на пределе. Терминал намного быстрее, чем навигация по иерархии опций в программе. Обычно вам все равно приходится гуглить, как изменить настройку, которая включает в себя выполнение последовательности снимков экрана, теперь Google дает вам команду для копирования и вставки (2), cron позволяет вам настроить все, что угодно, для работы в фоновом режиме и делать все, что вы хотите ( 3) Bash легко использовать для автоматизации всего, что вы хотите автоматизировать

Прочитайте мой ответ ниже, чтобы узнать больше о переменной среды PATH, файлах .desktop и о том, как найти конкретную программу с помощью различных команд Linux.

Исходный ответ:

/bin , /usr/bin и /usr/share

Как упоминалось в других ответах, вы можете найти большинство исполняемых файлов в /bin или /usr/bin , а файлы поддержки установлены в /usr/share .

/usr/local и /opt

Однако существует больше каталогов, в которые Ubuntu устанавливает приложения. Переменная PATH, которая определяет, где искать введенную команду, может дать вам подсказку, моя выглядит так ( echo $PATH в терминале):

Как видите, некоторое программное обеспечение установлено в /usr/local и имеет собственный каталог и bin. Еще одно место, куда устанавливаются многие программы, — это /opt. Свойства этих местоположений объясняются Стандартом иерархии файловой системы, который очень хорошо читается. К сожалению, разница между /opt и /usr/local не очень хорошо объяснена, у кого-то на unix stackexchange было более подробное объяснение:

  • /usr/local — это место для установки файлов, созданных администратором, обычно с помощью команды make. Идея состоит в том, чтобы избежать конфликтов с файлами, являющимися частью операционных систем, которые в противном случае либо были бы перезаписаны, либо перезаписаны локальные файлы. например. /usr/bin/foo является частью ОС, а /usr/local/bin/foo является локальной альтернативой,
  • /opt — это каталог для установки отдельных пакетов, каждый из которых находится в своем собственном подкаталоге. Они уже представляют собой целые пакеты, предоставленные независимым сторонним дистрибьютором программного обеспечения. Например, someapp будет установлен в /opt/someapp , одна из его команд будет в /opt/someapp/bin/foo [и затем обычно создается символическая ссылка в одном из каталогов bin в PATH , или программа вызывается из файла рабочего стола (см. ниже)].

файлы .desktop

Чтобы узнать, где установлена ​​конкретная программа, можно выполнить ряд действий. Сначала вам нужно найти его файл .desktop. Файлы рабочего стола аналогичны ярлыкам в Windows, а для системных приложений они расположены в /usr/share/applications. Файлы рабочего стола для приложений, которые доступны только текущему пользователю, находятся в ~/.local/share/applications. Возьмем, к примеру, Google Chrome, у которого есть файл рабочего стола /usr/share/applications/google-chrome.desktop и найдите строку, начинающуюся с Exec= , это определяет, как запустить Google Chrome. Там написано:

Итак, вы знаете, что Google Chrome находится в /opt .

Теперь для Mozilla Firefox, который находится в /usr/share/applications/firefox.desktop. Это просто говорит

Сначала кажется, что это не очень помогает, но потом вы понимаете, что firefox должен находиться в каталоге, указанном в переменной PATH (скорее всего, в bin ), и мы можем найти его (см. ниже).

Поиск команд

Для поиска команд вы можете использовать одно или несколько из следующего: type , which и whereis (я включил ссылку на их справочные страницы в Интернете).

  1. псевдоним (псевдоним оболочки)
  2. функция (функция оболочки)
  3. встроенный (встроенный в оболочку)
  4. файл (файл на диске)
  5. ключевое слово (зарезервированное слово оболочки)

(type сам по себе является встроенной оболочкой, попробуйте с типом type :P)

Тип выполнения, который нам дает firefox

это то, что мы хотели узнать

Если команда является файлом (который вы проверили с помощью type ), вы также можете использовать:

который: показывает полный путь к команде,

Выполнение, которое дает нам firefox

whereis: найти двоичные файлы, исходные файлы и файлы справочных страниц для команды.

Выполнение того, что дает нам firefox

Бонус

Вы можете проверить /usr/bin/firefox поближе с помощью ls -l /usr/bin/firefox, и это даст:

Я хочу узнать процедуру установки и удаления в Linux?

Есть ли какой-либо файл журнала, в котором регистрируются эти процедуры?

Например, я устанавливаю IDE Netbeans в Linux. Я хочу знать, где находятся файлы этой IDE? Я хочу знать, где находится папка с программами, установленными в Linux.

Например, если вы устанавливаете среду IDE Netbeans, вы можете увидеть в файле что-то вроде следующего:

programName дата время usr

netbeans-7ml 08.06.2011 8:3:00 root

3 ответа 3

Зависит от версии (дистрибутива) Linux, которую вы используете, но обычно программы устанавливаются в /usr/bin или /usr/local/bin

Вы можете перейти в каталог /usr/bin, а затем выполнить команду ls -la | больше, и вы увидите там все «исполняемые» файлы.

Несмотря на то, что каждый дистрибутив имеет свои собственные методы, существует стандартная (или попытка ее создания) иерархия файловой системы, которую стоит прочитать:

Там вы увидите, куда должны помещаться системные двоичные файлы, системные библиотеки, почему двоичные файлы no_system иногда помещаются в /usr/bin, а иногда в /usr/local/bin, что такое /bin, что за черт находится /usr/sbin, где должна находиться документация по каждому пакету, почему настройки помещаются в /etc, что такое каталог /var, почему пакеты не из вашего дистрибутива обычно устанавливаются в /opt и т. д.

Опять же, это стоит прочитать.

Очень полезная ссылка, спасибо! Было бы неплохо, если бы вы резюмировали соответствующие разделы в своем ответе, так как это ответ на вопрос.

Существуют разные методы в зависимости от дистрибутива Linux -- В Redhat/Fedora установка выполняется через пакеты RPM, которые затем распространяются для обновления и устанавливаются в основном с помощью YUM -- Как создать RPM описано здесь

В системах debrian/ubutu эквивалентом является пакет DEB, который распространяется и устанавливается через apt-get. Как создать пакет DEB описано здесь

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

Программное обеспечение обычно устанавливается в папки bin, в /usr/bin, /home/user/bin и во многих других местах, хорошей отправной точкой может быть команда find для поиска имени исполняемого файла, но обычно это не одно папка. Программное обеспечение может иметь компоненты и зависимости в lib, bin и других папках.

Где программы устанавливают Ubuntu?

Большинство установленных программ находятся в каталогах /usr/bin и /usr/sbin. Поскольку обе эти папки добавлены в переменную PATH, вам просто нужно ввести имя программы в терминале и выполнить их, как сказал Стиввей. как все говорили. вы можете найти их в /usr/bin или /usr/lib.

Как узнать, где установлена ​​программа?

Вот шаги:

  1. Откройте меню "Пуск".
  2. Теперь щелкните программу правой кнопкой мыши, выберите "Дополнительно" и выберите "Открыть местоположение файла".
  3. Откроется папка программы и будет выбран ярлык программы.
  4. Щелкните правой кнопкой мыши по этому ярлыку.
  5. Выберите параметр «Открыть местоположение файла».

Как устанавливаются программы в Linux?

Например, дважды щелкните загруженный файл . deb, нажмите «Установить» и введите свой пароль, чтобы установить загруженный пакет в Ubuntu. Загруженные пакеты также можно установить другими способами.Например, вы можете использовать команду dpkg -I для установки пакетов из терминала в Ubuntu.

Как узнать, где установлена ​​программа в Windows 7?

Как определить, что установлено на вашем компьютере

  1. Настройки, приложения и функции. В настройках Windows перейдите на страницу «Приложения и функции». …
  2. Меню "Пуск". Щелкните меню «Пуск», и вы получите длинный список установленных программ. …
  3. C:Program Files и C:Program Files (x86)…
  4. ПУТЬ.

Куда Windows 10 устанавливает программы?

Как устанавливать программы из онлайн-источников в Windows 10

  1. В веб-браузере выберите ссылку на программу.
  2. Выберите «Сохранить» или «Сохранить как», чтобы загрузить программу. …
  3. Если вы выберете "Сохранить", файл программы будет сохранен в папке "Загрузки".
  4. Или, если вы выберете Сохранить как, вы можете выбрать, где сохранить его, например на рабочем столе.

Как найти скрытые программы в Windows 10?

Откройте Проводник на панели задач. Выберите Вид > Параметры > Изменить папку и параметры поиска. Выберите вкладку «Вид», в разделе «Дополнительные параметры» выберите «Показывать скрытые файлы, папки и диски» и нажмите «ОК».

Как посмотреть установленные файлы в Linux?

Чтобы получить список установленных пакетов, выполните следующие действия:

  1. Откройте терминальное приложение.
  2. Для входа на удаленный сервер с помощью команды ssh: ssh [email protected]
  3. Показать информацию обо всех установленных пакетах в CentOS, запустить: sudo yum list Installed.
  4. Чтобы подсчитать все установленные пакеты, запустите: sudo yum list Installed | туалет -l.

Как установить файл в Linux?

установочные файлы bin, выполните следующие действия.

  1. Войдите в целевую систему Linux или UNIX.
  2. Перейдите в каталог, содержащий программу установки.
  3. Запустите установку, введя следующие команды: chmod a+x имя_файла.bin. ./имя файла.bin. Где filename.bin — это имя вашей программы установки.

Как узнать, какое программное обеспечение установлено в Linux?

Сколько раз вам нужно было знать, какая версия программного обеспечения установлена ​​в Linux? Если это инструмент с графическим интерфейсом, чаще всего вы можете просто перейти в раздел «Справка | О меню и узнайте, какую версию вы используете.

Читайте также: