Пакетные менеджеры и системы управления пакетами

  • xKDE 09.06.2022
    >> Ну так, в чём загвоздка? ) Я весь внимание. Что там неправильно, конкретно?

    Вы придумываете новый слой абстракции вводя понятие системы управления пакетами как отдельной единицы и пытаетесь на этом построить систему. А в действительности всё проще)
    Например, dpkg

    Представьте, шёл 1993 год... Интернет тогда был больше похож на интранет. Вышел первый релиз Debian, пакеты deb представляли из себя 2 строки(версия и длина первого архива, чтобы знать как их пилить) и два tar архива.
    Через год один хороший человек написал dpkg, чтобы работа с этими пакетами была более человекоудобной. Напоминаю, интернет ещё в виде интранета. Поэтому основной способ распространения ПО - дискеты, в последствии cd диски. И dpkg работал только с локальными файлами, другого и не требовалось. В случае наличия сети, пакет скачивался и локально устанавливался.
    Однако к 1998 году уже распространение получили dial up модемы. И появилась возможность доступа к репозиториям не только в локальных сетях университетов, но и из разных точек, интранет превращается в интернет. И основным каналом распространения ПО становится сеть! И другой хороший человек написал apt (advanced packaging tool), которая обеспечивала скачивание, отслеживание зависимостей пакетов и их установку, посредством вызова dpkg, т.к. с этой задачей dpkg справляется на отлично! При этом является ли apt frontend'ом dpkg вопрос личной фантазии!)
    И к этому времени обертка конфеты deb уже стала подарочной коробкой, хотя внутри также лежит tar-data!
    Тоже самое и в Slackware, например. Pkgtool работает с локальными пакетами. А потом появился slackpkg.
    Как то так)
  • xKDE 09.06.2022
    Что касается типов установки, то я бы сказал их два, а не три. 1 и 2 можно объединить, принцип один, обертка у Slack попроще только (точнее, slack'a благодаря Патрику придерживается изначальных принципов построения ос).
    А вот Ваш 3 пункт, я бы поставил на первое место. Изначально все пакеты компилировались на хосте, т.к. архитектуры были различны, да и машинное время стоило дорого, его требовалось оптимизировать. Но с появлением Персональных Компьютеров достаточно быстро завоевала рынок архитектура x86. И появился смысл компилировать под неё с усредненными или заранее работоспособными параметрами.
    Но всегда есть люди, придерживающиеся взглядов oldschool))) И в linux такой веткой стала Gentoo, многое позаимствовав у BSD в этом плане. От BSD также по сходному пути пошёл Macintosh, ныне macos. Но они пошли ещё дальше и обрезали на уровне железа (с выходом M1 они на самом деле вернулись к своей исходной модели)
    Как то так)
  • DonAntonioDonAntonio 11.06.2022
    Спасибо за разъяснения. Прям, не пожалели времени. Вижу, раз так стараетесь объяснить, значит есть смысл прислушаться. Хотя, у меня всё равно осталось системное мышление. В частности, на это:
    xKDE:
    При этом является ли apt frontend'ом dpkg вопрос личной фантазии!)
    Я бы сказал "конечно, является", хотя и с оговорками. Функции СУП и менеджеров могут пересекаться, это нормально. Ведь пересекаются же (и перемешиваются) под Африкой Индийский океан с Атлантическим, хотя никто не называет их одним океаном, потому что разная солёность, плотность, флора, фауна... Так и тут, принцип разделения поддерживается на фундаментальном уровне, не на практике. Да и названия существуют не просто так. Ведь что-то же отличает Snappy от snapd или Portage от emerge.
    Но, раз убеждаете, я таки добавлю к табличке оговорку о том, что, мол, не всегда это разделение имеет смысл. Кто знает, может в будущем менеджеры полностью заменят СУП-ы, т. к. будут код логики содержать в себе.
    Кстати, верно ли я понял, что:
    ...Бинарный пакет - это пакет, собранный из бинарников.
    ...Небинарный пакет - пакет, собранный из исходников.
  • xKDE 11.06.2022
    >>Кстати, верно ли я понял, что...
    В linux бинарный пакет - это пакет, который содержит предварительно скомпелированный исполняемый файл(-ы).
  • xKDE 11.06.2022
    >>Ведь что-то же отличает Snappy от snapd или Portage от emerge.
    Emerge - это просто cli для Portage
    Со snappy сложнее объяснить. Грубо говоря, snapd на мобильной версии ubuntu, откуда это все и пошло, назывался snappy. Потом перенесли на пк и называться стал snapd, а мобильная ветка вообще заглохла. А высвободившееся слово стали использовать в общем смысле для IoT, ядер, облачных решений, использующих snap.
    P.S.: на фундаментальном уровне есть Мировой Океан, а разграничения люди придумывают для удобства!)
  • xKDE 11.06.2022
    А что касается fronfend/backend, то есть принцип разделения ответственности между внутренней реализацией и внешним представлением в программной инженерии, откуда и пошли эти термины. И для apt/dpkg это точно не подходит. Хотя можно натянуть сову на глобус, но это такое себе системное мышление)
  • DonAntonioDonAntonio 16.06.2022
    xKDE:
    P.S.: на фундаментальном уровне есть Мировой Океан
    Полностью согласен! Все дистрибутивы - это мировой океан Линукс.

    xKDE:
    Хотя можно натянуть сову на глобус
    Не надо. Птичку жалко!
  • DonAntonioDonAntonio 16.06.2022
    Третья (надеюсь, финальная) версия конспекта. Исправленная и дополненная ))
    Ссылка (https://drive.google.com/file/d/1UxX1D4X2QjTdTKAV8tPElsUUdMDr-suQ/view?usp=sharing)
  • DonAntonioDonAntonio 16.06.2022
    Админам: обратить внимание. Что-то пропала кнопка "Предпросмотр". И ссылка в сообщении выше у меня ссылкой не стала, хотя добавлял через кнопочку на оснастке.