LINUX.ORG.RU
ФорумTalks

Сравнение пакетных менеджеров

 , ,


0

5

apt - мощный и гибкий, сложно мейнтейнить пакеты. Но мне как пользователю на это плевать, да и несмотря на сложность - в .deb формате есть всё, и это жирный плюс в сторону apt.

aptitude - толку от него сейчас нет, не пользуюсь.

portage - мощный, сложный, и гибкий, собирает из исходников. Как по мне, в (2021 - 2 дня) смысла собирать пакеты самому - нет. Поддерживать систему сложно, прирост производительности не ощущается, места под пакеты и так всем хватает.

pacman - быстрый, но хилый. Пакетов часто нет и почти все лезут в AUR, который многие заслуженно сравнивают с мусорным баком, ломает систему мгновенно.

dnf - я лично почти им не пользовался, опыта работы с CentOS и Fedora практически нет. Но из того что было - мгновенно всплывали специфичные для dnf проблемы, что не есть хорошо.

Интересно услышать другое мнение. Также в последнее время интересуюсь CRUX и подобными, как у них дела с пакетными менеджерами?

Пакетов часто нет и почти все лезут в AUR

Наличие пакетов не есть характеристика менеджера пакетов, если что.

Но из того что было - мгновенно всплывали специфичные для dnf проблемы, что не есть хорошо.

Например?

neocrust ★★★★★
()

pacman - … хилый.

Хотелось бы знать в чем хилось. По сравнению с portage наверное все хилые, а с другими?

Про то что наличие пакетов в репах не характеристика менеджера пакетов уже выше написали.

Behem0th ★★★★★
()

в CRUX пакетный менеджер tar.

реализация pkgadd на bash: https://github.com/sp00f1ng/cruxstrap/blob/master/cruxstrap.in#L3-L34

пакетный менеджер CRUX распаковывает tar архивы и ведёт простенькую текстовую БД в формате ini-файла для контроля за файлами.

про него не скажешь «быстрый, мощный, гибкий». это просто tar архивы. это просто один текстовый файл.

когда ты будешь обновлять пакет, допустим, у тебя уже существует файл /etc/exim/exim.conf, а ты обновляешь версию exim и получается конфликт, чтобы старый конфиг не затереть.

в таком случае все конфликты помещаются в /var/lib/pkg/rejected директорию с полной иеархией файлов: /var/lib/pkg/rejected/etc/exim/exim.conf

есть команда rejmerge чтобы интерактивно показать различия (diff) между старым и новым конфигом и тогда предлагается ряд действий: заменить конфиг новым, оставить старый конфиг и новый удалить, либо пока оставить всё как есть (пропустить действие).

это очень удобно, наглядно смотреть чего разработчики добавили/удалили из своих «ванильных» конфигов.

есть ещё файлик /etc/pkgadd.conf, в котором регулярными выражениями создаётся список файлов для автоматизации rejected файлов.

например, в pkgadd.conf записан ^var/log/.*$. — это значит, что пустые лог-файлы поставляемые в пакете не будут обновлены, но и не будут записаны в /var/lib/pkg/rejected как конфликтующие со старыми версиями, теми, которые уже установлены.

пакетный менеджер CRUX предоставляет всё минимально-необходимое для управления пакетами, ни больше, ни меньше.

отдельным пунктиком идёт ports и prt-get, это всё таки уже не пакетный менеджер, а отдельные самостоятельные утилиты.

ports скачивает дерево портов или проще говоря, скачивает сборочные скрипты пакетов используя rsync. оно умеет работать с git, http (там своя какая-то обвязка, хрень полная).

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

есть ещё другие утилиты для работы с пакетами, например, собрать tar архив (пакет) из уже установленных файлов в системе. но они идут отдельным пакетом и даже отдельно от основных репозиториев, это прям совсем васянские утилиты.

Spoofing ★★★★★
()
Последнее исправление: Spoofing (всего исправлений: 1)
Ответ на: комментарий от Spoofing

Давно не дает покоя вопрос. Почему ты считаешь себя разработчиком кракса?

chenbr0
()

AUR, который многие заслуженно сравнивают с мусорным баком, ломает систему мгновенно

Поздравляю вас, гражданин, соврамши!

Im_not_a_robot ★★★★★
()

Что это за способ характеризовать ПО? Не хватает ещё аудиофильских терминов и дегустаторов кофе.

Пакетные менеджеры все плохие. Все. Потому, что их не должно существовать в 2021. Это мёртвая тема.

system-root ★★★★★
()
Ответ на: комментарий от system-root

Пакетные менеджеры все плохие. Все. Потому, что их не должно существовать в 2021. Это мёртвая тема.

А как должно быть? ПО только компиляцией из исходников?

tiinn ★★★★★
()

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

