LINUX.ORG.RU
ФорумTalks

Все же с библиотеками и зависимостями Linux куда-то не туда идет

 , ,


0

3

Или по крайней мере Debian, хе-хе. Но реально конечно не только Debian.

В очередной раз обнаружил, что из реп исчезла нужная программа. ScanTailor на этот раз. Она хороша для обработки отсканированных книжных/журнальных страниц. Выровнять, правильно ориентировать, повернуть, обрезать, бинаризовать, почистить мусор и тп. Быстро и автоматически с возможной ручной коррекцией. OpenSource аналогов, да под Linux что-то вроде и нет.

Из трекера https://tracker.debian.org/pkg/scantailor видно, что программу выпилили (еще из Buster), потому что она требует Qt4 (собрана с ним). https://tracker.debian.org/news/1060913/scantailor-removed-from-testing/

Сейчас в Debian вообще нет в репах Qt4. Ну да, не нужно, зачем, вон и пишут, то программа похоже abandoned, раз 6 лет не обновляется и автор значит вовремя на Qt5 (уже на Qt6 бы и надо) не переписал. https://forums.debian.net/viewtopic.php?t=150861

Ну а чё, автору (авторам) же делать нефиг как переписывать на новый тулкит. И ну и что, если программу не обновляют хоть 6, хоть 10 лет? Она хуже работать от этого стала? Хотя в принципе есть форки (те вроде тоже на Qt4) именно, потому что некоторых фич кому-то не хватило.

В Windows такой проблемы с прикладными программами за редким исключением просто нет. Тот же ScanTailor 10-летней давности нормально работает в Win11. Да, с драйверами и системным софтом могут быть приколы, но с прикладным обычно все же нет. 32-битный софт даже 25-летней давности обычно запускается и просто работает.

Казалось бы вот что мешало сохранять в репах Qt4 и другие депрекатнутые либы для старого софта? А мешало, что могли глюки с новым софтом вылезти блин... И эти люди в свое время ругали винду за DLL Hell ...

В принципе, нашел форк ScanTailor advanced в Snap. https://snapcraft.io/install/scantailor-advanced/debian Еще не ставил правда. Как и вообще Snap. Это отдельный прикол и не всем нравится такая снапизация. К тому же появляется риск установки неведомо чего неведомо откуда.

P.S. А ведь Qt - это казалось бы для переносимости. Причем Qt - как бы изначально линуксовый тулкит. Итог - «переносимая» программа на линуксовом тулките через несколько лет продолжает нормально работать в Windows и не запускается в Linux без переписывания и всяких Snap.

P.P.S. Про новые тулкиты в виндах. Вроде даже до сих пор 6-я студия от MS запускается в современных виндах и всякие Delphi 6-е - 7-е. Они конечно не поддерживают новые возможности, в том числе интерфейсные, с юникодом и т.д, там с отладчиком не все гладко, но в принципе, если кому достаточно может даже продолжать писать софт на средствах разработки еще до 2000-го года.

★★★★★

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

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

Собственно для решения твоей проблемы и был придуман flatpak, snap и appimage.

Это говно, а не решение. Решение это собрать статически, раз и навсегда. И всё, можешь хоть на флешке таскать – будет работать где угодно.

no-such-file ★★★★★
()
Ответ на: комментарий от DrBrown

Фигасе, ты им обязанность назначил, начальник. Как ты себе это представляешь? Вносить изменения во все эти проекты? А еще исходники придется править. Это невозможно сделать небольшой группе для тысячи проектов в какой-то адекватный срок.

rumgot ★★★★★
()
Ответ на: комментарий от no-such-file

Решение это собрать статически

Да, блин, можно все либы ложить в deb пакет (также нужно использовать RPATH).

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

В том, что флатпак перестанет работать со старым форматом.

Ну тогда уж можно ещё переживать, что сломают elf и ld-linux перестанет работать со старым форматом. И x86_64 сломают и новые процы перестанут работать со старым форматом.

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

И вообще, зачем мне в этой цепочке Flatpak нужен?

Чтобы всё работало без гоммороя. Если это нежелательный эффект, то конечно не нужен, избавляйся от него.

Если нужен, то флатпак обеспечивает централизованную доставку, своевременное обновление, изоляцию с удобным контролем доступа (flatseal).

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

Вносить изменения во все эти проекты?

Нет конечно, только в свою билд систему.

А еще исходники придется править

Если в твоём кривом дистрибутиве что-то не работает, то конечно придётся.

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

Бери ношу по себе, что б не падать при ходьбе. (с)

no-such-file ★★★★★
()

Все же с библиотеками и зависимостями Linux куда-то не туда идет

В Windows технология сборки и технология разработки компиляторов та же, что и шестьдесят лет назад (немножко марафетят все же).

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

Ага и затем хранить по отдельной Java для каждого проекта. Потому что это написано на Java 2, другое на Java 5, третье на Java 8, четвертое на Java 17.

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от no-such-file

