Где в Linux хранится установленное программное обеспечение?

Где в Linux хранится установленное программное обеспечение?

Возможный дубликат:
Где устанавливается типичная программа Linux?

Я новичок в Linux и хочу немного подробнее спросить о пакетах.

В Windows я скачиваю .exeфайл и устанавливаю его. При установке я определяю путь, по которому я хочу сохранить это приложение. В этой папке у меня есть все файлы, необходимые для приложения.

Однако, когда я устанавливаю пакет в Linux с помощью yumили apt-get, я не знаю, куда устанавливается пакет и где хранятся необходимые файлы для этого приложения. Я видел, что большинство конфигураций находятся в каталоге /etc. Но почему Linux хранит необходимые файлы для приложения в разных каталогах?

Может кто-нибудь рассказать, как устанавливаются пакеты, где и как они хранятся? И если я неправильно понимаю управление пакетами, пожалуйста, поправьте меня.

решение1

Многие программы (двоичные файлы/скрипты) оказываются в различных каталогах конфигурации /binили /usr/binвместе с другими их частями (часто в/под etc), как вы уже отметили.

Для любой конкретной команды вы можете проверитьгде

whereis prog_name

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

which prog_name

Также, этографика и пояснения/примерыможет быть полезно.

решение2

Вы можете получить список файлов, которые yumустанавливает данный пакет, выполнив:

yum install yum-utils

Затем вы можете запустить его так:

repoquery --list yum-utils

(Разумеется, замените «yum-utils» во втором случае на имя того пакета, список файлов которого вы хотите увидеть.)

Для apt-get, вы можете использовать:

dpkg -L package-name

решение3

В Windows, особенно в старых версиях, программы обычно хранили файлы конфигурации и непостоянные данные в своем C:\Program Filesкаталоге. Это происходит из того, как программы обычно устанавливались и запускались в однопользовательском, не сетевом, не файловом DOS.

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

С появлением Vista и надоедливых UAC эта традиция, наконец, начала серьезно терять популярность.

UNIX и Linux, будучи многопользовательской системой с гораздо более раннего времени, имели тенденцию отделять исполняемые каталоги от других каталогов гораздо раньше, поскольку была необходимость запретить пользователям, кроме root, изменять установленные двоичные файлы. Это также причина, по которой /usrи даже /sbinиногда являются отдельными разделами - особенно заботящийся о безопасности администратор может смонтировать эти разделы только для чтения и перемонтировать их для чтения/записи, когда необходимо выполнить установку/удаление.

Пакеты обычно устанавливаются из менеджера пакетов. Существуют различные менеджеры пакетов, такие как aptitude(Debian и производные дистрибутивы), yum(Redhat и производные дистрибутивы), pacman(забудьте, какой это дистрибутив...) и другие.

Менеджер пакетов позволяет просматривать репозитории, загружать, устанавливать, запрашивать и удалять программное обеспечение, что очень похоже на сложный (и бесплатный) «магазин приложений». Он берет на себя ответственность за обеспечение зависимостей и отслеживание того, что в данный момент установлено.

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

Поскольку сам пакет НЕ является исполняемым файлом, вам не нужно запускать ненадежный исполняемый файл, о котором вы не знаете, что он делает. (Windows наконец-то выпускает обновления, распространяя .msu' вместо .exe' - но .msi' существуют уже некоторое время...)

решение4

В Linux/Unix большинство программ обычно не располагаются в одном каталоге, а различные его части (исполняемые файлы, файлы конфигурации, файлы журналов, документация, другие ресурсы) разбросаны по файловой системе — обычно с помощью символических ссылок.Статья в Википедииболее подробно описывает стандартную структуру каталогов в обычной иерархии файловой системы, показывая различные каталоги и то, что можно найти в каждом из них.

Связанный контент