LINUX.ORG.RU
ФорумTalks

Linux-дистрибутивы и дистрибьюция коммерческого ПО

 , , dll hell, ,


2

3

На ЛОРе часто можно услышать, мол программисты не клепают коммерческий и профессиональный софт под дистрибутивы Linux не потому что у нас нет нормальных систем дистрибьюции ПО, работающих стандартов и твёрдого API на который можно положиться, а потому что это всё заговор проприетарщиков, конспирология и рептилоиды.

Давеча понадобилось мне открыть несколько изображений весьма специфичного и редкого формата – MBM (MultiBitMap), который в древние века предназначался для хранения нескольких растровых изображений формата BMP и их масок в одном файле со сжатием. Этот формат был распространён в Symbian OS и его предке EPOC, по сути он был примитивным аналогом современных форматов вроде ICNS из macOS или ICO из Windows.

Стандартные программы вроде GIMP’а или Image Viewer’а в Fedora 33 открывать подобные файлы не умеют. В репозиториях дистрибутива тоже ничего путного не нашлось (хотя может быть плохо искал), а вот лёгкое гугление показало что открыть такой файл может просмотрщик изображений XnView.

Программа XnView является проприетарной и коммерческой, хоть и бесплатной для личного использования. Потому она и отсутствует в репозиториях. Но не беда! Идём на официальный сайт программы в раздел загрузок и видим, что её автор не забил (как это обычно бывает) на Linux, а заботливо приготовил помимо DEB-пакетов несколько TAR-ball’ов и даже самодостаточный пакет AppImage соорудил. Вот ведь молодец какой.

Сперва скачиваем AppImage, потому что сам Linus Torvalds с официального сайта AppImage кричит нам «This is just very cool.», а потому предвкушая быстрое решение своей проблемы, делаем:

$ chmod +x XnView_MP.glibc2.18-x86_64.AppImage
$ ./XnView_MP.glibc2.18-x86_64.AppImage 
/tmp/.mount_XnView3k4rdy/usr/XnView/XnView: symbol lookup error: /lib64/libkrb5.so.3: undefined symbol: krb5int_push_fscreatecon_for, version krb5support_0_MIT

Ой. Вот такая у нас хвалёная «самодостаточность». Ну ладно, может быть разработчики как-то криво собрали AppImage, бывает, я сам как-то раз криво их собирал, ничего. Технология-то ещё совсем свежая и молодая, 17 лет всего ей.

Ладно, скачиваем TAR-ball. Тут на форуме некоторые линуксоды постоянно кричат, мол пусть разработчики коммерческого софта своё ПО в TAR-ball’ах распространяют, а то пакеты делают только для Ubuntu или вообще их не делают. Если верить им, то случае архива всё должно пройти максимально гладко.

$ tar -xf XnViewMP-linux-x64.tgz
$ ./XnView
./XnView: error while loading shared libraries: libQtAV.so.1: cannot open shared object file: No such file or directory

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

$ sudo dnf install libqtav
$ ./XnView
./XnView: error while loading shared libraries: libQtAVWidgets.so.1: cannot open shared object file: No such file or directory

Это уже начинает надоедать. Ладно:

$ sudo dnf install libqtavwidgets
$ ./XnView
./XnView: /lib64/libQt5Network.so.5: version `Qt_5_PRIVATE_API' not found (required by ./XnView)

Ясно, понятно. И как теперь быть? Да просто скачиваем с официального сайта XnView версию для Windows и запускаем её:

$ sudo dnf install wine
$ unzip XnViewMP-win-x64.zip
$ wine XnView.exe

Программа работает, нужное мне изображение открывается, проблема решена. А если бы я не трахался с попытками запуска нативных Linux’овых версий, то решил бы её ещё быстрее.

Послесловие

Неужели великий Джон Кармак был прав, когда говорил о том, что развитие и улучшение WINE – лучший путь для Linux-дистрибутивов, а продавливание нативных портов различных коммерческих программ обречено на провал с этим зоопарком ВСЕГО?

И ведь если бы эти пакеты XnView были собраны на отвались, так нет же, авторы программы постоянно собирают баг-репорты ([1], [2]) пользователей Linux и стараются помочь всем этим несчастным людям.

Вдвойне обидно, что XnView это как раз тот редкий случай, когда программа изначально разработанная специально для Linux (и ещё IRIX) вышла за пределы этой операционной системы и стала популярна на Windows и macOS. Это какой-то позор.

★★★★★

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

MBM (MultiBitMap)

Ёёё… Тут HEIF нормально открыть — это очень сложная проблема, а ты про такое.

Надо будет XnView поставить, посмотреть, а то открытый софт не вытягивает.

Ну и да, у тебя Fedora — а это дополнительный плюс к приключениям.

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

Если бы это было так, то сборка под Windows тоже бы сыпала ошибками. Однако она просто работает. Как там говорил Linus Torvalds с сайта AppImage?

«This is just very cool.»

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

просто под виндой, когда делаешь двойной клик по экзешнику, он ругается, когда какой-то DLL-ки не хватает

а под гнулинуксами аффтар не освоил утилиту ldd, с помощью которой он мог бы найти все зависимости и запихнуть их как надо

можешь ему написать ссылку на man ldd, пусть постигает матчасть

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

wine XnView.exe

Чтож ты, фраер, сдал назад? :)

Неужели великий Джон Кармак был прав, когда говорил о том, что развитие и улучшение WINE – лучший путь для Linux-дистрибутивов, а продавливание нативных портов различных коммерческих программ обречено на провал с этим зоопарком ВСЕГО?

Старая школа, с мозгами. Я сам к этому пришёл.

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

Достаточно вспомнить 6л&dсtво с Gtk2-3-3.1-3.2-3.5-4.

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

а под гнулинуксами аффтар не освоил утилиту ldd, с помощью которой он мог бы найти все зависимости и запихнуть их как надо

Лол. Это нихрена не работает со сложными GUI-программами. Сюрприз-сюрприз.

  1. По ldd показывается неполный список библиотек. К примеру, libqxcb.so или libqwayland-egl.so подгружаются в runtime через dlopen и т. д.
  2. Как найти все библиотеки, которые дергаются через dlopen? (как раз про AppImage-проблемы).

можешь ему написать ссылку на man ldd, пусть постигает матчасть

Конечно, куда авторам XnView, которые разрабатывают программу с 1998 года, добившуюся признания даже среди пользователей macOS/Windows, знать «матчасть» так же хорошо, как знает её @Harald, торчащий на ЛОРе 24/7.

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

Вечером расскажу. А ты пошёл на автора бочку катить, и глупости писать не разбираясь в вопросе.

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

Конечно, куда авторам XnView, которые разрабатывают программу с 1998 года

это ещё ни о чём не говорит

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

а ещё проблему зарепортили чуть ли не год назад, и аффтар(ы) до сих пор не почесались исправить

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

Достаточно вспомнить 6л&dсtво с Gtk2-3-3.1-3.2-3.5-4.

Для лечения этого непотребства создано новое: AppImage-FlatPak-Snap-Click. Казалось бы, на горизонте замаячал нормальный и удобный стандарт для распростронения ПО под Linux и исправляющий сабжевые проблемы, так нет и тут одеяло на четыре стороны растянули.

Что должен выбирать прикладной программист в этом зоопарке? Вот автор XnView сделал выбор в сторону AppImage и прогадал.

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

Что должен выбирать прикладной программист в этом зоопарке?

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

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

пакет не работает

Не, ну реально, почему не дашь здесь ссылку на толковый гайд? Разработчики те облажались. Мне вот тоже интересно…

Мне (я тут нуб) непонятно даже и статические либы (хрен с ним, с dlopen). ldd -v выдаёт максимум следующий уровень вложенности. А как всё собрать? (и подсунуть потом)

PS. Вон человек в теме про Солвспэйс не может его у себя запустить. Я бы поделился бы сейчас с ним бинарником.

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

Даже если ты соберёшь всё как надо, на следующем шаге ты узнаешь про новый дивный мир:

libc.so.6: version `GLIBC_2.XX' not found (required by /usr/lib/libstdc++.so.6)

Если попытаешься запустить программу скомпилированную на какой-нибудь Ubuntu 20 в какой-нибудь всё ещё актуальной Ubuntu 18 или Ubuntu 16. Ты встанешь перед развилкой: забить на пользователей не совсем свежих дистрибутивов или же собрать окружение для сборки на минимально необходимой тебе версии дистрибутива используя тот же Docker, попутно матерясь, например, из-за того что ты в своём проекте заюзал C++20, а в Ubuntu 16 по умолчанию GCC 4 и тебе нужно обмазаться кривыми PPA с новыми компиляторами. Если к этому времени желание собирать программу под дистрибутивы Linux у тебя ещё не пропало.

P.S. А проблемы с dlopen в теории можно решить через pldd, но это не всегда будет работать должным образом.

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

А потому за флатпаком будущее.

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

Бред. Просто рукожоп умеет собирать под винду. Аппимедж собран криво, у меня тоже не работает.

fernandos ★★★
()

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

  1. Криво спаковал аппимедж, который работает где-то в 99% случаев
  2. Не осилил флатпак
  3. Не удосужился проверить программу (аппимедж)
fernandos ★★★
()
Ответ на: комментарий от EXL

Спасибо. Я не очень понял, но @Harald, гайд пожалуйста с учётом вот этого тоже :)

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

автор XnView сделал выбор в сторону AppImage и прогадал

Проблема не в AppImage.

AppImage решает проблему с зоопарком дистрибутивов и пакетных систем, но он не может решить проблему бл-ва (быстроизменяемости) API основных библиотек.

Novator ★★★★★
()

Не хочу хвастаться, но из AUR программа устанавливается простым aur sync xnviewmp-system-libs и просто работает. Запаковать можно, были бы желание и навыки.

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

А как тогда линукс обвинить? Я уверен, на убунте она тоже работает.

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

Ну хз. В Debian работает и AppImage, и deb пакет. ИМХО, проблема не в том что есть некий so-hell, а в том что некоторые люди считают что дистрибутивы должны быть совместимы. Да, они используют примерно одинаковый софт, но они так же являются отдельными ОС.

anonymous-angler ★☆
()

Я когда собирал пакеты для своих программ. В последствии отказался от них в пользу статической сборки, которая работала даже на Mandriva 1. Один фиг по объёму на диске одинаково будет занято, что библиотеки будут внутри исполняемого файла, что отдельно.
Хейтерам дублирования и лишнего места скажу, что лишний прон нужно удалить с харда и всё поместится.

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

Не хочу хвастаться, но из AUR программа устанавливается простым aur sync xnviewmp-system-libs и просто работает. Запаковать можно, были бы желание и навыки.

Я вам больше скажу, под дебианами и всякими минтами прекрасно работает .deb-пакет…

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

Ну хз. В Debian работает и AppImage, и deb пакет. ИМХО, проблема не в том что есть некий so-hell, а в том что некоторые люди считают что дистрибутивы должны быть совместимы. Да, они используют примерно одинаковый софт, но они так же являются отдельными ОС.

Да всё было бы возможно, если бы автор предложил ещё и вариант в исходникак.

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

Уже без меня проверили, что работает. Так что к чему наезды на автора.

Если в Ubuntu LTS не работает, то это плохо.

Если не работает в Ubuntu не LTS, то тут так себе.

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

fornlr ★★★★★
()

Разработчики забандлили в архив целый Qt, но забыли положить библиотеку, которая может отсутствовать в репозиториях каких-нибудь маргинальных дистрибутивов

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

Meyer ★★★★★
()

Чего только не придумают, лишь бы никс/guix не использовать.

BceM_IIpuBeT ★★☆☆☆
()

ты наркоман, да?

там есть файл xnview.sh а ты за каким-то буем запускаешь бинарник

kott ★★★★★
()

ТС, ты столько букв написать дабы обосраться в полный рост

cat ./xnview.sh 
#!/bin/sh

dirname=`readlink -e "$0"`
dirname=`dirname "$dirname"`
export LD_LIBRARY_PATH="$dirname/lib:$dirname/Plugins:$LD_LIBRARY_PATH"
export QT_PLUGIN_PATH="$dirname/lib:$QT_PLUGIN_PATH"
exec "$dirname/XnView" "$@"
tree ./lib/
./lib/
├── audio
│   ├── libqtaudio_alsa.so
│   └── libqtmedia_pulse.so
├── generic
│   ├── libqevdevkeyboardplugin.so
│   ├── libqevdevmouseplugin.so
│   ├── libqevdevtabletplugin.so
│   ├── libqevdevtouchplugin.so
│   └── libqtuiotouchplugin.so
├── imageformats
│   ├── libqgif.so
│   ├── libqicns.so
│   ├── libqico.so
│   ├── libqjpeg.so
│   ├── libqpdf.so
│   ├── libqsvg.so
│   ├── libqtga.so
│   ├── libqtiff.so
│   ├── libqwbmp.so
│   └── libqwebp.so
├── libavcodec.so.58
├── libavdevice.so.58
├── libavfilter.so.7
├── libavformat.so.58
├── libavutil.so.56
├── libcrypto.so -> libcrypto.so.1.1
├── libcrypto.so.1.1
├── libdbus-1.so
├── libdbus-1.so.3 -> libdbus-1.so
├── libfreetype.so
├── libfreetype.so.6 -> libfreetype.so
├── libicudata.so -> libicudata.so.56.1
├── libicudata.so.56 -> libicudata.so.56.1
├── libicudata.so.56.1
├── libicui18n.so -> libicui18n.so.56.1
├── libicui18n.so.56 -> libicui18n.so.56.1
├── libicui18n.so.56.1
├── libicuio.so -> libicuio.so.56.1
├── libicuio.so.56 -> libicuio.so.56.1
├── libicuio.so.56.1
├── libicule.so -> libicule.so.56.1
├── libicule.so.56 -> libicule.so.56.1
├── libicule.so.56.1
├── libiculx.so -> libiculx.so.56.1
├── libiculx.so.56 -> libiculx.so.56.1
├── libiculx.so.56.1
├── libicutest.so -> libicutest.so.56.1
├── libicutest.so.56 -> libicutest.so.56.1
├── libicutest.so.56.1
├── libicutu.so -> libicutu.so.56.1
├── libicutu.so.56 -> libicutu.so.56.1
├── libicutu.so.56.1
├── libicuuc.so -> libicuuc.so.56.1
├── libicuuc.so.56 -> libicuuc.so.56.1
├── libicuuc.so.56.1
├── libqgsttools_p.so -> libqgsttools_p.so.1.0.0
├── libqgsttools_p.so.1 -> libqgsttools_p.so.1.0.0
├── libqgsttools_p.so.1.0.0
├── libQt5Concurrent.so.5 -> libQt5Concurrent.so.5.15.1
├── libQt5Concurrent.so.5.12.6
├── libQt5Concurrent.so.5.12.8
├── libQt5Concurrent.so.5.15.1
├── libQt5Core.so.5 -> libQt5Core.so.5.15.1
├── libQt5Core.so.5.12.6
├── libQt5Core.so.5.12.8
├── libQt5Core.so.5.15.1
├── libQt5DBus.so.5 -> libQt5DBus.so.5.15.1
├── libQt5DBus.so.5.12.6
├── libQt5DBus.so.5.12.8
├── libQt5DBus.so.5.15.1
├── libQt5Gui.so.5 -> libQt5Gui.so.5.15.1
├── libQt5Gui.so.5.12.6
├── libQt5Gui.so.5.12.8
├── libQt5Gui.so.5.15.1
├── libQt5Multimedia.so.5 -> libQt5Multimedia.so.5.15.1
├── libQt5Multimedia.so.5.12.6
├── libQt5Multimedia.so.5.12.8
├── libQt5Multimedia.so.5.15.1
├── libQt5MultimediaWidgets.so.5 -> libQt5MultimediaWidgets.so.5.15.1
├── libQt5MultimediaWidgets.so.5.12.6
├── libQt5MultimediaWidgets.so.5.12.8
├── libQt5MultimediaWidgets.so.5.15.1
├── libQt5Network.so.5 -> libQt5Network.so.5.15.1
├── libQt5Network.so.5.12.6
├── libQt5Network.so.5.12.8
├── libQt5Network.so.5.15.1
├── libQt5OpenGL.so.5 -> libQt5OpenGL.so.5.15.1
├── libQt5OpenGL.so.5.12.6
├── libQt5OpenGL.so.5.12.8
├── libQt5OpenGL.so.5.15.1
├── libQt5Positioning.so.5 -> libQt5Positioning.so.5.15.1
├── libQt5Positioning.so.5.12.6
├── libQt5Positioning.so.5.12.8
├── libQt5Positioning.so.5.15.1
├── libQt5PrintSupport.so.5 -> libQt5PrintSupport.so.5.15.1
├── libQt5PrintSupport.so.5.12.6
├── libQt5PrintSupport.so.5.12.8
├── libQt5PrintSupport.so.5.15.1
├── libQt5QmlModels.so.5 -> libQt5QmlModels.so.5.15.1
├── libQt5QmlModels.so.5.15.1
├── libQt5Qml.so.5 -> libQt5Qml.so.5.15.1
├── libQt5Qml.so.5.12.6
├── libQt5Qml.so.5.12.8
├── libQt5Qml.so.5.15.1
├── libQt5Quick.so.5 -> libQt5Quick.so.5.15.1
├── libQt5Quick.so.5.12.6
├── libQt5Quick.so.5.12.8
├── libQt5Quick.so.5.15.1
├── libQt5Sensors.so.5 -> libQt5Sensors.so.5.15.1
├── libQt5Sensors.so.5.12.6
├── libQt5Sensors.so.5.12.8
├── libQt5Sensors.so.5.15.1
├── libQt5Sql.so.5 -> libQt5Sql.so.5.15.1
├── libQt5Sql.so.5.12.6
├── libQt5Sql.so.5.12.8
├── libQt5Sql.so.5.15.1
├── libQt5Svg.so.5 -> libQt5Svg.so.5.15.1
├── libQt5Svg.so.5.12.6
├── libQt5Svg.so.5.12.8
├── libQt5Svg.so.5.15.1
├── libQt5WebChannel.so.5 -> libQt5WebChannel.so.5.15.1
├── libQt5WebChannel.so.5.12.6
├── libQt5WebChannel.so.5.12.8
├── libQt5WebChannel.so.5.15.1
├── libQt5WebKit.so.5 -> libQt5WebKit.so.5.9.0
├── libQt5WebKit.so.5.9.0
├── libQt5WebKitWidgets.so.5 -> libQt5WebKitWidgets.so.5.9.0
├── libQt5WebKitWidgets.so.5.9.0
├── libQt5Widgets.so.5 -> libQt5Widgets.so.5.15.1
├── libQt5Widgets.so.5.12.6
├── libQt5Widgets.so.5.12.8
├── libQt5Widgets.so.5.15.1
├── libQt5X11Extras.so.5 -> libQt5X11Extras.so.5.15.1
├── libQt5X11Extras.so.5.12.6
├── libQt5X11Extras.so.5.12.8
├── libQt5X11Extras.so.5.15.1
├── libQt5XcbQpa.so.5 -> libQt5XcbQpa.so.5.15.1
├── libQt5XcbQpa.so.5.12.6
├── libQt5XcbQpa.so.5.12.8
├── libQt5XcbQpa.so.5.15.1
├── libQt5Xml.so.5 -> libQt5Xml.so.5.15.1
├── libQt5Xml.so.5.12.6
├── libQt5Xml.so.5.12.8
├── libQt5Xml.so.5.15.1
├── libQtAV.so.1 -> libQtAV.so.1.13.0
├── libQtAV.so.1.12.0
├── libQtAV.so.1.13.0
├── libQtAVWidgets.so.1 -> libQtAVWidgets.so.1.13.0
├── libQtAVWidgets.so.1.12.0
├── libQtAVWidgets.so.1.13.0
├── libssl.so -> libssl.so.1.1
├── libssl.so.1.1
├── libswresample.so.3
├── libswscale.so.5
├── libva-drm.so.1
├── libva.so.1
├── libva-x11.so.1
├── libvdpau.so.1
├── libwebp.so
├── libwebp.so.6 -> libwebp.so
├── mediaservice
│   ├── libgstaudiodecoder.so
│   ├── libgstcamerabin.so
│   ├── libgstmediacapture.so
│   └── libgstmediaplayer.so
├── platforms
│   ├── libqeglfs.so
│   ├── libqlinuxfb.so
│   ├── libqminimalegl.so
│   ├── libqminimal.so
│   ├── libqoffscreen.so
│   ├── libqvnc.so
│   ├── libqwayland-egl.so
│   ├── libqwayland-generic.so
│   ├── libqwayland-xcomposite-egl.so
│   ├── libqwayland-xcomposite-glx.so
│   ├── libqwebgl.so
│   └── libqxcb.so
├── platformthemes
│   ├── libqgtk2.so
│   ├── libqgtk3.so
│   ├── libqt5ct.so
│   └── libqxdgdesktopportal.so
├── plugins
│   └── styles
│       └── libkvantum.so
├── printsupport
│   └── libcupsprintersupport.so
├── sensors
│   ├── libqtsensors_generic.so
│   ├── libqtsensors_iio-sensor-proxy.so
│   └── libqtsensors_linuxsys.so
└── styles
    ├── libqgtk2style.so
    └── libqt5ct-style.so
