LINUX.ORG.RU

Разработчики Fedora обсуждают объединение каталогов для исполняемых файлов

 


0

0

Разработчики Fedora обсуждают возможное объединение каталогов /bin, /sbin/, /usr/bin и /usr/sbin: предлагается все исполняемые файлы помещать в каталог /usr/bin, а другие каталоги сделать символическими ссылками на него для совместимости.

Леннарт Поттеринг в списке рассылки разработчиков предоставляет список преимуществ такого подхода:

  • разделение на /bin и /sbin приводит к усложнению работы разработчиков, которые зачастую ошибаются с выбором каталога, либо бездумно помещают файлы в /usr/bin;
  • первоначальное назначение каталога /sbin (размещение статически собранных файлов, на что указывает буква «s») давно неактуально;
  • разделение на /bin и /sbin не имеет отношения к безопасности (это был бы глупый принцип «security by obscurity»);
  • разделение на /bin и /sbin имеет значение только для переменной $PATH, однако усложнять доступ пользователей к некоторым инструментам - плохая затея; к тому же для этого есть более подходящие каталоги;
  • разделение на /bin и /sbin в любом случае бессмысленно уже пару версий Fedora, поскольку оба каталога включены в переменную $PATH для всех пользователей;
  • разделение приводит к усложнению, а мы должны стремиться к упрощению;
  • различные дистрибутивы размещают некоторые бинарные файлы в различных каталогах, что приводит к проблемам с переносимостью скриптов;
  • разделение на /bin и /usr/bin в основном было сделано для этапа ранней загрузки системы - минимальный набор загрузочных файлов находится в /. Но это давно не работает, и соответствующая опция убрана из инсталлятора anaconda. Более того, размещение /usr на отдельной файловой системе вызывает проблемы при загрузе посредством systemd;
  • разделение на минимальную систему в / и полную в /usr также стало бессмысленно благодаря initrd, а содержание двух уровней «минимальной загрузочной системы» - дурацкая затея;
  • существенно упростится установка «read-only» системы: так, libc и другие системные библиотеки будут доступны только на чтение, а /etc - на чтение и запись;
  • снятие снапшотов станет действительно атомарной операцией. В настоящее время btrfs требует 5 снимков - /lib, /lib64, /bin, /sbin и /usr вместо одного, что неудобно и может приводить к состояниям гонки;
  • существенно упростятся сетевая и контейнерная установки;
  • сборочные скрипты упростятся: в частности, autoconf не знает о разделении на / и /usr, и для правильной работы с ними приходится прилагать специальные усилия;
  • эксперименты уже показали жизнеспособность предложенной схемы и отсутствие серьезных проблем;
  • есть разработчик (Harald Hoyer), готовый выполнить необходимую работу.

Таким образом, подобное изменение многое упрощает для разработчика, мейнтейнера и администратора. Если оно будет принято, то может быть реализовано уже в Fedora 17.

>>> Подробности

★★★★

Проверено: Shaman007 ()
Последнее исправление: JB (всего исправлений: 2)

Ответ на: комментарий от anonymous

Я пока реальных страдальцев не очень разглядел. Вижу много тех, кто в глаза systemd не видел, но осуждает и заранее страдает, хотя ни к какому продакшену отношения не имеет вообще например. Или тех кто видел, но не разглядел. Или видел давно и не видит, что уже всё стопицот раз поменялось/починилось и дальше будет чинится и доводится до ума, но не в продакшене, а чуть ли не на десктопах и прочих ноутах. И то только в тех местах, которые блидинг едж какбэ и никто их не навязывает консервам.

Можно вот прямо хоть один пример продакшена с запиленым силой системд и страданиями?

wbrer ★★★
()
Ответ на: комментарий от x3al

1. В линуксе все библиотеки можно считать «стандартными». 2. Идеи свободного ПО позволили создать целостную систему, которую удобно обновлять и поддерживать. Зачем её дробить ради сомнительного удобства имения всего нужного для программы в одном каталоге? 3. Зачем расходовать лишнюю память при хранении и использовании. Зачем расходовать лишний трафик при обновлении?

Evtomax
()
Ответ на: комментарий от Evtomax

