Чем хороши репозитории?
- Это основной, и чуть ли не единственный способ распространения софта в серверном сегменте, ведь кроме терминала ничего обычно нет.
- Позволяют работать над проектом целыми командами, и вносить правки в отдельные файлы, при этом сохраняется история.
- Можно скачать отдельный пакет из "болота", и пакетный менеджер сам попытается подтянуть зависимости.
- Расположены где-то в интернете и доступны почти откуда угодно при наличии доступа к интернету, так же есть множество "зеркал".
- По слухам они вроде как являются безопасным источником приложений, а так же некоторые говорят что репозитории надёжные.
- Позволяют организовать Центры Приложений.
- Я не знаю что ещё в плюсы прописать, буквально приходится "высасывать из пальца" преимущества перед ресурсами вроде обычного веб-сайта/файлового хранилища/флешки... Как пользователь, я не могу придумать никаких внятных плюсов для репозиториев.
Чем плохи репозитории?
- Бесполезны без доступа к интернету.
- Репозитории обычно являются централизованными объектами со всеми вытекающими из этого проблемами, так называемые "зеркала" не являются надёжным "подспорьем", ведь они тоже централизованные.
- Сильная зависимость от скорости интернет канала, ведь менеджеры пакетов (в основном центры приложений) порой ничего не говорят пользователю о текущей скорости скачивания, а прогресс установки не всегда отражает реальное состояние.
- Сильная зависимость от качества интернет соединения, часто возникают проблемы с кэшем/битыми пакетами в случае потери соединения, либо возникновения ошибок в процессе скачивания.
- Репозитории постоянно умирают, так как на поддержание работоспособности требуются ресурсы, это приводит к тому, что пользователи со временем остаются у "разбитого корыта" при использовании софта зависимого от репозиториев.
- Ад зависимостей в разнообразном виде скорее неизбежен при использовании разных репозиториев для установки софта, например когда в основном репозитории нет нужного пользователю приложения, и приходится подключать сторонние.
- Так как репозитории для Linux погрязли в зависимостях, невозможно просто взять, и скачать необходимое приложение для автономной установки на другой системе, скорее всего произойдёт какая-либо вариация из разряда "ад зависимостей", то же касается и обычного софта для Linux в репозиториях вроде GitHub, пример тому абсолютное большинство якобы портативных сборок Stable Diffusion, пока что из действительно портативных сборок SD я знаю только свои, "Neuro"...
- На каждую систему зачастую нужно заново скачивать приложения, чтобы болото зависимостей правильно состыковалось, а это значительный перерасход трафика, что создаёт лишнюю нагрузку на интернет каналы.
- Часто репозитории (например FlatHub) не подразумевают никакой адекватной возможности скачивать пакеты для локального использования/установки, как следствие операционная система зависимая от репозиториев становится непригодна для использования на автономных ПК.
- Репозитории ненадёжны, их содержимое может быть изменено в любой момент, пользователь спустя некоторое время может не получить именно то, к чему давно привык.
- Обычно софт зависимый от репозиториев нежизнеспособен за его пределами, так как последние не предоставляют автономные установочные файлы, а лишь разрозненные пакеты и зависимости, из-за чего люди не могут по-человечески сделать копию необходимого софта и распространить за пределами репозитория, например на веб-сайтах, а сами репозитории никто обычно не хочет клонировать, ведь нужно ещё умудрится правильно это сделать, а после каким-то чудом это должен сделать пользователь, только в обратном порядке.
- Исходя из предыдущих пунктов следует, что владельцам проекта/репозитория ничто не мешает уничтожить старую версию какого-либо приложения, и таким образом принудить пользователей к переходу на что-то "новое", даже если оно значительно хуже "старого". Иначе говоря имеющие власть над репозиторием могут диктовать пользователю чем он должен пользоваться.
- В репозиториях вроде PyPl можно незаметно подцепить вредоносное ПО, болото зависимостей автоматически подтягиваемых пакетными менеджерами этому крайне способствует, хотя Linux репозитории этой проблеме меньше подвержены благодаря более тщательному контролю, но скандал с локализацией Ubuntu 23.10 всё же был, да и в целом время от времени находят вирусы, и это при около нулевой популярности Linux относительно Windows и Mac OS...
Брр, пожалуй хватит, а то слишком много текста получилось, хотя говорить о недостатках репозиториев в Desktop сегменте можно ещё очень долго.
Давайте перейдём к более интересной ситуации!
Обычно, когда люди "говорят плохо" про Linux, обязательно находятся явно неадекватные фанаты "дряхлого пингвина", которые начинают рассказывать как у них всё прекрасно работает, а если случаются проблемы - то виноват обязательно пользователь, но ни в коем случае не линуксоидный кривой софт, а если чего-то нет - значит "оно не надо"...
А если речь заходит про тот факт, что линуксы непригодны для нормального использования на автономных системах как раз из-за ущербности репозиториев, обязательно начинаются сказки, что всегда есть возможность скачать локальный репозиторий на флешку и взять с собой!
Ну а если кто-то не согласен - у таких линуксоидов принято нагонять ботов для накрутки рейтингов в минус всем неугодным, а себе любимым и "всегда правым экспертам" в плюс:
Жалкое конечно зрелище, но забавное, однако я не собираюсь сейчас рассматривать комментарии.
Тут такое дело... Когда выходил MX Linux 23.1, он был основан на Debian 12.2, и репозитории были соответствующей версии, однако время прошло (меньше года), и вот репозиториев Debian 12.2 больше нет, вместо них теперь версия 12.5:
То есть я, как пользователь, больше не имею доступа к софту из репозитория версии 12.2, на основе которого собственно построен дистрибутив MX Linux, а я на его основе создал свой дистрибутив, и эта цепная зависимость меня очень напрягает...
Тем более не забываем про тот факт, что репозитории Debian 12 умрут ровно так же, как например Debian 8:
И что тогда делать мне, как разработчику, если вдруг понадобится какой-нибудь пакет для дистрибутива Chimbalix, но репозитории будут мертвы? Правильно, нужно поиметь локальную версию репозиториев!
Со слов приверженцев "дряхлого пингвина" сделать локальную копию дело пустяковое, ну и я, как нормальный человек пошёл искать как это сделать... Разумеется начал с сайта Debian, но кроме размера архива ничего полезного не нашлось, или оно настолько тщательно спрятано, что я не нашёл, а на странице размера зеркала предлагают получить информацию о зеркалировании CD архивов дистрибутива, ну и я такой - почему бы и нет:
Что могло пойти не так? Ну начнём с того, что ISO образы Debian мне явно не нужны, ведь пришёл не за дистрибутивом, а за репозиторием...
Но ради интереса я по... Потанцевал с линуксоидской утилитой Jigdo, разработчики которой явно какие-то придурки, ибо "кормят" убогими исходниками вместо нормального скомпилированного приложения готового к работе, а исходники никак не хотели компилироваться постоянно выбрасывая разнообразные ошибки:
Почему Binaries для Windows есть, а для Linux нет? У разработчиков руки-крюки, чтобы скомпилировать адекватный статический бинарник для Linux? Или Linux настолько дерьмо, что под него никто не хочет ничего делать по-человечески, и свою работу перекладывают на мейнтейнеров дистрибутивов? А мейнтейнерам нормально там вообще подтирать задницы за такими горе-разработчиками?
После чего решил поискать, вдруг кто-то уже потанцевал с бубном и скомпилировал это кривое недоразумение? Но ничего внятного не нашлось, увы, судя по всему линукс никому особо не нужен, как и линуксоидный софт...
Я конечно пытался использовать Windows версию Jigdo через Wine, но она не особо хотела работать, в итоге было решено установить эту дичь из репозитория пакетным менеджером, но смог ли я этим мракобесием решить задачу? Конечно же нет, для чего вообще этот убогий софт разработали? Обычный ISO образ дистрибутива можно и браузером скачать без каких-либо танцев с бубном...
Ну что, раз по-человечески не получилось, значит идём "во все тяжкие"! Начинаем усердно трогать поисковую систему в попытках найти адекватный способ копирования репозиториев Debian:
Из интересного нашлась официальная документация Ubuntu, протухшая этак на ~14 лет, но указывающая на утилиту apt-mirror, и статья на "Хабре", так же указывающая на данную утилиту:
Изрядно потанцевав с бубном я наконец начал скачивать репозиторий весом ~96 ГиБ, мне вот интересно, как такой объём засунуть на обычную флешку? Ну да ладно, процесс пошёл, вроде что-то качает, хотя и непонятно что и как долго это будет происходить, утилиту явно делали линуксоиды не видавшие даже уровень Windows XP:
Как думаете, на этом танцы с бубном закончились? Конечно же нет! Во-первых, один файл размером 1.4 ГиБ оказался битым, я прерывал процесс загрузки так как нельзя было полностью загружать интернет канал в тот момент, а линуксоидный софт конечно же оставил не до конца скачанный файл "как есть":
Разумеется чистить мусор мне пришлось вручную, радует лишь то, что это в логах оказалось заметно, иначе пришлось бы с нуля все 96 ГиБ выкачивать уже не целый день, а целую ночь, так как непонятно было бы какой именно файл "битый"...
Но даже скачав amd64 ветку репозитория Debian 12.5 мои танцы с бубном не закончились, проблемы прорастали как грибы после дождя в геометрической прогрессии...
И судя по всему, пол интернета захламлено этими характерными для Linux проблемами, видимо люди пытаются войти в линуксы, отхватывают тонну проблем на голову, и многие наверняка возвращаются в Windows спустя несколько часов плотного мазохизма...
Ну а решили ли эти все форумы мои проблемы? Конечно же нет, вроде вот и у меня, и у людей что-то похожее, но к локальному репозиторию всевозможные "решения" никак не подходят:
А потом линуксоиды рассказывают сказки, что это не линуксы говно, это просто пользователи тупые и криворукие, видите ли, еще и репутацию портят "прекрасному" OpenSource-сообществу! Срочно забанить! Чтобы не говорили плохо про вечно убогие... К хм... Прекрасные и совершенные линуксы!
Но вернёмся к злополучным репозиториям...
Как я не танцевал с бубном над файлами конфигурации, как не пытался подключать локальный репозиторий через "file:/" (так сказано в мануалах), в итоге у меня есть лишь две бесполезные папки, в которых хранятся сотни гигабайт пакетов, но непригодных для использования... Я даже загрузил i386 репозиторий к amd64, ибо на его отсутствие ругался пакетный менеджер, но это всё бесполезно:
Ибо система постоянно выпадает в ошибки при попытке подключить локальный репозиторий:
Можно конечно вручную распаковать архивы с файлами, на отсутствие которых ругается система, но это приводит лишь к нарастающему числу проблем:
Да и совершенно непонятно что делать с ошибкой "couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)", никакие особые права на файлы никак не решают проблему, можно конечно попытаться засунуть это всё дерьмо в системный каталог "/mnt/repo", но вашу кочергу! А как же тогда сохранение локального репозитория в любом месте, хоть на флешке?
Ладно, попробуем символической ссылкой засунуть локальный репозиторий в системный каталог, ведь у меня на системном разделе нет лишних 130 ГиБ свободного места, потому это единственный вариант:
Но "дряхлому пингвину" такое не нравится:
А хотя постойте, я же забыл добавить "file:/" в начале...
Впрочем, ошибки хоть и поменялись, но репозиторий всё равно невозможно использовать:
У меня есть только одна идея, как заставить это дерьмо работать, а состоит она в том, чтобы поднять веб сервер и туда каким-то раком засунуть репозиторий, пока ещё не знаю как это буду делать, ведь нужно ещё прочитать какую-нибудь древнюю книгу линуксоидных заклинаний под названием "мануал"...
Хотя постойте, в мануале на сайте Debian что-то говорят ещё про символическую ссылку, в других мануалах про это особо не писали, надо бы попробовать, хотя оно наверняка будет забыто со временем так как не интуитивно очевидное действие, но если сработает, то это будет интересно:
Пожалуй сойдёт костыль:
Изменив путь к репозиторию обратно на обычный, без всяких "/mnt", вроде как что-то поменялось, не видно ошибки "_apt":
А значит нужно вручную распаковать файлы, на которые ругается, и проверить ещё раз, вдруг заработает! Причём отмечу забавный факт, проблемные файлы изначально запакованы в xz архив, тем временем остальные файлы, к которым нет претензий, запакованы в bz2 формат:
Как-то мне это совсем не нравится, ошибки снова по нарастающей прут...
Господи, какое же это линуксоидное мракобесие...
А вот на этом "мои полномочия всё", где я возьму файл "Contents-all", если его просто не существует ни в каком виде? Я его родить что ли должен? Или что?
Пожалуй сделаю резервную копию этого хлама, а то выкачивать заново в случае ошибки будет очень больно, а я хочу чуток поэкспериментировать...
Немного неочевидного шаманства, и файл размером 480 MiB на месте:
Ну вот и приплыли, очередные ошибки, так это, разве нельзя одним списком вывести? Или надо все мозги пользователю изнасиловать, прежде чем что-то сдвинется с места? И почему оно теперь в "/var" переехало...
Господи, неужели разработчикам было так сложно перенести каждую стоку на новую, эти сообщения об ошибках просто отвратительно читать... Да и что на этот раз не нравится "дряхлому пингвину", права есть, что ещё ему надо!
Да пошло оно всё! Не скажу куда, это совсем некультурно будет...
В общем пытаюсь через локальный веб-сервер присосать локальный репозиторий, но что-то пошло не так:
Ещё больше танцев с бубном, ведь некоторые линуксоидные мануалы оказались тухлыми, теперь ошибка изменилась, но сути не меняет, локальный репозиторий до сих пор невозможно использовать:
Делать нечего, продолжаем танцевать с бубном:
Пердолиться с подписями? Нет, я не хочу, потому нашлись параметры позволяющие использовать "небезопасные" репозитории, однако проблемы как были, так и остались:
...
У меня уже нет идей как это линуксоидное дерьмо заставить нормально работать, и если честно, даже мне надоело долбиться в бесконечные ошибки, пытаясь найти "тот самый" рабочий мануал, проще наверное вручную зайти в каталог, вызвать терминал и прописать "sudo dpkg -i *.deb", а потом уже разгребать недостающие зависимости вручную:
За время потраченное на попытки прикрутить убогий линуксоидный репозиторий к системе, я бы наверное установил все пакеты руками и не насиловал поисковую систему характерными для Linux ошибками.
Хотя нет, не установил бы, у меня нет лишних пол терабайта (если не больше) на системном разделе, общий размер которого всего ~300 ГиБ, да и ряд пакетов конфликтуют между i386/amd64 архитектурами, так что это заведомо гиблое дело всё накатывать...
Так или иначе на этом всё, может быть потом придумается какое-нибудь костыльное решение, что заработает, но сейчас пошло оно куда подальше!
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.