kott ★★★★★
()

О, XnView. Он у меня ещё 10 лет назад не работал, примерно с такими же проблемами. Кстати, интересно, зачем просмотрщик картинок линкуется с kerberos?

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

В линуксах такого не бывает.

Бывает. Аппимедж работает где-то в 99% процентов дистрибутивов. Либо статическая линковка.

А так, есть флатпак.

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

подгружаются в runtime через dlopen

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

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

Ну так сабжевый Appimage и работает в нормальных дистрибутивах. То что в новейшей Фёдоре — это и есть 1% с красными глазами.

флатпак

Речь шла про что-то нормальное. Это не нормальное ни для разработчиков, ни для пользователей.

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

Ну так сабжевый Appimage и работает в нормальных дистрибутивах

Его собрали криво, чтобы он работал в дистрибутиве Н, но не Х.

То что в новейшей Фёдоре — это и есть 1% с красными глазами

Вообще нет.

Речь шла про что-то нормальное

Именно.

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

А ты разве не обратил внимания на то, кто ТС?

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

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

ТС, ты столько букв написать дабы обосраться в полный рост

О боже, я просто опустил часть этих весёлых траханий, дабы стартовый пост в теме не распух в «Войну и Мир».

Но если тебе так это интересно, то вот, держи, мне не жалко:

$ ./xnview.sh 
/home/exl/Downloads/XnView/XnView: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory

$ sudo dnf install bzip2-libs
Package bzip2-libs-1.0.8-4.fc33.x86_64 is already installed.
Package bzip2-libs-1.0.8-4.fc33.i686 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

$ ls /lib64/libbz2.so*
/lib64/libbz2.so  /lib64/libbz2.so.1  /lib64/libbz2.so.1.0.8

$ sudo ln -s /lib64/libbz2.so /lib64/libbz2.so.1.0

$ ./xnview.sh 
/home/exl/Downloads/XnView/XnView: symbol lookup error: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
EXL ★★★★★
() автор топика
Последнее исправление: EXL (всего исправлений: 1)

На фоне gtk или даже Qt winapi от wine выглядит верхом совместимости и кроссплатформенность.

luke ★★★★★
()

современная Fedora

это в которой практически нет софта на Qt? Чему ж ты удивляешься?

Вот в gentoo у меня софтина работает.

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

Туалетный эксперт, это если не сработал AppImage, то ты считаешь, что такой скриптик всё решит?

А ты оптимист.

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

Если он не знает, что у него подгружается - то это просто формошлёп.

У Qt слишком сложная архитектура и процесс деплоя, чтобы знать о том что имеенно там подгружается и когда. Особенно всё усложнилось после того как они всё разбили на кучу либ-плагинов и им даже пришлось писать утилиты вроде windeployqt и macdeployqt дабы облегчить прикладным разработчикам развёртывание на нужные им платформы.

А теперь внимание, угадай, почему Qt-разработчики представив windeployqt и macdeployqt не представили linuxdeployqt и эту софтину поддерживает энтузиаст, создатель AppImage.

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

У Qt слишком сложная архитектура и процесс деплоя, чтобы знать о том что имеенно там подгружается и когда

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

А теперь внимание, угадай, почему Qt-разработчики представив windeployqt и macdeployqt не представили linuxdeployqt и эту софтину поддерживает энтузиаст, создатель AppImage.

Забили член, 1% и всё такое.

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

ну как же без тебя здесь :)

ТС тыкал бинарник вместо скрипта, пошёл изливать душу на ЛОР, но на его удачу скрипт тоже не запустился

а AppImage, flatpak и прочее мне неинтересны

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