Затем, что без этого будет ОЧЕНЬ плохо с коммерческим софтом. Примерно как сейчас. А без него таки хуже, чем с ним.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Не вижу никаких проблем с несвободным софтом. Распаковал архив, зашёл в распакованный каталог, запустил бинарник. Совсем как в винде :)

А с нормальным свободным софтом лучше всё по-человечески остаётся.

Evtomax
()
Ответ на: комментарий от Evtomax

>Не вижу никаких проблем с несвободным софтом. Распаковал архив, зашёл в распакованный каталог, запустил бинарник. Совсем как в винде :)

Дело в том, что в винде разработчики делают софт под определённую платформу. А в линуксе эта платформа вечно плывёт, ломается, чинится и обновляется, в случае с коммерческим софтом — угадай, кому делать лишнюю работу (пусть это и сборка всего максимально статически/закидывание в один каталог всех нужных библиотек, если их лицензия позволяет). Неудивительно, что андроид успешнее десктопного линукса. С таким отношением к разработчикам далеко не уйдёшь.

x3al ★★★★★
()
Ответ на: комментарий от Evtomax

>Не вижу никаких проблем с несвободным софтом. Распаковал архив, зашёл в распакованный каталог, запустил бинарник. Совсем как в винде :)

Стандартный виндовозник не справится с этим. И в винде не так. Один файлик нажал и далее, далее, далее... Если что-то сложнее, то уже больше половины не пройдёт дальше скачивания архива. Может и распакует, только потом не сможет найти куда, лол. И не поймёт какой бинарник запускать же...

wbrer ★★★
()
Ответ на: комментарий от wbrer

> Один файлик нажал и далее, далее, далее...

А как же вот эти все install1.cab, data1.cab, _install.ins, и тэ дэ и тэпэ, и дай-то Б-г найти setup.exe. Или сие уже в прошлом?

Cancellor ★★★★☆
()
Ответ на: комментарий от Cancellor

В прошлом или срабатывает автозапуск этого самого сетапа, так как такие вещи в основном на носителях встречаются.

wbrer ★★★
()
Ответ на: комментарий от x3al

Странно, но мой GoogleEarth почему-то не замечает, что платформа плывёт, ломается, чинится и обновляется.

А винде разве не надо делать эту лишнюю работу? Или в винде стандартные системные библиотеки умеют всё? :-D

И много ли на андроеде реально хороших программ?

Evtomax
()
Ответ на: комментарий от inst

При том, что с помощью NTFS Junction Points можно монтировать любые разделы в каталоги на NTFS. Зайди в оснастку „Управление дисками” и сам посмотри.

wintrolls ☆☆
()
Ответ на: комментарий от slackwarrior

>Никто не мешает в винде прям щас делать единое деревце с логическими томами

А быдлопроги для «геймерских» мышей вообще не знают, что винда может быть установлена не в диск С:

И кто же тут ещё толстый?

Binary ★★★★★
()
Ответ на: комментарий от Evtomax

>А винде разве не надо делать эту лишнюю работу? Или в винде стандартные системные библиотеки умеют всё? :-D

Э? В винде не ломаются ни API (частенько бывает в линуксах), ни ABI (в линуксах не считается поломкой вообще).

И много ли на андроеде реально хороших программ?

А кого это волнует? Много ли на линуксе реально хороших программ, которые я не могу поставить в оффтопик?

x3al ★★★★★
()
Ответ на: комментарий от wbrer

>Что именно починят, извините?

Появится маркет, очевидно же. С ним неискушённым пользователям будет проще.

x3al ★★★★★
()
Ответ на: комментарий от x3al

А, ну это да. Хорошо бы. Ну там и щас нормально более менее, как я уже написал выше.

wbrer ★★★
()
Ответ на: комментарий от x3al

> Э? В винде не ломаются ни API (частенько бывает в линуксах), ни ABI (в линуксах не считается поломкой вообще).

Ещё раз повторяю вопрос: программы в виндовс ограничиваются только использованием стандартных системных библиотек? API и ABI - это отдельный вопрос :)

А кого это волнует?


Т.е. на ондроеде качество прог не важно, достаточно количества. А в линуксе мы придираемся к качеству прог? Будьте пожалуйста последовательны в своих рассуждениях :)

