LINUX.ORG.RU

Как я люблю зависимости и вот это вот всё

 , , ,


1

2

Я уже много лет пользуюсь плеером Amarok. За это время в его базе накопилась немалая коллекция треков с тегами, обложками, рейтингами и т.д. Особенно ценны для меня рейтинги - я больше 6 лет сортировал треки по приятности, так что теперь мне достаточно включить сортировку по рейтингу, чтобы проигрывание началось с моих самых любимых треков.

Ну, так было.

Однажды репозитории начали вычищать от устаревших Qt4-пакетов и связанных с ними. Я намёк понял и вынес все дропнутые мантейнерами пакеты в отдельный каталог вместе с самим Амароком, и стал запускать его через скрипт (LD_LIBRARY_PATH и всё такое). Потом в один прекрасный день отвалилась коллекция. Оказалось, что проблема в libssh - разработчикам показалось, что будет прекрасной идеей внезапно перейти с gnutls на другую библиотеку (или обратно, я уже не помню). А что делать пользователям отвалившегося из-за этого софта? Ну, сидеть ждать починки от разработчиков этого софта или, на худой конец, мантейнеров. Почему бы и нет?

Тогда я вынес ещё и libssh прежней версии, а подумав - и ещё пачку пакетов, которые точно так же могли поломать в новых версиях. Оставил только совсем уж низкоуровневые вещи и пакеты mariadb. Ведь не может же быть такого, что разработчики аж целой СУБД что-то переделают так, что отвалится уже работающий софт, правда?

Ну вы поняли, что случилось на днях.

Концепция пакетных менеджеров с репозиториями, где всё зависит от всего, и уйма человекочасов тратится на бег на месте - это всё просто прекрасно, просто прекрасно. Конечно, самодостаточные пакеты, работоспособность которых гарантирована десятилетиями - это такое вендозное фу и куча дыр - вдруг Вася через баг в старой библиотеке скачки текстов с Википедии украдёт список моих песен. В Линуксе такое невозможно - тут если баг в одной библиотеке, то через него можно отпердолить сразу полсистемы, или из-за него отвалится куча программ. Зато какая стройная концепция, а! Ну и что, что из-за неё можно потерять многолетние данные, зато концепция стройная.

Да засуньте вы её себе в жопу.

У меня всё.

Ответ на: комментарий от kirk_johnson

Nix работает гораздо интереснее и позволяет получать гораздо более стройное совершенно иначе.

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

Nix работает гораздо интереснее и позволяет получать гораздо более стройное совершенно иначе.

Я знаю, как работает nix. Тем не менее, засунуть четыре либы в пакет и сделать у бинарника LD_LIBRARY_PATH — ну не rocket science и nix тут не киллер-дистро :)

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

Или когда программы пишут в C:\Program Files\Progname, только в последних версиях венды костылями кое-как отучили

Ага, в Vista и далее. Ну да. Последние версии венды 🤣

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

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

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

Но разработчики изначально привыкли к плохому, потому приучать их к вендовому аналогу FHS уже сложно

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

Но разработчики изначально привыкли к плохому, потому приучать их к вендовому аналогу FHS уже сложно

Давно отучились. Последнее, что я помню из плохого это IpponStatus Manager. Этак десятилетней давности.

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

всего лишь четвёртая с конца от десятощки

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

данные в ~/.local/share, конфиги в ~/.config, кеш в ~/.cache

А в /usr/lib и исполняемые бинарники, и файлы настроек, и просто всякая требуха, вповалку-вперемешку. Всё логично и стройно!

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

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

Амарок мягко говоря не вчарашний. Он из прошлого века.

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

А в /usr/lib и исполняемые бинарники, и файлы настроек, и просто всякая требуха, вповалку-вперемешку. Всё логично и стройно!

В /usr/lib файлы настроек? Зачем же? В /usr/lib должны быть библиотек, а helper'ы должны быть в /usr/libexec. То, что кого-то понесло (привет, RedHat), к FHS имеет мало отношения.

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

Пажжи, давно в glibc ломали API (ну путать с ABI)?

