В Fedora рассматривается предложение по переносу всех исполняемых файлов в одну директорию

2011-11-01

Разработчики дистрибутива Fedora Linux рассматривают возможность перемещения всех имеющихся в системе исполняемых файлов в одну директорию. Иными словами, предлагается размещать исполняемые файлы только в каталоге /usr/bin, а директории /bin, /sbin и /usr/sbin преобразовать в символические ссылки, указывающие на /usr/bin. По аналогии предлагается упразднить /lib и помещать все системные библиотеки только в директории /usr/lib. В случае одобрения предложения, изменения могут вступить в силу уже в весеннем релизе Fedora 17.

Перенос всех файлов и библиотек в иерархию /usr открывает очень интересные перспективы: так как все необходимые для работы компоненты будут присутствовать в рамках одного дискового раздела, появляется возможность обособленного использования нескольких разделов /usr для загрузки разных версий или состояний дистрибутива (например, через создание снапшотов в процессе обновления) и, что особенно интересно, становится возможным использование одного смонтированного в режиме только для чтения самодостаточного раздела /usr одновременно на нескольких компьютерах. Ранее, при монтировании /usr по сети, у администраторов возникали проблемы с обновлением содержимого /bin, /sbin и /lib на конечных машинах, с самодостаточным /usr поддерживать большое число типовых машин станет значительно проще и безопаснее (/usr предлагается монтировать в режиме только для чтения).

В соответствии с новым подходом, все устанавливаемые из RPM-пакетов компоненты будут сосредоточены только внутри раздела /usr и не будут встречаться за его пределами. Файлы и каталоги, присутствие которых необходимо вне иерархии /usr предлагается связывать при помощи символических ссылок. В корне останутся только файлы, имеющие непосредственное отношение к текущему компьютеру, например, файлы конфигурации, логи и файлы с меняющимися данными (/etc, /root, /var, /run).

Разделение /bin и /usr/bin было актуальным во времена раздельного монтирования корня и раздела /usr, в случае невозможности примонтировать /usr, наличие каталогов /bin и /lib позволяло сохранить минимально работающую систему, которую можно было использовать в качестве базы для дальнейшего восстановления. В настоящее время дистрибутив нереально загрузить без /usr (/usr монтируется из initramfs до запуска процесса инициализации и содержит необходимые для загрузки компоненты), что в сочетании с распространением практики разбиения диска на один большой раздел и подготовкой установочного образа в виде Live-системы, позволяет отнести к анахронизмам разделение бинарных файлов по разным частям файловой системы.

В пользу объединения sbin и bin упоминается то, что во многих дистрибутивах данные директории одновременно включены в путь по умолчанию, а также то, что в sbin можно найти программы, которыми пользуются и обычные пользователи. Тем не менее, среди разработчиков Fedora нашлось много противников объединения sbin и bin, которые считают логичным разделение пользовательского ПО и требующих повышенных привилегий программ для администратора (изначально каталог sbin предназначался для статически собранных программ). Также упоминается то, что объединение sbin и bin вызовет необходимость действий со стороны разработчиков upstream-проектов.