Много ли на линуксе реально хороших программ, которые я не могу поставить в оффтопик?


Как интересно мы жонглируем контекстами :)

Evtomax
()
Ответ на: комментарий от x3al

Наивно считать, что стоит предоставить замороженную платформу, и разработчики тут же кинутся писать для неё сложный и серьёзный софт. Поддержка ПО в экосистеме линукса - настолько простая задача, что с ней легко справляются даже школьники и студенты. А для софтварных компаний важно только количество потенциальных пользователей их продукта на конкретной платформе.

Evtomax
()

Блин, вот какого мы опять должны разгребать то, что эти в трусишках понавертели?

Ленарт реально уже задолбал своими идеями.

AVL2 ★★★★★
()

А, да нахрен все эти папки! Давайте прямо в корень все пихать, особенно загрузки и временные файлы

anonymous
()
Ответ на: комментарий от anonymous

> Перекрестись. Когда попробуешь восстановить без {CD-ROM,DVD-ROM,floppy,USB,etc}, вот тогда и высказывай своё «компетентное» мнение.

Возможность восстановления системы — это конечно аргумент, однако не в пользу сохранения каталогов sbin. Ну и для восстановления системы наверное лучше иметь отдельный раздел, в котором будет более широкий набор программ, чем сейчас есть в /bin и /sbin. Посмотрел содержимое каталогов /usr/bin и /usr/sbin (Ubuntu), и нашёл там следующие программы, которые могут оказаться нужными при восстановлении системы без возможности загрузки с внешнего носителя: chattr, chroot, cmp, cut, diff, du, find, free, head, lsattr, lspci, lsusb, md5sum, reset, sha1sum, sha256sum, sort и tail, ещё было бы неплохо иметь доступ к документации, а значит могут потребоваться info и man (естественно с самой документацией), какие-то вещи лучше автоматизировать, а не делать вручную, значит вероятно нам нужен perl, ещё можно представить ситуации, когда нужны программы convmv, eject, gpg, iconv, mc и screen (или просто с ними существенно удобнее), ну и вообще-то было бы неплохо иметь возможность пользоваться сетью, а значит, кроме собственно поддержки сети (хотя бы для наиболее простых случаев) могут потребоваться программы arp, dig, ftp, host, lynx, scp, ssh, tcpdump и wget. Не выделять же их и нужные им библиотеки в подкаталоги корневого раздела? А значит, если мы хотим заранее «подстелить соломку», нам нужен отдельный загрузочный раздел с полноценной системой, а не каталоги /bin и /sbin в корне.

askh ★★★★
()

Когда я впервые поставил Linux на домашний компьютер, то долго искал некую общую папку с бинарниками :) Для домашних юзеров такое нововведение будет вполне приятным, если только косяков с симлинками не будет. Для серверов - не знаю, мне кажется, изменение привычного, пусть и не идеального формата структуры - лишняя головная боль. И потом возникает вопрос: вот в Федоре появится такая штука. Федора - дистрибутив популярный, возможно, за ним потянутся разработчики других дистров. В итоге всё может привести к тому, что в куче дистров будут разные структуры папок, что только внесёт дополнительную путаницу.

LexArt ★★
()
Ответ на: комментарий от AVL2

> Ленарт реально уже задолбал своими идеями.

сама идея системд хорошая, и я наивно надеялся, что леннарт ее реализует и сгладит тем самым отрицательное впечатление от пульсаудио

но похоже он может все только ломать

www_linux_org_ru ★★★★★
()

Запасаюсь поп-корном.
Итак была оцена федоро-красно-шляп не высокая, а с такими заявками упала вовсе.
Пусть у себя в дистрах делают что хотят, могут даже включить в дистрибутив торроенты на 100гиги порнухи, это их право. А вот лезть навязывать свои стандарты - между глаз получат.

Как сказал Патрик тут

volkerdi

fl0

Hi @all,

fedora 15 and i think the next opensuse change the init system to systemd, is there a plan to do this in slackware also?

Or when not, why not?(please no flames)

rgds fl0

Let's just switch to any crazy idea Lennart can come up with.

