- What is the difference between /lib and /usr/lib and /var/lib?
- 2 Answers 2
- /lib
- /usr/lib
- /var/lib
- Для чего нужен каждый каталог в Linux или структура директорий ОС Линукс
- Cтруктура директорий операционной системы Linux
- Подробное описание структуры файловой системе Linux
- / Наверх
- /bin Наверх
- /boot Наверх
- /dev Наверх
- /etc Наверх
- /home Наверх
- /home/username Наверх
- /lost+found Наверх
- /lib Наверх
- /media Наверх
- /mnt Наверх
- /opt Наверх
- /proc Наверх
- /root Наверх
- /sbin Наверх
- /srv Наверх
- /sys Наверх
- /sys/block Наверх
- /sys/bus Наверх
- /sys/class Наверх
- /tmp Наверх
- /usr Наверх
- /usr/bin Наверх
- /usr/games Наверх
- /usr/include Наверх
- /usr/lib Наверх
- /usr/local Наверх
- /usr/sbin Наверх
- /usr/share Наверх
- /usr/share/icons Наверх
- /usr/share/doc Наверх
- /usr/src Наверх
- /var Наверх
- /var/cache Наверх
- /var/games Наверх
- /var/lib Наверх
- /var/lock Наверх
- /var/log Наверх
- /var/spool Наверх
- /var/www Наверх
- Раздел Наверх
What is the difference between /lib and /usr/lib and /var/lib?
What is the difference between /lib and /usr/lib and /var/lib ? Some of the files are symbolic links that «duplicate» content of other directories.
2 Answers 2
Someone else can probably explain this with much more detail and historical reference but the short answer:
/lib
is a place for the essential standard libraries. Think of libraries required for your system to run. If something in /bin or /sbin needs a library that library is likely in /lib .
/usr/lib
the /usr directory in general is as it sounds, a user based directory. Here you will find things used by the users on the system. So if you install an application that needs libraries they might go to /usr/lib . If a binary in /usr/bin or /usr/sbin needs a library it will likely be in /usr/lib .
/var/lib
the /var directory is the writable counterpart to the /usr directory which is often required to be read-only. So /var/lib would have a similar purpose as /usr/lib but with the ability to write to them.
Just to improve a bit — it all comes from Filesystem Hierarchy Standard. The definition is a bit old-ish now but still offers interesting insight. pathname.com/fhs/pub/fhs-2.3.html
This answer is at least 15 years late, yeah, «historically» it’s correct but Linux distros haven’t had /bin /sbin and /lib for many years now and all three are linked to the appropriate /usr directories. And /var/lib normally holds transcient data, you may as well delete completely and the system won’t be affected. Lastly it’s probably the 150th time this question has been asked. Dunno why people jump to answer it again and again.
@ArtemS.Tashkinov Sorry, but there’s a whole lot of inaccuracies in your comment. «15 years» is way off, Fedora made the move to /usr in 2012 and it certainly wasn’t the last major distro to do so (if not the first). /var/lib is definitely not for transient data, at least not on most distros. Deleting it is going to have disastrous consequences on a typical system (destroying the yumdb/rpmdb and breaking the package manager with no way to repair it, nuking the default storage location of various SQL databases or VMs with precious data, etc.)
noteworthy: «as it sounds, a user based directory» — usr sounds like «user», but it actually stands for Unix System Resources
@kubi That smells of Folk Etymology or Convenient Backronym to me; it’s not even a good description of its role. Wikipedia cites these notes from Dennis Ritchie describing the origin as «a directory ‘/usr’ which contains all user’s directories, and which is stored on a relatively large, but slow moving head disk».
Files in /lib and /usr/lib are supposed to be mostly read only and identical between systems. (If it was a container image, they could be fully read only and shared between systems; on a stand alone system, they need to be writable to install updates.)
Files in /var are specific to the local system and frequently contain data that is generated by system operation.
Typically distribution versions of templates for config files can be found in /usr/lib and can be used to create localized versions of config files in /etc or possibly /var .
I’m not sure why there would be duplicate files between /lib and /usr/lib , more likely they are symlinks and not duplicates. (There are no such files on my current system, and only one symlink.)
Historically directories like /usr/lib /usr/bin were actually created because /usr was on a separate disk and things were put there because /bin and /lib were on the root disk which was too small to hold everything, and what was left on the root disk were things critical to boot far enough to mount /usr . Of course, this concept is obsolete, and there is a movement to merge them.
Для чего нужен каждый каталог в Linux или структура директорий ОС Линукс
Операционная система Linux имеет четкую структуру расположения директорий и файлов. Поэтому многие люди, начинающие изучать линукс, сталкиваются с трудностью понимания нужности каждой отдельной директории.
В этой статье приведен список основных директорий файловой системы Линукс и их краткое описание.
Cтруктура директорий операционной системы Linux
Подробное описание структуры файловой системе Linux
/ Наверх
/bin Наверх
В этом каталоге хранятся основные команды операционной системы, такие как команды оболочки и команды файловой системы (ls, cp и т.д.).
/boot Наверх
Здесь хранятся образы ядер Linux и менеджер загрузки: grub, lilo и т.д.
/dev Наверх
Директория содержит файлы устройств, подключенные к операционной системе.
В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Аналогично устроено большинство UNIX -подобных операционных систем.
/etc Наверх
В этой директории находится основная часть конфигурационных файлов самой операционной системы (настройки сети, список пользователей, групп и т.д.) и различных программ (Apache, Samba и т. д.).
/home Наверх
В этом месте должна размещаться вся личная информация пользователей системы.
Почему должна? Потому что владелец компьютера может хранить свою личную информацию в любом понравившемся ему месте. В целях безопасности самой операционной системы и пользовательских данных хранить последние строго рекомендуется в директории /home. Для получения более высокой надежности операционной системы и сохранности пользовательской информации директорию /home рекомендуется выделить в отдельный раздел жесткого диска.
/home/username Наверх
Это Домашняя папка пользователя usermame. В ней хранится пользовательская часть конфигурационных файлов (настройки пользовательских программ) и вся личная информация пользователя.
Linux является многопользовательской системой и поэтому каждый пользователь имеет уникальный каталог для персональных файлов. Этот каталог называется Домашней папкой пользователя. Домашняя папка суперпользователя root располагается в корне файловой системы.
Такое разделение пользовательских директорий от файлов операционной системы упрощает резервирование данных и повышает надежность самой операционной системы.
/lost+found Наверх
В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные. Допустим при удалении файла из директории произошёл сбой (выключилось питание), то в системе останется потерянный inod, который вроде как и указывает на корректный файл, но этот файл не содержится ни в одной директории. В ext2 и других нежурналируемых файловых системах задача восстановления таких файлов ложится на fsck. Он находит inod, на которые нет ссылок, и создаёт на них ссылки в lost+found. После этого пользователь сможет просмотреть файлы и при необходимости переместить им куда надо, вернув нужные имена.
В ext3 и в других журналируемых файловых системах fsck просматривает журнал и видя, что операция завершилась не полностью, откатывает ее. Поэтому потерянных inod в журналируемых файловых системах находиться меньше.
/lib Наверх
Эта директория предназначена для хранения системных библиотек, необходимые для работы программ из директорий /bin и /sbin и операционной системы вцелом.
/media Наверх
Директория, используемая для автоматического монтирования различных устройств USB -накопителей, CD- ROM и т.д. При вставке в привод CD- ROM диска он автоматически подключается во вложенный каталог этой директории.
/mnt Наверх
Обычно эта директория используется для ручного подключения устройств. В эту директорию командой mount «руками» монтируются различные USB -накопители, CD- ROM и т.д.
/opt Наверх
Директория, в которой обычно размещаются установленные программы, имеющие большой дисковый размер или вспомогательные пакеты (например /opt/openoffice.org).
/proc Наверх
/proc — это директория, к которой примонтирована виртуальная файловая система procfs. Различная информация, которую ядро может сообщить пользователям, находится в «файлах» каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера. Подробнее можно прочитать здесь.
/root Наверх
Это домашний каталог или Домашняя папка суперпользователя. Эта директория фактически ничем не отличается от директории обычного пользователя. Данная директория по умолчанию всегда расположена в корневом каталоге файловой системы. Это было сделано для предотвращения проблем с доступом к директории /home. В случае когда к каталогу /home по какой-то причине невозможно получить доступ, в системе всегда есть возможность залогиниться под учетной записью суперпользователя, для решения возникших проблем с доступом.
/sbin Наверх
Основные системные программы для администрирования и настройки системы (iptables, ifconfig и т.д.).
/srv Наверх
Параметры, которые специфичные для окружения системы. Чаще всего данная директория пуста.
/sys Наверх
/sys — это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.
/sys/block Наверх
/sys/block содержит директории всех блочных устройств, присутствующих в данный момент в системе.
/sys/bus Наверх
В этой директории находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
/sys/class Наверх
Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
/tmp Наверх
Временное хранилище данных. Аналог папки в ОС Windows — C:/Windows/Temp. Все пользователи имеют права чтения и записи в этом каталоге.
/usr Наверх
В этом каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
/usr/bin Наверх
Директория дополнительных программ для всех учетных записей.
/usr/games Наверх
Каталог для размещения доступных компьютерных игр в системе.
/usr/include Наверх
/usr/lib Наверх
Системные библиотеки для программ, расположенных в директории /usr.
/usr/local Наверх
По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине (к примеру, /usr – бюджет семьи, а /usr/local – личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся «родные» установленные пакеты, а /usr/local находятся собранные пакеты из исходников).
/usr/sbin Наверх
Дополнительные системные программы.
/usr/share Наверх
Общие данные установленных программ.
/usr/share/icons Наверх
В каталоге находятся все иконки системы.
/usr/share/doc Наверх
Директория, в которой обычно находится справочная документация по установленным программам.
/usr/src Наверх
Исходные кода (например, здесь располагаются исходные кода ядра).
/var Наверх
Это каталог для часто меняющихся данных. Здесь находятся журналы операционной системы, системные log-файлы, cache-файлы и т. д.
/var/cache Наверх
В этом месте хранятся все кэши различных программ.
/var/games Наверх
В этом месте расположены файлы с игровыми достижениями.
/var/lib Наверх
Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
/var/lock Наверх
Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
/var/log Наверх
В этом месте хранятся все log-файлы.
/var/spool Наверх
Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
/var/www Наверх
В этом месте размещаются Web-страницы для сервера Apache.
Раздел Наверх
Раздел виртуальной памяти для увеличения скорости обмена с оперативной памятью. Более подробнее можно узнать в статье «Создание, редактирование и удаление SWAP в Linux»
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.