dnf - я лично почти им не пользовался, опыта работы с CentOS и Fedora практически нет.

да у тебя вообще опыта работы скорее всего нет. dnf - это переименованный yum, написанный когда-то на python для быстроты в редхате, потому что им срочно нужно было что-то лучше rpm. в итоге получился манагер, сочетающий в себе худшие черты всех пакетных менеджеров. он переусложнен, но нуждается в плагинах для базовых функций. он тормозит, как portage, и его каждый релиз федоры оптимизируют. он ненадежен, но альфа постоянно пытается себя убедить, какой это энтерпрайз. короче, с ним можно, если осторожно.

aptitude - толку от него сейчас нет, не пользуюсь.

apt - мощный и гибкий, сложно мейнтейнить пакеты.

нда

FreeBSD как обычно тормозила в развитии и обзавелась нормальным менеджером недавно, но вышло хорошо

xxx xxx # du -sh `which pkg`
21K     /usr/sbin/pkg
xxx xxx # ldd `which pkg`
/usr/sbin/pkg:
        libarchive.so.7 => /usr/lib/libarchive.so.7 (0x800252000)
        libfetch.so.6 => /usr/lib/libfetch.so.6 (0x800323000)
        libprivateucl.so.1 => /usr/lib/libprivateucl.so.1 (0x800339000)
        libsbuf.so.6 => /lib/libsbuf.so.6 (0x80035d000)
        libcrypto.so.111 => /lib/libcrypto.so.111 (0x800363000)
        libssl.so.111 => /usr/lib/libssl.so.111 (0x800655000)
        libc.so.7 => /lib/libc.so.7 (0x8006ed000)
        libz.so.6 => /lib/libz.so.6 (0x800ae3000)
        libbz2.so.4 => /usr/lib/libbz2.so.4 (0x800aff000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x800b15000)
        libbsdxml.so.4 => /lib/libbsdxml.so.4 (0x800b41000)
        libm.so.5 => /lib/libm.so.5 (0x800b6e000)
        libthr.so.3 => /lib/libthr.so.3 (0x800ba0000)
        libmd.so.6 => /lib/libmd.so.6 (0x800bcd000)
crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 4)

aptitude - толку от него сейчас нет, не пользуюсь.

Помню при попытке даунгрейда пакета через apt-get, он предложил просто удалить пол системы. А aptitude предложил даунгрейднуть ещё те пакеты, что зависимы от того, то есть справился. Насчёт apt не знаю.

cica
()

pacman - быстрый, но хилый. Пакетов часто нет и почти все лезут в AUR, который многие заслуженно сравнивают с мусорным баком, ломает систему мгновенно.

В сравнении с убунтой (кто из deb-based жирнее?), у арча более жирные репы. Чтобы не собирать исходники, нужно также пользоваться неофициальными. Ну и AUR - не понятно, чем хуже рандомных ppa и сборки make && make install. Поэтому странная претензия, любой популярный дистрибутив не обходиться без помойки.

InterVi ★★★★
()
Ответ на: комментарий от tiinn

Так yast это ж просто графический конфигуратор. А nix все же это пакетный менеджер плюс версионирование конфигурации.

cocucka ★★★★☆
()
Ответ на: комментарий от tiinn

Насколько я понимаю yum полностью на питоне и был крайне медленным. Dnf частично на си и плагины для yum с ним не работают.

cica
()
Ответ на: комментарий от tiinn

Пришло осознание, что юм гогно. А потом еще разработчика юма автобус переехал.

leave ★★★★★
()

У rpm перед deb есть большое преимущество - зависимости capability based, а не package based. Поэтому дистрибутивы с независимой rpm базой несколько, а с deb базой - все производные дебиана.

Менеджеров для rpm тоже несколько: yum/dnf, zypper, apt-rpm.

iliyap ★★★★★
()
Ответ на: комментарий от tiinn

Я хз, я suse ставил лет 12 назад, если не больше. Я вообще к rpm-based дистрам прохладно отношусь. Единственный, которым я пользовался довольно долго, был ASPLinux в древние времена.

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

был ASPLinux в древние времена.

Дожили! Я Мандрайк 7 юзал, когда этого вашего ASP ещё и в планах не было.

tiinn ★★★★★
()
Ответ на: комментарий от leave

Ну, если намеренно задаваться целью притащить в линукс винду/гейось — то флатпак это лучшее из зол.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Все так, я просто не понимаю, зачем тащить откровенно десктопные решения в ОС широкого назначения.

leave ★★★★★
()
Ответ на: комментарий от crypt

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

Я просто хотел узнать мнение лоровцев на эту тему. Не создавать же пустой тред?

 aptitude - толку от него сейчас нет, не пользуюсь.

apt - мощный и гибкий, сложно мейнтейнить пакеты.

нда

