| 10:23a |
Про монолитность GNU/Linux (с точки зрения пользователя) Дистрибутивы на базе GNU/Linux - монолитны и это жопа. Наверное первое с чем вы сталкиваетесь попадая в linux - это иной способ установки приложений, а именно репозитории и пакетные менеджеры. И может показаться, что все иначе и приложения разбиты на кучу частей и общие библиотеки и все говорит о том, что linux - это конструктор, но на деле, если у вас нет времени и желания пересобирать пакеты под себя (или использовать source-based дистрибутивы, хотя там свои косяки), то вы получаете монолит. * Системные и прикладные приложения и библиотеки не разделены. Обновляя систему, вы неизбежно обновляете и приложения. Обратное тоже верно - хотите более свежую версию приложения, будте добры обновить пол системы. * Если у разработчика выходит новая версия ПО, то что надо делать пользователю? Правильно, сидеть и ждать пока ментейнер соберет пакет, который по зависимостям потянет обновление половины системы... * Новый софт не всегда лучше чем старый. Помните драммы с GNOME2 -> GNOME3 и KDE3 -> KDE4, да со временем новые окружения стали получше, но на старте это был лютый глюкодром. * Не всегда удается вычистить все зависимости. А тут все просто, один пакет может быть в зависимостях у нескольких и когда вы удаляете ненужный пакет, то зависимость может остаться т.к. ее хотел другой пакет (но при его установки вы от этой зависимости отказались). Да это больше актуально для debian и там есть возможность делать "сеты" чтобы точно подчистить все, но как часто вы эти сеты не забываете делать? И вообще слышали ли о них? * Пакеты "размазаны" по файловой системе и о том где лежат файлы знает только пакетный менеджер. Просрали базу в случае бага - переустанавливайте систему (или откатывайтесь на бекап). * Хотите иметь раздельно Систему и ПО - ебитесь сами. Сибирайте минимальный образ, монтируйте в RO, а приложения собирайте из сырцов в условный /opt примонтированный отдельно. Столкнулись со сложностями при компиляции - Ебитесь сами. * Большинство прикладных (не специализированных) приложений прибиты гвоздями к GNOME/KDE. Хотите Krusader под GNOME? Тащите вместе с qt часть KDE, а заодно systemsettings для настройки внешнего вида, шрифров, иконок и пр. Хотите компилять сами? Ну ебитесь с компиляцией половины KDE. * Source-based могут показаться решением, т.к. упрощают процедуру компиляции, но попробуйте не обновлять систему месяц и проведите прекрасный вечер разрешая конфликты ручками. И не надо считать себя умнее ментейнеров, елси вы простой пользователь то врятли соберете безопаснее и стабильнее, а если могете - то уже наверняка сопровождаете свой репозиторий/overlay. * У вас есть пакет, но нет доступа в интернет для докачке зависимостей? Ебитесь сами. Вообще эта тема бесит больше всего, нет доступа в интернет или десятку DVD со всеми пакетами? Все. Ничего не поставите (конечно, может и повезти, но это лотырея). * Лучше не становится. Есть три технологии, которые должны сделать жизнь проще: * appimage - Бинарник в котором все есть. Не пользуется популярностью у дистрибутиво-писателей, подходит когда надо срочно запустить какой-нибудь GTK софт под KDE (или наоборот) и не хочется тащить кучу зависимостей. С безопасностью все плохо т.к. firejail по сути RIP. * flatpak - Тоже репозиторий, но пакеты более жирные. Есть изоляция через bubblewrap. В стандартном репозитории только распоследние версии ПО, хотите более старую? Ебитесь и собирайте сами. * snap - почтикак flatpak, но тормознее и с единственным репозиторием (которым владеет canoical), хотите добавить свой пакет? Ебитесь не только со сборкой, но и с пропихиванием в canonical. Ubuntu пробует прийти к атомарности системы и поставки пакетов в snap, что похвально, но получается не очень хорошо. Ждем когда snap отомрет (вслед за mir и upstart) и они перейдут на flatpak, может станет лучше. * Бонус: NIXOS. Вообще хороший конструктор, когда надо быстро разворачивать много однообразных систем или иметь возможность откатиться на предыдущее состояние системы, но пакеты ставятся все так же из репозитория (да, никто не запрещает использовать flatpak/appimage) и если пакета нет - ебитесь и собирайте сами.
Вот так и получается, что дистрибутив - это монолитный репозиторий разбитый на кучу пакетов, который надо всегда держать под рукой (хотя бы облачный) для возможности легко установить любой софт. Windows, Android, macOS - достаточно просто скачать бинарник и 90% что он у вас заработает (может API не совпадать в android или версия .net не подходящая в windows, или "приложение требует более новую версию macos"), но все это можно предусмотреть и обойти перед установкой, а вот что за баги прилетят с очередными обновленями половины дистрибутива, никто не знает.
И не говорите: чего ты ноешь, надо - компиляй. А вот то и ною, что когда начинаешь мыслить как обычный пользователь, который переполз с windows/macos, то он помимо потери к огромной куче профессионального рабочего софта, он получает геморой с установкой того, что есть и возможность получить нерабочую систему после неудачного обновления. А дистрибутив, который призван избавить от проблем с зависимостями и облегчить откат является достаточно advanced-нутым для опытного linux-пользователя, не говоря уже про новичков.
И да у меня есть концепция "идеального дистрибутива", но кому оно надо если я сам не буду тратить время на его сборку и поддержку, хватило мне опыта с "киосками" на базе debian live и попытками оптимизировать под себя crux/nixos. |