Найти тему
OVERCLOCKERS.RU

Танцы с бубном, или почему Linux репозитории несостоятельны в Desktop сегменте

Оглавление

Чем хороши репозитории?

  1. Это основной, и чуть ли не единственный способ распространения софта в серверном сегменте, ведь кроме терминала ничего обычно нет.
  2. Позволяют работать над проектом целыми командами, и вносить правки в отдельные файлы, при этом сохраняется история.
  3. Можно скачать отдельный пакет из "болота", и пакетный менеджер сам попытается подтянуть зависимости.
  4. Расположены где-то в интернете и доступны почти откуда угодно при наличии доступа к интернету, так же есть множество "зеркал".
  5. По слухам они вроде как являются безопасным источником приложений, а так же некоторые говорят что репозитории надёжные.
  6. Позволяют организовать Центры Приложений.
  7. Я не знаю что ещё в плюсы прописать, буквально приходится "высасывать из пальца" преимущества перед ресурсами вроде обычного веб-сайта/файлового хранилища/флешки... Как пользователь, я не могу придумать никаких внятных плюсов для репозиториев.

Чем плохи репозитории?

  1. Бесполезны без доступа к интернету.
  2. Репозитории обычно являются централизованными объектами со всеми вытекающими из этого проблемами, так называемые "зеркала" не являются надёжным "подспорьем", ведь они тоже централизованные.
  3. Сильная зависимость от скорости интернет канала, ведь менеджеры пакетов (в основном центры приложений) порой ничего не говорят пользователю о текущей скорости скачивания, а прогресс установки не всегда отражает реальное состояние.
  4. Сильная зависимость от качества интернет соединения, часто возникают проблемы с кэшем/битыми пакетами в случае потери соединения, либо возникновения ошибок в процессе скачивания.
  5. Репозитории постоянно умирают, так как на поддержание работоспособности требуются ресурсы, это приводит к тому, что пользователи со временем остаются у "разбитого корыта" при использовании софта зависимого от репозиториев.
  6. Ад зависимостей в разнообразном виде скорее неизбежен при использовании разных репозиториев для установки софта, например когда в основном репозитории нет нужного пользователю приложения, и приходится подключать сторонние.
  7. Так как репозитории для Linux погрязли в зависимостях, невозможно просто взять, и скачать необходимое приложение для автономной установки на другой системе, скорее всего произойдёт какая-либо вариация из разряда "ад зависимостей", то же касается и обычного софта для Linux в репозиториях вроде GitHub, пример тому абсолютное большинство якобы портативных сборок Stable Diffusion, пока что из действительно портативных сборок SD я знаю только свои, "Neuro"...
  8. На каждую систему зачастую нужно заново скачивать приложения, чтобы болото зависимостей правильно состыковалось, а это значительный перерасход трафика, что создаёт лишнюю нагрузку на интернет каналы.
  9. Часто репозитории (например FlatHub) не подразумевают никакой адекватной возможности скачивать пакеты для локального использования/установки, как следствие операционная система зависимая от репозиториев становится непригодна для использования на автономных ПК.
  10. Репозитории ненадёжны, их содержимое может быть изменено в любой момент, пользователь спустя некоторое время может не получить именно то, к чему давно привык.
  11. Обычно софт зависимый от репозиториев нежизнеспособен за его пределами, так как последние не предоставляют автономные установочные файлы, а лишь разрозненные пакеты и зависимости, из-за чего люди не могут по-человечески сделать копию необходимого софта и распространить за пределами репозитория, например на веб-сайтах, а сами репозитории никто обычно не хочет клонировать, ведь нужно ещё умудрится правильно это сделать, а после каким-то чудом это должен сделать пользователь, только в обратном порядке.
  12. Исходя из предыдущих пунктов следует, что владельцам проекта/репозитория ничто не мешает уничтожить старую версию какого-либо приложения, и таким образом принудить пользователей к переходу на что-то "новое", даже если оно значительно хуже "старого". Иначе говоря имеющие власть над репозиторием могут диктовать пользователю чем он должен пользоваться.
  13. В репозиториях вроде PyPl можно незаметно подцепить вредоносное ПО, болото зависимостей автоматически подтягиваемых пакетными менеджерами этому крайне способствует, хотя Linux репозитории этой проблеме меньше подвержены благодаря более тщательному контролю, но скандал с локализацией Ubuntu 23.10 всё же был, да и в целом время от времени находят вирусы, и это при около нулевой популярности Linux относительно Windows и Mac OS...

