Куда устанавливаются программы в Ubuntu
Многих новичков, недавно установивших Linux и только начавших разбираться в устройстве этой замечательной операционной системы, как и меня, в свое время, интересует вопрос: куда же устанавливаются программы в Ubuntu, да и вообще, в любом дистрибутиве Linux. Файловая система Linux очень сильно отличается от Windows и это в первое время сбивает с толку.
Мы привыкли, что все программы и их файлы в Windows находятся в системном каталоге Program Files и System32, или если не в нем, то хотя бы в одном из подкаталогов. Но в Linux все намного сложнее. Здесь файлы программ, как правило, распределены по всей файловой системе. Так куда устанавливаются программы в Linux? Как найти все файлы программы? Как удалять ненужные программы? Все это мы рассмотрим в данной статье.
Куда устанавливаются программы в Ubuntu
Здесь не все так просто. Чтобы ответить на этот вопрос сначала нужно разобраться в особенностях файловой системы Linux и способах установки программ. В корневой файловой системе Linux каждая папка предназначена для хранения определенного типа файлов, эти правила со временем менялись, да и сейчас меняются в зависимости от дистрибутива, но основные папки остаются одни и те же. В папке /bin (Binary — двоичный) — хранятся исполняемые файлы, /lib — подключаемые библиотеки, /usr — ресурсы и данные программ, это могут быть переводы, картинки и т д, в /var — временные данные, логи, кэши, /etc — конфигурационные файлы.
Большинство программ, устанавливаемых с помощью стандартного пакетного менеджера распределяются по файловой системе в эти папки. Вам, наверное, интересно, как система определяет какие файлы куда копировать. Она и не определяет, это задает разработчик во время сборки пакета. Попробуйте открыть 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.
Где установленное программное обеспечение хранится в 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 иногда являются отдельными разделами — администратор, особенно заботящийся о безопасности, может монтировать эти разделы только для чтения и перемонтировать их для чтения / записи, когда требуется выполнить установку / удаление.
Пакеты обычно устанавливаются из менеджера пакетов. Существуют различные менеджеры пакетов, такие как aptitude (Debian и производные дистрибутивы), yum (Redhat и производные дистрибутивы), pacman (забудьте, какой это дистрибутив . ) и другие.
Менеджер пакетов позволяет вам просматривать репозитории, загружать, устанавливать, запрашивать и удалять программное обеспечение, подобно сложному (и бесплатному) «магазину приложений». Он принимает на себя ответственность за обеспечение работы зависимостей и отслеживание того, что в данный момент установлено.
Обычно менеджер пакетов также позволяет выполнять те же операции с пакетом, который вы загрузили вручную, вне каких-либо репозиториев. Инструменты также доступны, если вы хотите создать свой собственный из программного обеспечения, которое вы создали или скомпилировали самостоятельно.
Поскольку сам пакет НЕ является исполняемым файлом, вам не нужно запускать ненадежный исполняемый файл, который вы на самом деле не знаете, что он делает. (Windows наконец-то приходит с обновлениями, распространяя .msu вместо .exe — но .msi уже давно . )
Куда Linux ставит программы. Коротко о файловой системе Linux.
Файловая система Linux очень сильно отличается от того, к чему привык пользователь Windows. Тут нет привычных дисков с их буквенным обозначением и нет папки Program Files.
Файловая система Линукс располагает папки по типу дерева, которое идет от некого корня.
И главное, любая папка может физически находится на другом диске, как логическом, так и физическом.
Скажем папку Home ставят на другой диск, папка хранит все документы пользователя и в случае переустановки системы, они так и останутся.
Надо быть справедливым, такая возможность есть и у Виндоувс, и правильно так поступать(расскажу, если кто не знает), да и всякие свои файлы и программы обычно люди ставят на другой, не системный диск.
И так, мы отвлеклись. Каждая папка Linux хранит свой тип файлов:
/etc — здесь хранятся файлы разных конфигураций, настройки системы, скажем файл fstab хранит информация ваших файловых системах, в нем задаеться информация как их монтировать и что с ними делать. В былые времена я руками туда вписывал разделы виндусевских дисков, сейчас, благо, все монтируется автоматически.
/dev это папка файлов устройств, да в Линуксе каждое устройство это файл.
/media сюда монтируются съемные носители
Но это все тема отдельная, нас интересует именно куда программы то ставятся.
/usr вот в эту папку идут все программы пользователя. Там содержаться и исполняемые файлы, и библиотеки и прочее.
Когда вы скачиваете установочный пакет, то он представляет из себя архив с файлами программы и файл, который указывает установщику, куда положить эти файлы. Существует четкое распределение файлов по папкам, но последнее время, это не всегда так.
/usr/bin — сюда помещаются исполняемые файлы программ
usr/lib — а здесь библиотеки, которые нужны программе
usr/sbin — сюда помещаются исполняемые файлы от имени администратора
/usr/share — прочие файлы программ
Как я писал выше, что существует правило распределения файлов, но оно не всегда соблюдается.
/opt ряд программ устанавливается в эту папку, там создаеться папка программы, в которой все ее файлы, по типу, как это происходит в виндоувс. Изначально это папка для установки проприетарных программ.
Но некоторые программы «идут еще дальше и , как сказать, ставят себя в папку /home/имя_пользователя/opt
Узнать, куда разместились файлы программы можно командой:
А через пакетный менеджер можно получить более подробную информацию, включая все графические файлы и тд