Linux где лежит пакет

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

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

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

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

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

8 ответов 8

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

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

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

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

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

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

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

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

Читайте также:  Linux no output device

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

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

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

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

Источник

unixforum.org

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

Re: куда установлен пакет

Сообщение clx » 16.09.2005 15:25

Re: куда установлен пакет

Сообщение vg2.0 » 16.09.2005 15:35

Re: куда установлен пакет

Сообщение clx » 16.09.2005 15:40

[~] whereis mc mc: /usr/bin/mc /usr/lib/mc /usr/X11R6/bin/mc /usr/bin/X11/mc /usr/share/mc /usr/share/man/man1/mc.1.gz [~]

Re: куда установлен пакет

Сообщение vg2.0 » 16.09.2005 15:43

Re: куда установлен пакет

Сообщение clx » 16.09.2005 15:45

Re: куда установлен пакет

Сообщение flook » 16.09.2005 16:10

Это для команды! Например whereis coreutils ниче не вернет. Куда ложится пакет это ИМХО от дистриба зависит. Или я не так что-то понял?

Re: куда установлен пакет

Сообщение clx » 16.09.2005 16:11

Для flook:
Бывает, что зависит. Я не понял тебя, чего не вернет?
whereis показывает, где лежат файлы нужной тулзы.

Re: куда установлен пакет

Сообщение flook » 16.09.2005 16:14

(clx @ Пятница, 16 Сентября 2005, 15:11) писал(а): Для flook:
Бывает, что зависит. Я не понял тебя, чего не вернет?
whereis показывает, где лежат файлы нужной тулзы.

Читайте также:  Линукс распаковать файл rar

Whereis просто грепает по стандартным путям заданое имя, чуть покуроченное. В инфу о пакетах она не лезет. В asplinux ls лежит в пакете coreutils. whereis coreutils не показывает ниодного файла.

t.t Бывший модератор Сообщения: 7390 Статус: думающий о вечном ОС: Debian, LMDE

Re: куда установлен пакет

Сообщение t.t » 16.09.2005 17:19

(flook @ Пятница, 16 Сентября 2005, 15:14) писал(а): Whereis просто грепает по стандартным путям заданое имя, чуть покуроченное. В инфу о пакетах она не лезет. В asplinux ls лежит в пакете coreutils. whereis coreutils не показывает ниодного файла.

Вот именно. whereis ни малейшего отношения к пакетам не имеет; начиная с того, что некоторые одноимённые утилиты могут быть установлены из разных пакетов (или вообще не из пакетов) и заканчивая тем, что действительно она смотрит далеко не все каталоги (например, в /var тоже может чего-ньть установиться).

А правильный ответ зависит от дистрибутива; точнее, от пакетного менеджера. Для dpkg это dpkg -L имя-пакета, для rpm — rpm -ql имя-пакета.

Источник

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

Многих новичков, недавно установивших Linux и только начавших разбираться в устройстве этой замечательной операционной системы, как и меня, в свое время, интересует вопрос: куда же устанавливаются программы в Ubuntu, да и вообще, в любом дистрибутиве Linux. Файловая система Linux очень сильно отличается от Windows и это в первое время сбивает с толку.

Мы привыкли, что все программы и их файлы в Windows находятся в системном каталоге Program Files и System32, или если не в нем, то хотя бы в одном из подкаталогов. Но в Linux все намного сложнее. Здесь файлы программ, как правило, распределены по всей файловой системе. Так куда устанавливаются программы в Linux? Как найти все файлы программы? Как удалять ненужные программы? Все это мы рассмотрим в данной статье.

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

Здесь не все так просто. Чтобы ответить на этот вопрос сначала нужно разобраться в особенностях файловой системы Linux и способах установки программ. В корневой файловой системе Linux каждая папка предназначена для хранения определенного типа файлов, эти правила со временем менялись, да и сейчас меняются в зависимости от дистрибутива, но основные папки остаются одни и те же. В папке /bin (Binary — двоичный) — хранятся исполняемые файлы, /lib — подключаемые библиотеки, /usr — ресурсы и данные программ, это могут быть переводы, картинки и т д, в /var — временные данные, логи, кэши, /etc — конфигурационные файлы.

Читайте также:  Linux parted resize ntfs

Большинство программ, устанавливаемых с помощью стандартного пакетного менеджера распределяются по файловой системе в эти папки. Вам, наверное, интересно, как система определяет какие файлы куда копировать. Она и не определяет, это задает разработчик во время сборки пакета. Попробуйте открыть deb пакет как архив. Кроме служебных информационных файлов, касающихся установки вы там увидите структуру папок напоминающую корневую ФС Linux, это и определяет какие файлы где будут находиться. В последнее время грань четкого разделения файлов по папкам немного стерлась, появились папки /usr/bin для исполняемых файлов, а кэш некоторые программы вообще хранят в домашней папке пользователя, но традиционные Linux сервисы, такие как Samba, Apache, Ngnix и многие другие четко придерживаются стандартной структуры.

Давайте разберем на примере как распределяется программа в файловой системе. Возьмем, например, тот же сервер apache. Чтобы узнать куда были скопированы файлы программы воспользуемся утилитой dpkg.

www-servers/apache-2.2.31 (/usr/sbin/apache2)
www-servers/apache-2.2.31 (/etc/init.d/apache2)
www-servers/apache-2.2.31 (/etc/logrotate.d/apache2)
www-servers/apache-2.2.31 (/var/cache/apache2)
www-servers/apache-2.2.31 (/usr/lib64/apache2)
www-servers/apache-2.2.31 (/usr/share/apache2)
www-servers/apache-2.2.31 (/etc/apache2)
www-servers/apache-2.2.31 (/usr/include/apache2)
www-servers/apache-2.2.31 (/etc/conf.d/apache2)
www-servers/apache-2.2.31 (/var/log/apache2)

Как видите, все файлы на своих местах.

Но из этого правила есть исключения. Например, многие проприетарные программы и игры устанавливаются полностью в одну папку, так же как и в Windows. Для таких программ есть папка /opt. Посмотрим, например, на Crossover:

Обычно такой вид установки используют программы, устанавливаемые скриптами в формате .run. Есть еще один вид программ — те, которые собираются из исходников и устанавливаются командой make install. Так программы лучше не устанавливать, потому что файлы, как и в первом случае, распределяются по всей системе, но в этот раз уже без ведома пакетного менеджера. Конечно¸ вы всегда сможете удалить программу командой make uninstall, но нет гарантий что вы не удалите исходники и скрипт очистки не оставит в системе много лишних файлов, которые потом будет трудно найти. Как правильно устанавливать программы из исходников можете посмотреть в статье установка программ из tar.gz

Надеюсь, эта статья помогла вам разобраться с вопросом куда устанавливаются программы в Ubuntu.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector