LINUX.ORG.RU
ФорумTalks

А я всегда говорил, что source-based vs binary — это как статическая vs динамическая типизация.

 


0

1

И вот, недели не прошло как я поставил artix:

Там где гента матюгнулась бы ещё в процессе сборки пакета, тут мы обнаруживаем ошибку, пытаясь открыть pdf-ку.

  1. Сначала в иксах – и удивляемся, почему сначала ничего не происходит, а потом вместо моего любимого qpdfview вдруг пытается вылезти firefox (ему запретил: # chown root:root ~me/.mozilla; chmod …), а потом chromium (этот сука успешно).

  2. Потом в консоли – с подозрением на альцгеймер полез в ~/.config/mimeapps.

  3. Потом вызвал из консоли qpdfview и увидел что .so не найден.

  4. Потом ldd ``which qpdfview``, so не увидел.

  5. Потом догадался # pacman -S pax-utils; lddtree ``which qpdfview``.

  6. Потом вспомнил, что обновлялось 3 qt-шных пакета сразу, нашёл их в /var/log/pacman.log, по двум другим вызвал `pacman -Ql {package} | grep -F .so’, по найденным .so прогнал dlltree чтобы убедиться, что они тоже битые.

  7. Ручками отдаунгрейдил 3 пакета (вместе с libreoffice – 4) и прописал в игнор-лист в /etc/pacman.conf.

В будущем этот путь будет короче (как минимум без п.4), но всё равно – напороться на косяк в процессе работы (причём в данном случае – умеренно-срочной) крайне неприятно.

Сижу думаю над правильным аналогом гентушного revdep-rebuild; неправильный в AUR есть и он ни о чём т.к. не различает обязательные и опциональные зависимости. И вообще на питоне написан.

★★★★★

Последнее исправление: dimgel (всего исправлений: 2)

Как в этом сраном markdown экранировать обратные апострофы?

dimgel ★★★★★
() автор топика

То, что при любом изменении надо пересобирать или хотя бы перетестировать все обратные зависимости, вроде и так понятно.

А вот при чем тут source-based vs binary-based, честно сказать, не очень понятно.

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

Это борьба с проблемами, а не их отсутствие.

И кстати, типичная отмазка адептов динамики: мол, надо просто написать побольше тестов. (Раз так в 20. Причём эквивалентные тесты на статике выглядели бы чистой шизофренией, т.к. тестировали бы компилятор.)

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

Так и пересборка ревдепов это тоже борьба с проблемами, а не их отсутствие.

t184256 ★★★★★
()

Артиксопроблемы. Что с того?

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

fernandos ★★★
()

Надо разрабов бить по рукам и делать обязательным изменение SONAME. Сейчас lib.0.0.so вообще ничего не значит. В бинарных дистрах проверка по типу «Вот когда упадет, тогда и приходите.»

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

Разрабы и тут могут забыть/забить/ошибиться. Мой пойнт в том, что в source based мы имеем автоматический контроль таких ошибок просто в силу самой идеи source based.

В случае арч/артикс, правильный revdep-rebuild должен по идее не только сопоставлять вывод ldd с содержимым пакетов-зависимостей (в т.ч. скачивать без инсталляции опциональные зависимости), но и сверять экспортируемые/импортируемые символы. Против несоответствия сигнатур C-функций это не поможет (а с C++-функциями – поможет, благодаря name mangling), но всяко гораздо лучше чем ничего.

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

а винда и макось плохие, да.

нюню.

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