--- Those who do not understand Unix are condemned to reinvent it, poorly.  — Henry Spencer

FeyFre ★★★★
()
Ответ на: комментарий от anonymous

>> Проблема в том, что многие программы лезут в /usr до его монтирования. Неполный список программ

Внезапно, все эти программы тоже лежат в /usr, поэтому полезть в него до его монтирования они ну никак не могут. Дело обстоит немного иначе. Это systemd пытается найти их в usr раньше, чем он сам успевает его смонтировать.

и леннарт вместо того, чтобы чуток доработать алгоритм системд, решил Исправить Весь Окружающий Мир

у меня нет цензурных слов

либо руководство федоры решило сделать свой дистр несовместимым с другими — чтобы системд работал только в федоре — и так проконкурировать с другими дистрами в глазах хомячков

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от askh

> Если бы разделение на /bin, /sbin, /usr/bin и /usr/sbin сейчас не существовало, то легко ли было бы добиться его введения

если бы у бабки был хер, она была бы дедкой

anonymous
()
Ответ на: комментарий от unsigned
libattr.so.1 => /usr/lib/libattr.so.1 (0x4018d000)

Это ТВОИ секуальные проблемы. У меня например libattr лежит в /lib64

no-dashi ★★★★★
()
Ответ на: комментарий от CryptSpirit

>Бред. Лучше бы подумали как файлы конфигураций воткнуть в один каталог. Например ~/.config

Так сделали давно. XDG_CONFIG_HOME и ко. Просто девелоперы ленятся, а некоторые так вообще рогом упираются, мол, итак всё хорошо, срач так срач, что тут такого, пусть лежит к хомяке, так всегда было.

Deleted
()
Ответ на: комментарий от unsigned

Вот, кстати, никогда не понимал, зачем такие симлинки

Узнаю одмина локалхоста. Ты слышал про скрипты, сигнатуры и #!/bin/sh ???

no-dashi ★★★★★
()

Млять. Во я дурень. С распрекрасной вин7 полностью переехал на федору. А тут маньячина во всю орудует.

anonymous
()
Ответ на: комментарий от AlexVR

Упс: /usr/local/sbin/squid

Вот только... Ты не подумал, что сквид не является необходимым для загрузки системы?

no-dashi ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

А на кой вообще все эти папки? Даешь все в / !