Брр, пожалуй хватит, а то слишком много текста получилось, хотя говорить о недостатках репозиториев в Desktop сегменте можно ещё очень долго.

Давайте перейдём к более интересной ситуации!

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

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

Ну а если кто-то не согласен - у таких линуксоидов принято нагонять ботов для накрутки рейтингов в минус всем неугодным, а себе любимым и "всегда правым экспертам" в плюс:

Жалкое конечно зрелище, но забавное, однако я не собираюсь сейчас рассматривать комментарии.

Тут такое дело... Когда выходил MX Linux 23.1, он был основан на Debian 12.2, и репозитории были соответствующей версии, однако время прошло (меньше года), и вот репозиториев Debian 12.2 больше нет, вместо них теперь версия 12.5:

-3

То есть я, как пользователь, больше не имею доступа к софту из репозитория версии 12.2, на основе которого собственно построен дистрибутив MX Linux, а я на его основе создал свой дистрибутив, и эта цепная зависимость меня очень напрягает...

Тем более не забываем про тот факт, что репозитории Debian 12 умрут ровно так же, как например Debian 8:

-4

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

Со слов приверженцев "дряхлого пингвина" сделать локальную копию дело пустяковое, ну и я, как нормальный человек пошёл искать как это сделать... Разумеется начал с сайта Debian, но кроме размера архива ничего полезного не нашлось, или оно настолько тщательно спрятано, что я не нашёл, а на странице размера зеркала предлагают получить информацию о зеркалировании CD архивов дистрибутива, ну и я такой - почему бы и нет:

Что могло пойти не так? Ну начнём с того, что ISO образы Debian мне явно не нужны, ведь пришёл не за дистрибутивом, а за репозиторием...

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

-7

Почему Binaries для Windows есть, а для Linux нет? У разработчиков руки-крюки, чтобы скомпилировать адекватный статический бинарник для Linux? Или Linux настолько дерьмо, что под него никто не хочет ничего делать по-человечески, и свою работу перекладывают на мейнтейнеров дистрибутивов? А мейнтейнерам нормально там вообще подтирать задницы за такими горе-разработчиками?

-8

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

Я конечно пытался использовать Windows версию Jigdo через Wine, но она не особо хотела работать, в итоге было решено установить эту дичь из репозитория пакетным менеджером, но смог ли я этим мракобесием решить задачу? Конечно же нет, для чего вообще этот убогий софт разработали? Обычный ISO образ дистрибутива можно и браузером скачать без каких-либо танцев с бубном...

Ну что, раз по-человечески не получилось, значит идём "во все тяжкие"! Начинаем усердно трогать поисковую систему в попытках найти адекватный способ копирования репозиториев Debian:

Из интересного нашлась официальная документация Ubuntu, протухшая этак на ~14 лет, но указывающая на утилиту apt-mirror, и статья на "Хабре", так же указывающая на данную утилиту:

Изрядно потанцевав с бубном я наконец начал скачивать репозиторий весом ~96 ГиБ, мне вот интересно, как такой объём засунуть на обычную флешку? Ну да ладно, процесс пошёл, вроде что-то качает, хотя и непонятно что и как долго это будет происходить, утилиту явно делали линуксоиды не видавшие даже уровень Windows XP:

-13

Как думаете, на этом танцы с бубном закончились? Конечно же нет! Во-первых, один файл размером 1.4 ГиБ оказался битым, я прерывал процесс загрузки так как нельзя было полностью загружать интернет канал в тот момент, а линуксоидный софт конечно же оставил не до конца скачанный файл "как есть":

-14

Разумеется чистить мусор мне пришлось вручную, радует лишь то, что это в логах оказалось заметно, иначе пришлось бы с нуля все 96 ГиБ выкачивать уже не целый день, а целую ночь, так как непонятно было бы какой именно файл "битый"...

Но даже скачав amd64 ветку репозитория Debian 12.5 мои танцы с бубном не закончились, проблемы прорастали как грибы после дождя в геометрической прогрессии...

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

Ну а решили ли эти все форумы мои проблемы? Конечно же нет, вроде вот и у меня, и у людей что-то похожее, но к локальному репозиторию всевозможные "решения" никак не подходят:

А потом линуксоиды рассказывают сказки, что это не линуксы говно, это просто пользователи тупые и криворукие, видите ли, еще и репутацию портят "прекрасному" OpenSource-сообществу! Срочно забанить! Чтобы не говорили плохо про вечно убогие... К хм... Прекрасные и совершенные линуксы!