Тут дело не в ломании API, а в google://version GLIBC not found.

Той параши из Linux-мира, благодаря которой бинарь собранный на новой версии glibc не запускается на старой версии glibc. Из-за чего разработчики вынуждены собирать софт либо старыми компиляторами/на старых LSB-дистрах, либо таскать с собой glibc.

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

А срез nixpkgs, где все работало, позавчерашний. Не в датах дело, а в перераспределении пердолинга.

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

Тут дело не в ломании API, а в google://version GLIBC not found.

Да, это называется ABI.

Той параши из Linux-мира, благодаря которой бинарь собранный на новой версии glibc не запускается на старой версии glibc. Из-за чего разработчики вынуждены собирать софт либо старыми компиляторами/на старых LSB-дистрах, либо таскать с собой glibc.

Потому что нехрен сырцы прятать. Если бы сырцы не прятали, можно было бы пересобрать и использовать дальше.

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

Нифига не отучили. Вы не видели ПО по составлению всякой отчётности в гос органы…

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

А срез nixpkgs, где все работало, позавчерашний. Не в датах дело, а в перераспределении пердолинга.

А, ты об этом. В какой-то момент все равно придется обновлять либы, и встанет та же самая проблема.

P.S. Хотя вставить фиксированную версию пакет можно дать в yum :)

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

В какой-то момент все равно придется обновлять либы, и встанет та же самая проблема.

Нет, потому что Amarok так и продолжит юзать старые. Nix же.

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

Нет, потому что Amarok так и продолжит юзать старые. Nix же.

В этом же и проблема, не? Ну как бы старые либы, новые CVE, бац, бабки с аккаунта уже у Джамала.

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

Той параши из Linux-мира, благодаря которой бинарь собранный на новой версии glibc не запускается на старой версии glibc. Из-за чего разработчики вынуждены собирать софт либо старыми компиляторами/на старых LSB-дистрах, либо таскать с собой glibc.

обычно в пределах одного релиза версию glibc не меняют

а хотеть один раз сконпелировать один бинарь для всех дистров сразу слишком жирно

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

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

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

Зато есть очешуительные платные плееры. Впусти макось внутрь себя, не сопротивляйся.

ozz_is_here_again ()
Ответ на: комментарий от alexferman

Там же нет Амарока

Но тунец вроде как умеет все, что тебе нужно.

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

Нифига не отучили. Вы не видели ПО по составлению всякой отчётности в гос органы…

Да и хуже видел дерьма местного и весьма локального. Когда тащим BDE в 2018 году 🤢

Я просто не считаю это за общие случаи. А такие весьма узкие местечковые извраты.

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

В /usr/lib должны быть библиотек

Должны быть. Только писатели программ на это писю клали.

В /usr/lib файлы настроек?

Ну, не настроек, а просто текстовые файлы.

$ find /usr/lib -type f -print0 | xargs -0 file -i | grep text | wc -l
55492

alexferman ()
Ответ на: комментарий от kirk_johnson

тунец

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

alexferman ()
Ответ на: комментарий от kirk_johnson

можно было бы пересобрать и использовать дальше.

Ситуация: разраб подготавливает бинарный пакет своего ПО, но он у тебя не работает потому что у тебя какой-нибудь замшелый Debian или CentOS и ты вместо того, чтобы идти с друзьями пить пиво и лапать баб начинаешь скачивать и компилировать исходники программы и всех её зависимостей, всё это называется одним ёмким словом – ПЕРДОЛИНГ.

Всё это огрехи и ошибки проектирования мира Linux. Вместо того чтобы исправлять UNIX-вейное дерьмо, все тянут эту заразу, преподносят недостатки как фичи и воздают им славу. Вон один попытался разрушить накопившиеся говно и костыли из bash-лапши, так вой и стоны копротивленцев до сих пор слышны.

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

То, что кого-то понесло (привет, RedHat), к FHS имеет мало отношения.

Загляни в DEB-пакет Firefox.

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

Почему ты не используешь на десктопе salix????

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

Почему я должен его использовать? Там до сих пор KDE 4 в репозиториях.

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

Должны быть. Только писатели программ на это писю клали.

Каких? Единственные файлы, которые не библиотеки в /usr/lib/ у меня это libreoffice, go и python.

find /usr/lib -type f -print0 | xargs -0 file -i | grep text | wc -l

У меня кроме собственно библиотек (*.so, *.pm, *.py с кешами) там только конфиги libreoffice, куски go и говно от python, за что разрабам нужно дать по голове. Ну

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

Ситуация: разраб подготавливает бинарный пакет своего ПО, но он у тебя не работает потому что у тебя какой-нибудь замшелый Debian или CentOS и ты вместо того, чтобы идти с друзьями пить пиво и лапать баб начинаешь скачивать и компилировать исходники программы и всех её зависимостей, всё это называется одним ёмким словом – ПЕРДОЛИНГ.
Всё это огрехи и ошибки проектирования мира Linux. Вместо того чтобы исправлять UNIX-вейное дерьмо, все тянут эту заразу, преподносят недостатки как фичи и воздают им славу. Вон один попытался разрушить накопившиеся говно и костыли из bash-лапши, так вой и стоны копротивленцев до сих пор слышны.

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

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

Да хз, чот вспомнил про платный клиент для ирки, погуглил, нашёл какие-то платные плееры (которые выглядят как говно). Из бесплатных - порты линуксовых (Clementine например).

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

Мне вообще интерфейс Макоси не нравится, док и глобальное меню это шлак.

alexferman ()
Ответ на: комментарий от kirk_johnson

Ведь это так круто — бекапить временные файлы по 500 мегабайт вместе с конфигами.

Круто – это сделать отображение скрытых файлов в своём ФМ, зайти в ~/ увидеть помойку и выйти.

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

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

alexferman ()
Ответ на: комментарий от kirk_johnson

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

Не разобрались.

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

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

Во-первых, действительно ли это большая проблема? Во-вторых, что мешает мейнтейнерам собрать код самим?

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

Не разобрались.

Так Qt4 сдох, привет. Кому интересно мейнтейнить софт под мертвую платформу? Вот автор амарока на него и забил.

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

действительно ли это большая проблема?

Да. Ванильный софт, как правило, прекрасен. Когда криворукие мантейнеры начинают совать в него дистрибутивоспецифичные костыли - начинается цирк.

что мешает мейнтейнерам собрать код самим?

Под какой пакетный менеджер?)

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

Да. Ванильный софт, как правило, прекрасен. Когда криворукие мантейнеры начинают совать в него дистрибутивоспецифичные костыли - начинается цирк.

Ну используй дистр, где так не делают, делов-то.

Под какой пакетный менеджер?)

Под любой, допустим под тот же APT из доебана.

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

После мастурбации - да. Перед и после секса обычно моюсь целиком.

Можно ведь экономить время для сношений с линуксом и заниматься мастурбацией или сексом во время принятия водных процедур.

h578b1bde ★☆ ()

Алсо это, если кому интересно — для all-in-one пакетов есть /opt, в котором у меня валяется slack, например. Там же лежит его собтвенная libffmpeg.so.

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

используй дистр, где так не делают

Я так и делаю.

Под любой

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

Я вообще не понимаю, зачем нужны зависимости от пакетов, почему бы не прописывать зависимости пофайлово?

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

Не получится.

У мейнтейнеров дебиана не получается собирать пакеты для дебиана? Вот так новость.

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

У меня гента.

Всё с тобой ясно.

Так Qt4 сдох, привет. Кому интересно мейнтейнить софт под мертвую платформу? Вот автор амарока на него и забил.

Ты не следишь за нитью. У меня была совсем другая проблема, и проблема ТС с его Qt 4 тут вообще ни при чём. Напротив, у меня была «мёртвая платформа», то бишь CentOS 7, а девелопер компилировал на какой-то более-менее новой Ubuntu. В итоге – типичная линуксовая параша с несоответствием GLIBC, вместо запуска приложения.

EXL ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)