Решение это собрать статически

Для helloworld’а да. Но далеко не все проги вообще можно собрать статически без глубокой переработки. И для ещё большего кол-ва это будет очень плохим решением.

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

можно все либы ложить в deb пакет

Это не имеет никакого смысла, только создаёт лишний геморрой. Если либа не общая для всей системы, то она не расшаривается в памяти с другими программами (т.к. её больше никто не использует).

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Ivan_qrt

не все проги вообще можно собрать статически без глубокой переработки

Любую прогу можно собрать статически с минимальной переработкой. Это замечательное и удобное решение для проблемы ТСа, например.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Это говно, а не решение. Решение это собрать статически, раз и навсегда.

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

Ivan_qrt ★★★★★
()
Ответ на: комментарий от no-such-file

Любую прогу можно собрать статически с минимальной переработкой.

Ну собери libreoffice статически. Вперёд, докажи делом а не словом.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от no-such-file

Нет конечно, только в свою билд систему. Если в твоём кривом дистрибутиве что-то не работает, то конечно придётся.

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

Бери ношу по себе, что б не падать при ходьбе. (с)

Ну это ты дурачишься уже.

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

А после обновления с сайта увидеть баннер на весь экран с предложением заплатить за расшифровку диска😆

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

флатпак обеспечивает централизованную доставку, своевременное обновление, изоляцию с удобным контролем доступа (flatseal).

Это модные штучки для актуального софта, но это всё противоречит архивным целям.

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

В этом случае нужен тупо архивчик со софтом и используемыми им либами, который можно просто установить и использовать.

В винде так можно? Да, отлично можно. Большая часть софта и через 20 лет спокойно работает на современной Windows. Может без новых фич типа HiDPI, но работает. На линуксе так можно сделать, но очень мало кто делает.

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

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

Такая ОС уже есть, не идеальна, но популярна

Причём тут ОС? Речь про отдельные программы.

за обновлениями на сайт

ТСу не нужны обновления.

no-such-file ★★★★★
()
Ответ на: комментарий от DrBrown

Ну за нормальные пакеты надо платить. Всё так.

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

А что не так? Если программа работает и делает то, что нужно, обновления могут разве только поломать что-то. Если там появились нужные фичи, ну можно и поставить вручную новую.

nebularia ★★★
()
Ответ на: комментарий от no-such-file

Это не имеет никакого смысла, только создаёт лишний геморрой. Если либа не общая для всей системы, то она не расшаривается в памяти с другими программами (т.к. её больше никто не использует).

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

Но это нужно в случае, как у ТС.

И интересно, как библиотеки в deb складывать - так не имеет смысла, а как все херачить в статическую линковку - так норм. Да статическая сборка еще не всегда легче.

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

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

А в Debian и не знают, что делают все неправильно.

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

Это модные штучки для актуального софта, но это всё противоречит архивным целям.

Ну во-первых, это очень не очевидная вещь, но всё же попробуй её понять: софт не создаётся не поддерживаемым. Он им становится. И пока он поддерживается все эти вещи нужны.

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

Если софт не поддерживается много лет, то странно ожидать, что кто-то будет поддерживать его версию во Flatpak

В этом случае останется последняя актуальная версия. И поставить её можно будет одной командой, а не лазить по файлопомойкам с надеждой выцепить нормальный архив.

В общем предлагают нормальное полноценное решение, но нет, мы будем копаться в говне и ходить по граблям.

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

как библиотеки в deb складывать - так не имеет смысла, а как все херачить в статическую линковку - так норм

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

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

Нисколько это не сложнее. Для 99% программ вообще делается указанием опции сборки и всё. Какие-то особые телодвижения нужны если программа предполагает использование загружаемых аддонов и т.п.

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

Ну слился и слился, зачем же себя по лицу-то бить?

Да не переживай ты так, никто тебя бить не будет, тем более по лицу. Сливайся сколько влезет.

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

А что не так? Если там появились нужные фичи, ну можно и поставить вручную новую.

Ты сам ответил на свой вопрос. Есть нормальное решение, без если.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от no-such-file

Не имеет смысла потому что один хрен. Выигрыша от динамических библиотек не будет.

Ты уже собрал libreoffice статически? Запусти, посмотри на отсутствие выйгрыша.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от no-such-file

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

Пользователь кликает по иконке в меню. Если все работает - то вообще пофиг, как там слинковано.

Нисколько это не сложнее. Для 99% программ вообще делается указанием опции сборки и всё. Какие-то особые телодвижения нужны если программа предполагает использование загружаемых аддонов и т.п.

Вот не фига. Собери ка статически Qt и то, там плагины все равно в виде разделяемых либ.

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

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

Ну во-первых, это очень не очевидная вещь, но всё же попробуй её понять: софт не создаётся не поддерживаемым. Он им становится. И пока он поддерживается все эти вещи нужны.

