Возможное дублирование:
где установлена типичная программа для Linux
Я новичок в Linux, и я хочу спросить немного больше о пакетах.
В Windows я скачиваю .exe
файл и устанавливаю его. При установке я определяю путь, по которому я хочу сохранить это приложение. В этой папке у меня есть все файлы, необходимые для приложения.
Однако, когда я устанавливаю пакет в Linux с помощью yum
или apt-get
, я не знаю, где установлен пакет и где хранятся необходимые файлы для этого приложения. Я видел, что большинство конфигураций находятся в /etc
каталоге. Но почему Linux хранит необходимые файлы для приложения в разных каталогах?
Может кто-нибудь сказать мне, как устанавливаются пакеты, где и как они хранятся? И если мое понимание управления пакетами неверно, поправьте меня.
rpm
, вы можете использовать,rpm -q --whatprovides
чтобы найти имя пакета для конкретного файла, а затемrpm -q -a
узнать, какие файлы установлен пакет.apt-get
, если пакет установлен, используйтеdpkg -L PKGNAME
, если он не используетсяapt-file list
.Ответы:
Многие программы (двоичные файлы / скрипты) попадают в
/bin
или/usr/bin
с другими частями в различных каталогах конфигурации (часто в / подetc
), как вы уже заметили.Для любой конкретной команды вы можете проверить где
и он даст вам некоторую информацию о том, где находится эта команда. Вы также можете попробовать какие
Кроме того, эта графика и объяснение / примеры могут быть полезны.
источник
/etc/
, но наличие одного центрального расположения для файлов конфигурации позволяет очень легко создавать их резервные копии. (Представьте себе резервные копии общесистемных файлов конфигурации в Windows, где они разбросаны по всей файловой системе и реестру ...)В Windows, особенно в старых версиях, программы обычно хранили файлы конфигурации и непостоянные данные в своем
C:\Program Files
каталоге. Это происходит от того, как программы обычно устанавливались и запускались в однопользовательской, не сетевой, DOS-папке без прав доступа.С точки зрения безопасности это плохая идея. Места, где живет исполняемый код, должны быть отделены от изменяемых данных. Таким образом, проще применять соответствующие разрешения для файлов, чтобы предотвратить изменение установленных двоичных файлов неавторизованными пользователями. Аналогичным образом, библиотечные каталоги, которые могут обновляться отдельно от основных исполняемых файлов, также должны находиться в отдельном каталоге.
С появлением раздражений в Vista и UAC эта традиция, наконец, начинает серьезно терять популярность.
UNIX и Linux, будучи намного более ранней многопользовательской системой, имели тенденцию отделять исполняемые каталоги от других каталогов гораздо раньше, поскольку существовала необходимость запретить пользователям, отличным от root, изменять установленные двоичные файлы. Это также то, почему
/usr
и даже/sbin
иногда являются отдельными разделами - администратор с особым вниманием к безопасности может монтировать эти разделы только для чтения и перемонтировать их для чтения / записи, когда должна произойти установка / удаление.Пакеты обычно устанавливаются из менеджера пакетов. Существуют различные менеджеры пакетов, такие как
aptitude
(Debian и производные дистрибутивы),yum
(Redhat и производные дистрибутивы),pacman
(забудьте, какой это дистрибутив ...) и другие.Менеджер пакетов позволяет вам просматривать репозитории, загружать, устанавливать, запрашивать и удалять программное обеспечение, подобно сложному (и бесплатному) «магазину приложений». Он принимает на себя ответственность за обеспечение работы зависимостей и отслеживание того, что в данный момент установлено.
Обычно менеджер пакетов также позволяет выполнять те же операции с пакетом, который вы загружали вручную, вне каких-либо репозиториев. Инструменты также доступны, если вы хотите создать свой собственный из программного обеспечения, которое вы создали или скомпилировали самостоятельно.
Поскольку сам пакет НЕ является исполняемым файлом, вам не нужно запускать ненадежный исполняемый файл, который вы на самом деле не знаете, что он делает. (Windows, наконец, приходит с обновлениями, распространяя
.msu
вместо.exe
s - но.msi
уже давно ...)источник
Вы можете получить список файлов, которые устанавливает данный
yum
пакет, выполнив:Тогда вы можете запустить его так:
(Очевидно, замените «yum-utils» во втором наборе именем того пакета, список файлов которого вы хотели бы видеть.)
Для
apt-get
вы можете использовать:источник
Обычно под
/usr/bin
, хотя это зависит от конкретного приложения или библиотеки, которую вы устанавливаете.источник
В Linux / Unix большинство программ обычно не попадают в один каталог, но различные его части (исполняемые файлы, файлы конфигурации, файлы журналов, документация, другие ресурсы) разбросаны по файловой системе - обычно с помощью символических ссылок. Статья Википедии более подробно описывает стандартную структуру каталогов при нормальной иерархии файловой системы, показывая различные каталоги и то , что вы можете ожидать , чтобы найти в каждом.
источник
/opt
Каталог зарезервирован для Windows , как установок , где каждый пакет имеет свое собственное дерево каталогов. Никто не использует это. Я не уверен почему; может случиться так, что добавление/opt/PACKAGE/bin
в ваш$PATH
каждый раз, когда вы устанавливаете пакет, слишком раздражает.источник
/opt
кажется, в основном используется коммерческими / несвободными программными пакетами, такими как MATLAB./opt
а затем и LibreOffice 3.5, который я установил прямо отсюда .Программное обеспечение в Linux немного отличается по парадигме от Windows или Mac. В них исполняемый файл и все его вспомогательные файлы устанавливаются в одну папку: Windows обычно хранит их
c:\Program Files\program name
, а Apple - в/Applications/program.app
. Под Linux есть более ... коммунальная структура. Двоичные файлы обычно находятся в/usr/bin
конфигурации всей системы/etc
, пользовательская конфигурация обычно находится в~/.program
. Есть библиотеки, есть/usr/lib
файлы поддержки (например, рисунки) и/usr/share/program
т. Д. Есть даже стандарт, предлагающий, куда все идти.Программы обычно устанавливаются менеджерами пакетов,
rpm
иdpkg
; они автоматически ищутся и извлекаются (включая управление зависимостями)yum
иaptitude
/apt-get
, соответственно. На техническом уровне пакеты представляют собой простые сжатые файлы (я считаю, что rpm и deb оба.tar.gz
). Эти архивы содержат зеркало фрагментов файловой системы из корневого каталога, куда идут файлы (например, файл, в который предполагается установить,/usr/bin/program
будет находиться вusr/bin/program
соответствующей папке в пакете).Чтобы найти информацию о конкретном пакете, используйте менеджер пакетов для своей системы, как объяснили другие.
источник
Страница man hier может дать некоторую информацию
источник