Где установленное программное обеспечение хранится в 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 уже давно . )
Куда устанавливаются программы в линуксе?
Читал статью что программы устанавливаются в корневой раздел «/» но потом нашел другую информацию что устанавливаются в «/home» в линукс сообществе в вк, так куда?
Как мэйнтейнеру пакета в голову стукнет.
phoen ★★ ( 21.09.20 13:22:33 MSK )
Последнее исправление: phoen 21.09.20 13:22:43 MSK (всего исправлений: 1)
Те что из репозитария ставятся в /, сторонние если юзер хочет может поставить в /home или в /.
обычно, пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin, вспомoгательные файлы программ хранятся в /usr/lib, /usr/share, /home и т.д. Сторонние программы могут устанавливаться целиком в /opt
Если вкратце, то куда угодно.
нормальные пакеты равномерно размазываются по файловой системе, а всё остальное — куда угодно.
кстати, а какой смысл в таком равномерном размазывании?
пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin
Вообще-то нет. В /usr/local идёт самосбор. Из пакетов туда вообще не ставят в нормальной ситуации.
Что за дистрибутив у тебя? Вообще куда угодно могут устанвливаться, тут грань между системными и прикладными программами стерта и при установке «размазывается» по дереву (хотя бывают и исключения).
чтобы не искать конфиг и исполняемый файл в новой жопе очередного изобретательного разработчика?
«Так исторически сложилось» ?
кстати, а какой смысл в таком равномерном размазывании?
Есть дистрибутивы, они разные в разных места установки разные, всем заведует менеджер пакетов apt в Debian, pacman в Arch, dnf в Fedora и так далее, соотвецтвенно форматы пакетов разные. Достаточно знать как пользоваться менеджером в любимом тебе дистрибутиве и всё.
Чаще всего программы устанавливаются в /usr/bin/ или в /usr/local/bin есть пользовательские каталоги для этого в особых случаях ~/.local/bin/ например. Сторонее проприетарное ПО или же то которое не хочется совать в систему ставят уже руками в /opt/ На самом деле вариантов ещё много, у каждой цели установки свой смысл, просто иди и где то читай про это. И да порой конечно есть излишества.
В любом случае если не городить что-то самому то используй менеджер пакетов который в 99% случаев всё ставить в /usr/bin/ Что бы те было понятнее usr это User System Resources почти program files как в винде, только там один каталог где всё в кашу, а тут есть ещё дополнительное дробление и всё на свои полочки кидается и если знаешь что для чего всегда заранее знаешь что и где искать.
Есть ещё /bin это системные программы наиболее важные для функционирования системой. (Не совсем так, но считай так и есть)
Что бы ещё было понятнее, есть разные типы файлов в одной программе картинки, документация, примеры, конфигурационные фалйы, библиотеки и исполняемые файлы, при установке всё это расфасовывается не в 1 место, а в разные в зависимости от типа файла и его предназначения. И программа установленная как бы интегрируется с системой, сливается с ней в одно целое, а не как в винде в отдельном каталоге всё в кучу. И у того и у того есть и минусы и плюсы.
LINUX-ORG-RU ★★★★★ ( 21.09.20 14:38:57 MSK )
Последнее исправление: LINUX-ORG-RU 21.09.20 14:39:42 MSK (всего исправлений: 1)
Куда Linux ставит программы. Коротко о файловой системе Linux.
Файловая система Linux очень сильно отличается от того, к чему привык пользователь Windows. Тут нет привычных дисков с их буквенным обозначением и нет папки Program Files.
Файловая система Линукс располагает папки по типу дерева, которое идет от некого корня.
И главное, любая папка может физически находится на другом диске, как логическом, так и физическом.
Скажем папку Home ставят на другой диск, папка хранит все документы пользователя и в случае переустановки системы, они так и останутся.
Надо быть справедливым, такая возможность есть и у Виндоувс, и правильно так поступать(расскажу, если кто не знает), да и всякие свои файлы и программы обычно люди ставят на другой, не системный диск.
И так, мы отвлеклись. Каждая папка Linux хранит свой тип файлов:
/etc — здесь хранятся файлы разных конфигураций, настройки системы, скажем файл fstab хранит информация ваших файловых системах, в нем задаеться информация как их монтировать и что с ними делать. В былые времена я руками туда вписывал разделы виндусевских дисков, сейчас, благо, все монтируется автоматически.
/dev это папка файлов устройств, да в Линуксе каждое устройство это файл.
/media сюда монтируются съемные носители
Но это все тема отдельная, нас интересует именно куда программы то ставятся.
/usr вот в эту папку идут все программы пользователя. Там содержаться и исполняемые файлы, и библиотеки и прочее.
Когда вы скачиваете установочный пакет, то он представляет из себя архив с файлами программы и файл, который указывает установщику, куда положить эти файлы. Существует четкое распределение файлов по папкам, но последнее время, это не всегда так.
/usr/bin — сюда помещаются исполняемые файлы программ
usr/lib — а здесь библиотеки, которые нужны программе
usr/sbin — сюда помещаются исполняемые файлы от имени администратора
/usr/share — прочие файлы программ
Как я писал выше, что существует правило распределения файлов, но оно не всегда соблюдается.
/opt ряд программ устанавливается в эту папку, там создаеться папка программы, в которой все ее файлы, по типу, как это происходит в виндоувс. Изначально это папка для установки проприетарных программ.
Но некоторые программы «идут еще дальше и , как сказать, ставят себя в папку /home/имя_пользователя/opt
Узнать, куда разместились файлы программы можно командой:
А через пакетный менеджер можно получить более подробную информацию, включая все графические файлы и тд