Не понимаю.

Eternellement
() автор топика
Ответ на: комментарий от Spoofing

Ъ_Ъ

Аватарка у тебя подходящая. Классно рассказал, спасибо. Скачаю, попробую сам.

Eternellement
() автор топика
Ответ на: комментарий от leave

зачем тащить откровенно десктопные решения в ОС широкого назначения

…Потому что… она широкого назначения?

intelfx ★★★★★
()
Ответ на: комментарий от iliyap

У rpm перед deb есть большое преимущество - зависимости capability based, а не package based.

Это как преимущество, так и недостаток. База раздувается в разы, как и время на обработку этой базы.

Rootlexx ★★★★★
()
Ответ на: комментарий от Behem0th

Для меня это связано. Как пользоваться пакетным менеджером, если под него нет пакетов? Меньше функционала по сравнению с apt.

Eternellement
() автор топика
Ответ на: комментарий от DawnCaster

Имхо, zypper хорош.

да, zypper самый удобный

из недостатков: нет многопоточной загрузки, недопилена прослойка к packagekit

kott ★★★★★
()
Ответ на: комментарий от InterVi

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

Eternellement
() автор топика
Ответ на: комментарий от kott

packagekit

А что в нём такого хорошего, где он сейчас используется ? Просто во всех дистрах что я юзал - это самый первый пакет который я удаляю. Т.к. я не люблю когда какой-либо софт в системе кроме единственного пакетного менеджера и гуя к нему может что-то устанавливать или удалять. Я ненавижу диверсии устраиваемые всякими авто-обновлялками на работающей системе вида: мы тут установили вам обновления пока вы отходили посрать - 10 новых пакетов установлено, 100500 удалено, перезагрузите кудахтер (и помолитесь).

DawnCaster ★★
()
Последнее исправление: DawnCaster (всего исправлений: 2)
Ответ на: комментарий от kott

нет многопоточной загрузки

Да, в наше время пока ещё быстрого но зашейпленного в край разными уродами, ынтернета - этой фичи сильно недостаёт.

DawnCaster ★★
()
Ответ на: комментарий от Spoofing

Ты только что описал pacman. Только если где и нет пакетов, то в этом вашем круксе.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от DawnCaster

Это и есть гуй к нему. Только абстрактный. Есличо, сам по себе packagekit ничего не устанавливает и не удаляет.

intelfx ★★★★★
()
Ответ на: комментарий от Eternellement

нет пакетов

Меньше функционала

Даже если бы это было так, где связь?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

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

DawnCaster ★★
()
Последнее исправление: DawnCaster (всего исправлений: 1)
Ответ на: комментарий от DawnCaster

я его тоже не юзаю потому что не работает, если бы работал - может был бы нужен

а так, ни туда - ни сюда.

kott ★★★★★
()
Ответ на: комментарий от Eternellement

Не понимаю.

Возможно под «нда» имеется в виду диссонанс между «пользуюсь» и «мейнтейнить». Надо было «юзаю».

Кажется вы считаете, что «пакетный менеджер» - это вот то слово, которое вы в терминале руками пишете. Там всё гораздо интереснее.

Вы перечисляете интерфейсы пользователя к пакетным менеджерам - это только самые кончики тех ниточек, за которые вы дёргаете «нечто» в черном ящике. И aptitude, и apt - две разные ниточки к одному и тому же «нечто». Сам apt, как самостоятельная ниточка к APT ещё и появился совсем недавно.

Если вам интересен этот мир пакетных менеджеров - весьма увлекательно можно проводить время разбираясь как pacman дёргает ALPM, или как утилиты xbps* дёргают XBPS. Там целая жизнь )

Toxo2 ★★★
()
Ответ на: комментарий от kott

из недостатков: нет многопоточной загрузки, недопилена прослойка к packagekit

Нет истории транзакций с возможностью отката. Дурацкие паттерны из за которых надо ставить табу на пакеты. Нет изкоробочной интеграции с OBS. Удаление пакета с зависимостями и орфанов неудобное.

Ну и технически там не все ровно

DNF самый удобный. И вопрос перевода зюзи на него обсужделся и еще не закрыт

Midael ★★★★★
()
Ответ на: комментарий от hummer

Из реально замеченного - поиск при печати результатов не отмечает установленные пакеты. Зюппер например показывает, но вместо этого зато при обновлении не показывает с какой версии на какую обновляет - просто все валит в кучу, как apt

Некоторые жалуются на то что метаданные долго обновляются (база жирная).

Midael ★★★★★
()
Последнее исправление: Midael (всего исправлений: 1)
Ответ на: комментарий от DawnCaster

А что в нём такого хорошего, где он сейчас используется ?

Все линуксовые «аппсторы» (gnome-software, discover) работают на нем.

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

Midael ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.