Почему репозитории — тупик для операционных систем

И с чем остаются пользователи, когда репозитории исчезают естественным образом...
3 ноября 2025, понедельник 23:38
Hard-Workshop для раздела Блоги

Что отличает операционную систему Windows от прочих, уже третье десятилетие всё пытающихся, но никак не способных осилить зону ПК и ноутбуков? Кто-то скажет: виновата корпорация, постоянно заносящая чемоданы денег всем подряд, чтобы всё делалось именно под Windows. Другие скажут: Это всё глупые пользователи виноваты, не хотят переходить на прекрасные и свободные операционные системы, большинство всё равно продолжает использовать Windows, а не Линуксы или что-то ещё.

Почему так? Неужели подавляющее большинство людей во всём мире действительно очень глупы, раз не желают использовать Linux даже бесплатно?

Даже древняя Windows 7 живее Линуксов на сегодняшний день. Даже Windows XP до сих пор используется и отражается в онлайн статистике. И это при том, что большинство систем работающих под управлением Windows XP, скорее всего не подключены к интернету и не учитываются. Тем временем ОС зависимые от репозиториев, просто нежизнеспособны без подключения к интернету.

Так почему Windows может воскреснуть в любой момент и спокойно продолжить работу даже спустя 20-25 лет после выпуска, а Linux и прочие подобные системы не могут в настольном сегменте? Опять злые корпорации постарались? Или всё гораздо проще, чем может показаться? Даже Android живее любых Линуксов, потому что есть возможность распространять софт автономными APK файлами. Хотя, стоит признать, корпорации действительно пытаются закрутить гайки и лишить пользователей тех самых APK файлов, но это уже проблемы мобильного сегмента.

Вся магия в уважении к пользователям и разработчикам со стороны операционной системы. Хотя это мало относится к современной версии Windows 11, ибо она пошла по пути Linux, всё больше проявляя неуважение к пользователям и разработчикам. Но так было не всегда. Поэтому Windows XP хоть и давно лишена официальной поддержки, но не умерла. То же относится и к Windows 7.

                               

Хочется поиграть? Вот вам диски с играми для Windows на любой вкус!

                       

Нужны программы для решения бытовых задач? Вот вам диски с разнообразным софтом! Нужно что-то экзотическое из разряда оптического распознавания текста? Диск и с таким софтом найдётся! Даже не распакованный!

                       

Хочется разработать свою программу в 2025 году для какой-нибудь Windows XP? Без проблем! Наверняка найдётся диск с качественной средой разработки и компиляторами на любой вкус.

Даже для игровых консолей софт (игры) выпускался дисками. Их можно было использовать без геморроя с учетными записями и тотальной, чуть ли не рабской привязки к DRM-сервисам через Интернет.

           

А что в Linux и прочих подобных системах? Как бы красиво не звучали лозунги вроде «Linux for Human Beings», что в переводе означает «Linux для людей», но в реальности данный класс операционных систем и по сей день является непригодным для использования. Хотя само ядро Linux и отвратительно, ведь разработчики постоянно ломают обратную совместимость с драйверами, тем самым проявляя грубейшее неуважение к производителям оборудования. Но это лишь одна из причин тотального провала данного семейства операционных систем.

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

Давайте откроем страницу какой-нибудь ОС, эксплуатирующей репозитории для распространения софта и хранения системных компонентов. Возьмём FreeBSD. Что мы видим? Есть огромное множество версий, но только три из них поддерживаются. Есть ли жизнь за пределами поддерживаемых версий у такой системы? Скорее нет, чем да.

У меня тут есть некоторое количество GhostBSD образов на основе FreeBSD. Эта система как раз предназначена для обычных ПК и пользователей. По крайней мере, так она позиционируется.

У меня сейчас уже работает одна виртуальная машина и там скачивается репозиторий 13 версии FreeBSD (GhostBSD). Скачивать нужно 122 гигабайта пакетов. Это уже выглядит как проблема содержания. Содержать целый репозиторий многократно дороже, чем отдельные установочные файлы, к которым все привыкли в среде Windows.

Знаете, почему я скачиваю репозиторий? Потому что он в скором времени умрёт, а в новых репозиториях отсутствуют очень важные пакеты.

Это уже проблема жизнеспособности репозиториев. И если среди софта для Windows выживают только пригодные для использования, а худшие теряются, то в случае репозиториев выживают все. Только делают это в одной бочке и только до тех пор, пока эта массивная бочка существует в полной целости и сохранности. Стоит потеряться хоть одной коробке из бочки, как всё превращается в хаос и поломанные зависимости.

Возьмём одну из последних версий GhostBSD на основе FreeBSD 14 версии. Репозитории вполне нормально обновляются и работают. Но что, если я хочу установить Godot Engine версии 3.5 вместе с редактором? Это уже невозможно! Пакет godot35 есть, а пакета godot35-tools нет! Именно пакет godot35-tools несёт в себе среду разработки для создания приложений и игр на движке Godot. Без него разработка новых игр и программ невозможна.