Для поддерживаемого софта это и не нужно, по идее. Но автор обычно и сам не знает, какая версия по той или иной причине окажется последней. Так что нужно делать каждую в таком виде в архивных целях. Чтобы через n-лет её можно было найти и использовать.

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

Это опять искусственная проблема. Изоляция это хорошо, но точно не обязательно. Далеко не весь софт ходит в интернет в принципе.

В этом случае останется последняя актуальная версия.

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

Flatpak в этой цепочке лишний, он только всё усложняет. Это вообще стандартная черта современных разработчиков линуха - создать грабли на ровном месте, а потом героически с ними бороться максимально непрозрачными способами. Боролись с DLL-hell а получили вот это вот, когда старый софт вроде и не софт как бы. Хотя в нём ничего не менялось, он всё так же, как и в бытность актуальным, отлично может выполнять свою задачу. Если это не браузер или что-то подобное, конечно.

Хотя казалось бы, старый добрый .tar.gz, чего вам ещё надо.

nebularia ★★★
()
Ответ на: комментарий от no-such-file

Для 99% программ вообще делается указанием опции сборки и всё.

Это у простых проектов.

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

Ты просто хочешь завязаться на сервис, политика которого может измениться в любой момент. Я пишу про решение, которое не зависит ни от чьих серверов.

nebularia ★★★
()

Все же с библиотеками и зависимостями Linux куда-то не туда идет

Пришел.

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

Для поддерживаемого софта это и не нужно, по идее.

Ну вот есть tde - kde3. Проект поддерживаемый, но qt3 ты в репах не найдёшь. Конкретно для tde есть репы под дистрибутивы, и вообще это DE, и должно быть частью ОС. Но суть я думаю ясна: тулкит выкинули из дистрибутива, но сам софт на нём ещё поддерживается. Таких случаев мало, но они всё же есть.

Далеко не весь софт ходит в интернет в принципе.

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

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

Простая ситуация - разработчики Flatpak меняют формат пакетов и выпиливают все, которые не поддерживались n-лет.

А ещё одновременно с этим разработчики ld-linux перестанут поддерживать elf, а новые процы на x86_64 перестанут поддерживать старые инструкции.

Оно, конечно, всё возможно, но давай без совсем фантазий.

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

Flatpak в этой цепочке лишний, он только всё усложняет.

Я уж не знаю, как тебе, но лично мне сделать sudo flatpak install appname куда проще, чем лазить по файлопомойкам в поисках tar.gz и потом разбираться, как его собирал автор, какие у него зависимости, качать старые версии библиотек и пытаться собирать их в современном линуксе.

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

Я пишу про решение, которое не зависит ни от чьих серверов.

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

А политика flathub’а вполне предсказуема - они хранят пакеты и рантаймы.

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

Ivan_qrt ★★★★★
()

Можно просто запустить в докере или виртуалке нужную версию ОС и поставить нужную программу туда.

Juan-Carlos
()
Ответ на: комментарий от Ivan_qrt

Единомоментная потеря кучи данных без возможности восстановления - это какая-то максимально невероятная история (без глобальных катаклизмов, разумеется).

Хм. Ну раз в год и палка стреляет. Для этого и существует резервное копирование и личный билд сервер.

rumgot ★★★★★
()
Ответ на: комментарий от no-such-file

Решение это собрать статически

Да, но возможность собрать статически есть только в платных кутях, а они стоят многие тысячи $

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

Проще написать на божественной Java и запускать и на маке и на винде и на любимом линуксе.

Или взять виндовскую версию, и запускать через wine

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

Да, но возможность собрать статически есть только в платных кутях, а они стоят многие тысячи $

А в чем проблема самим реализовать?

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

Да, но возможность собрать статически есть только в платных кутях, а они стоят многие тысячи $

Opensource софт можно собирать статически на обычных кутях.

Платный Qt нужен если не устраивают лицензии: LGPL3 / GPL3.

fsb4000 ★★★★★
()

ScanTailor на этот раз

Блин, я ей как-то без затей привел в человеческий вид документацию на Тойоту:

https://webhamster.ru/site/page/index/main/news/324

Программа просто гениальная: каждый элемент интерфейса логичен и делает то, что должен делать. А это по нынешним меркам дорогого стоит.

Надо, видимо, поднимать проект и обновлять его. К сожалению, в Линуксе другого пути не получается.

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

то используй один из дистров, которые я тебе перечислил.

Отличная рекомендация! Чтобы пользоваться программой - меняй дистрибутив. Хвост вертит собакой, и тебе норм такое положение вещей.

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

Это пакетный менеджер, а не просто программа. Вокруг пакетного менеджера построен весь дистрибутив. Поэтому такие аналогии как «Хвост вертит собакой» к данному случаю отношения не имеют.

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