-17

Но вернёмся к злополучным репозиториям...

Как я не танцевал с бубном над файлами конфигурации, как не пытался подключать локальный репозиторий через "file:/" (так сказано в мануалах), в итоге у меня есть лишь две бесполезные папки, в которых хранятся сотни гигабайт пакетов, но непригодных для использования... Я даже загрузил i386 репозиторий к amd64, ибо на его отсутствие ругался пакетный менеджер, но это всё бесполезно:

-18

Ибо система постоянно выпадает в ошибки при попытке подключить локальный репозиторий:

Можно конечно вручную распаковать архивы с файлами, на отсутствие которых ругается система, но это приводит лишь к нарастающему числу проблем:

Да и совершенно непонятно что делать с ошибкой "couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)", никакие особые права на файлы никак не решают проблему, можно конечно попытаться засунуть это всё дерьмо в системный каталог "/mnt/repo", но вашу кочергу! А как же тогда сохранение локального репозитория в любом месте, хоть на флешке?

Ладно, попробуем символической ссылкой засунуть локальный репозиторий в системный каталог, ведь у меня на системном разделе нет лишних 130 ГиБ свободного места, потому это единственный вариант:

-21

Но "дряхлому пингвину" такое не нравится:

-22

А хотя постойте, я же забыл добавить "file:/" в начале...

-23

Впрочем, ошибки хоть и поменялись, но репозиторий всё равно невозможно использовать:

-24

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

Хотя постойте, в мануале на сайте Debian что-то говорят ещё про символическую ссылку, в других мануалах про это особо не писали, надо бы попробовать, хотя оно наверняка будет забыто со временем так как не интуитивно очевидное действие, но если сработает, то это будет интересно:

-25

Пожалуй сойдёт костыль:

-26

Изменив путь к репозиторию обратно на обычный, без всяких "/mnt", вроде как что-то поменялось, не видно ошибки "_apt":

-27

А значит нужно вручную распаковать файлы, на которые ругается, и проверить ещё раз, вдруг заработает! Причём отмечу забавный факт, проблемные файлы изначально запакованы в xz архив, тем временем остальные файлы, к которым нет претензий, запакованы в bz2 формат:

-28

Как-то мне это совсем не нравится, ошибки снова по нарастающей прут...

-29

Господи, какое же это линуксоидное мракобесие...

А вот на этом "мои полномочия всё", где я возьму файл "Contents-all", если его просто не существует ни в каком виде? Я его родить что ли должен? Или что?

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

-32

Немного неочевидного шаманства, и файл размером 480 MiB на месте:

-33

Ну вот и приплыли, очередные ошибки, так это, разве нельзя одним списком вывести? Или надо все мозги пользователю изнасиловать, прежде чем что-то сдвинется с места? И почему оно теперь в "/var" переехало...

-34

Господи, неужели разработчикам было так сложно перенести каждую стоку на новую, эти сообщения об ошибках просто отвратительно читать... Да и что на этот раз не нравится "дряхлому пингвину", права есть, что ещё ему надо!

-35

Да пошло оно всё! Не скажу куда, это совсем некультурно будет...

В общем пытаюсь через локальный веб-сервер присосать локальный репозиторий, но что-то пошло не так:

-36

Ещё больше танцев с бубном, ведь некоторые линуксоидные мануалы оказались тухлыми, теперь ошибка изменилась, но сути не меняет, локальный репозиторий до сих пор невозможно использовать:

-37

Делать нечего, продолжаем танцевать с бубном:

-38

Пердолиться с подписями? Нет, я не хочу, потому нашлись параметры позволяющие использовать "небезопасные" репозитории, однако проблемы как были, так и остались:

...

У меня уже нет идей как это линуксоидное дерьмо заставить нормально работать, и если честно, даже мне надоело долбиться в бесконечные ошибки, пытаясь найти "тот самый" рабочий мануал, проще наверное вручную зайти в каталог, вызвать терминал и прописать "sudo dpkg -i *.deb", а потом уже разгребать недостающие зависимости вручную:

-40

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

Хотя нет, не установил бы, у меня нет лишних пол терабайта (если не больше) на системном разделе, общий размер которого всего ~300 ГиБ, да и ряд пакетов конфликтуют между i386/amd64 архитектурами, так что это заведомо гиблое дело всё накатывать...

Так или иначе на этом всё, может быть потом придумается какое-нибудь костыльное решение, что заработает, но сейчас пошло оно куда подальше!

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

-41