Тем временем в старых репозиториях FreeBSD 13, которые в скором времени наверняка умрут, все необходимые пакеты есть. Это говорит о том, что обслуживающий персонал новых репозиториев плохо выполняет свою работу. И это один из серьёзных минусов такого подхода к распространению ПО. Когда «ответственность» за пакеты с программным обеспечением лежит не на разработчиках, а на посторонних людях, которые занимаются обслуживанием репозиториев.

Когда я говорю, что репозитории умирают, именно это я имею ввиду в прямом смысле. Даже операционные системы, основанные на всё ещё живом FreeBSD 13, порой оказываются мертвы, потому что по умолчанию ссылаются на зеркало основного репозитория, а оно уже исчезло.

Линуксоиды, как одни из самых активных танцоров с бубном, очень любят козырять тем, что репозитории отправляются в архив. Нужно просто поменять адрес, и всё якобы прекрасно будет! Хотя сразу же встаёт вопрос: Откуда пользователь узнает новый архивный адрес? Ну а чтобы поменять адрес, нужно правильно потанцевать с бубном в правильных местах, о которых обычному человеку ничего неизвестно.

Ну да ладно, закроем пока глаза на такие проблемы. Давайте сразу посмотрим на архивный репозиторий. Постойте, его нужно ещё найти! И кому доверять? Вдруг где-то вирусы добавили? Вот и очередная серьёзная проблема всплыла.

Проблема безопасности и доверия. Если в случае Windows разработчики и площадки распространения софта стараются беречь свою репутацию насколько возможно, чтобы не потерять доверие пользователей, то в мире репозиториев, по сути, принуждают доверять какому-то условному Васе, заведующему репозиторием.

Впрочем, даже если пользователь и найдёт архивную версию, доверившись непонятно кому в Интернете, ещё не факт, что всё заработает как положено. Это уже проблема ненадёжности и неудобства использования в дополнение к проблеме безопасности.

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

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

За примером далеко ходить не надо. В репозиториях Debian 12 валяется Krita версии 5.1.5, да ещё и разорванная на 4 куска зависимостей. Тем временем, даже старый пакет в формате Installer-SH позволяет установить Krita версии 5.2.9 и ничто не мешает упаковать ещё более свежие версии программы в формат Installer-SH и установить рядом со старыми версиями без конфликтов.

Тут плавно переходим к проблеме конфликтов, которую ещё во времена Windows XP побороли, упаковывая софт вместе со всеми необходимыми для работы компонентами. Но для Linux и прочих подобных операционных систем, построенных на зависимости от репозиториев и пакетных менеджеров, конфликты до сих пор являются серьёзной проблемой.

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

В данном случае на удаление отправляется только Firefox и FFMPEG. Система будет и без них работать, но лишиться браузера и возможности воспроизводить даже простые видеофайлы. Плеер VLC, кстати, тоже должен быть в списке, но он уже был удалён при установке то ли Rsync, то ли Wget. И вот так непринуждённо, по кусочкам, система превращается в прах по вине изначально бесперспективного подхода к распространению софта в её основе.

Есть ли альтернативы пакетным менеджерам с репозиториями? Есть, но они не распространены. Многие не желают пользоваться Линуксами и прочими подобными системами. А люди, которые пользуются, скорее всего, все из себя «не такие» и противятся всему, что хоть как-то похоже на Windows. Даже если вменяемых альтернативных реализаций просто не существует.

Репозитории для распространения софта — настолько тупиковый путь, что даже в серверном сегменте изобрели Docker и прочие костыли, лишь бы избавиться от Ада зависимостей и прибитых гвоздями к системе пакетов. В настольном сегменте изобрели всевозможные Flaptak и Snap, но это всё те же репозитории, только подконтрольные другим людям и с дополнительным набором уникальных проблем.

Именно потому мне пришлось разрабатывать автономный установочный пакет приложений Installer-SH для своего дистрибутива Chimbalix, потому что нет вменяемых способов распространения софта для Linux. В качестве бонуса сделал его универсальным для установки софта в прочих дистрибутивах Linux.

https://github.com/Shedou/Chimbalix-Software-Catalog

По иерархии способов распространения софта, Installer-SH находится на вершине, рядом с обычными архивами содержащими предварительно скомпилированные исполняемые файлы приложения. Почему на вершине? Да потому, что любая программа в данном формате будет пригодна для установки и использования без лишних телодвижений до тех пор, пока существует хоть одна копия установочного пакета и операционной системы, в которой программа способна работать.

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

Некоторые могут вспомнить AppImage. Но это лишь очередная нелепая попытка уйти в сторону от существующих проблем под красивые лозунги, а не решить их в корне. Любая операционная система, зависимая от репозиториев, умрёт вместе с репозиториями. Хранить сотни гигабайт пакетов с массой зависимостей само по себе очень накладно. И ещё проще потерять, вместе с внезапно вышедшим из строя HDD/SSD или недоступностью «облачного» хранилища.

К сожалению, я не вижу ничего хорошего в репозиториях для распространения софта в том виде, в котором они существуют и существовали во всяких Линуксах. Увы.

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.