anonymous
()
Ответ на: комментарий от redgremlin
ldd /bin/* | grep usr | wc -l
59

А теперь проведем такой тест:

for i in /bin/* /sbin/* ; do if [ -f $i ] ; then if ldd $i | grep -q usr ; then echo $i ; fi ; fi; done
/bin/mail
/bin/mailx
/bin/ntfsdecrypt
/bin/rpm
/sbin/apctest
/sbin/apcupsd
/sbin/dhclient
/sbin/umount.udisks
Ничего жизненно важного не ссылается на /usr

no-dashi ★★★★★
()

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

sllxxe
()
Ответ на: комментарий от www_linux_org_ru

> Внезапно, все эти программы тоже лежат в /usr, поэтому полезть в него до его монтирования они ну никак не могут. Дело обстоит немного иначе. Это systemd пытается найти их в usr раньше, чем он сам успевает его смонтировать

под столом. в слезах и панике.

sllxxe
()
Ответ на: комментарий от geekless

mkfs

А почему это mkfs не нужно простому пользователю? У себя в домашнем каталоге вполне можно разметить файл в виде какой-нибудь файловой системы. Другое дело, что его будет проблематично подмонтировать, но на крайний случай, есть же эмуляторы!

anonymous
()
Ответ на: mkfs от anonymous

Бинго!

geekless ★★
()

Пусть ЛОР скинется леннарту на годичный абонимент в публичный дом.

anonymous
()

Сейчас все четко и ясно расписано зачем так сделано: http://pathname.com/fhs/pub/fhs-2.3.html#PURPOSE2 Хоть документ писался для того времени, когда все сидели на dial-up он актуален и по сей день. Теперь же, некоторыми считается что ни серверам, ни домашним ПК не нужны NFS примонтированные диски, как минимум имеется всегда овер 2Гб места (на флешке, диске и т.п.). Всегда проще сделать реинтсалл, чем запустить fsck и т.д.

Г-ну Поттерингу следовало изначально написать такой документ хотя бы в черновом виде, а затем говорить, что он хочет сделать. Получается что система прогибается под systemd, а не systemd написан для системы. ИМХО, в настоящий момент можно было бы расширить список утилит в /bin и /sbin с учетом потребностей людей, которые считают, что раз нету его любимой утилиты по восстановлению системы, то проще переустановить всю систему.

gh0stwizard ★★★★★
()

Вот развели демагогию

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

grigoreo
()
Ответ на: комментарий от askh

> Возможность восстановления системы — это конечно аргумент, однако не в пользу сохранения каталогов sbin.

Посмотрел содержимое каталогов /usr/bin и /usr/sbin (Ubuntu), и нашёл там следующие программы


ещё можно представить ситуации


нам нужен отдельный загрузочный раздел с полноценной системой, а не каталоги /bin и /sbin в корне.


Слышь, теоретик, закрой свой фонтан фантазий с той стороны. Если тебе хочется хоть что-то кому-то доказать в своей жизни - *издуй в толксы, они для этого и сделаны.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

>>> Проблема в том, что многие программы лезут в /usr до его монтирования. Неполный список программ

Внезапно, все эти программы тоже лежат в /usr, поэтому полезть в него до его монтирования они ну никак не могут. Дело обстоит немного иначе. Это systemd пытается найти их в usr раньше, чем он сам успевает его смонтировать.


и леннарт вместо того, чтобы чуток доработать алгоритм системд, решил Исправить Весь Окружающий Мир


у меня нет цензурных слов


Да, вообще, не понятно, какой *удак подарил Леннарту на день рождения Fedora?

anonymous
()
Ответ на: комментарий от no-dashi

>Узнаю одмина локалхоста

узнаю негра-говноодмина, убеждённого, что то, что хорошо для сервера - хорошо всегда и для всех

вася, юзай свой дебиан и не обращай внимания на прогресс десктопных дистрибутивов

anonymous
()
Ответ на: комментарий от anonymous

>я тоже так думал, пока не понял, что у меня нет никаких /dev/sda1, а уже LVM торчит во все стороны

Ну и кто Вам в этом виноват?

qwe ★★★
()
Ответ на: комментарий от no-dashi

Тем не менее, бардак уже имеет место быть. У меня в мандриве список еще длиннее (в том числе, vim и mount.nfs), так что бороться с этим бардаком никто особо не собирается, да и бесполезно это по большому счету.

redgremlin ★★★★★
()
Ответ на: комментарий от sllxxe

>даже в силу своего unix-нубства понимаю острое значение разделения /bin и /usr/bin (особенно для севкаков)

Ну так просвети, в чем значение разделения, да еще такое острое?

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

А зачем тут «бороться»? Системе, по большому счету, всё равно где лежат бибилиотеки - лишь бы их ld нашел. Все что надо - это мантейнерам пакетов определиться с тем, где именно лежат библиотеки и бинарники. И то, что systemd не понимает, что надо смонтировать раздел прежде чем лезть на него - это проблема systemd. По логике, надо вообще при старте сначала монтировать локальные ФС из fstab, и потом уже начинать делать всё остальное.

У меня в мандриве список еще длиннее (в том числе, vim и mount.nfs)

Что только дкоазывает кривизну мандривы :-) vim => /usr/bin/vim, а в /bin лежит vi. mount.nfs в /sbin и все его библиотеки в /lib64 :-)

no-dashi ★★★★★
()
Ответ на: комментарий от x3al

>> А как систему восстанавливать в результате, если / еще жив, а /usr уже умер?

man liveusb.


man сервер на Аляске.

man продакшн-ребутать-нельзя

man ембеддед устройство, usb-портов нет.


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

val-amart ★★★★★
()
Ответ на: комментарий от no-dashi

Узнаю одмина локалхоста. Ты слышал про скрипты, сигнатуры и #!/bin/sh ???

Зачем /usr/bin/awk? Что-то мешает написать «#!/bin/awk»?

Я вообще не одмин, но логика у меня есть.

unsigned ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.