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)
Ответ на: комментарий от EXL
➜  /tmp ./GoldenDict-b2e6739-x86_64.AppImage
No favorities file found
Load done
getResource: gdlookup://localhost?blank=1
scheme: gdlookup
host: localhost
getResource: gdlookup://localhost?word=Welcome!&group=4294967295
scheme: gdlookup
host: localhost
In-place finish.
getResource: gdlookup://localhost?blank=1
scheme: gdlookup
host: localhost
====reading 16384 bytes
====reading 44084 bytes


После этого запускается сама программа.

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

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

Хорошо. Аппимедж, видимо, слишком сложен для программособирателей, что поделать.

Моё (и далеко не только моё) предложение: флатпак. Он не лишён некоторых проблем, но всё же работает.

Что предлагаете вы?

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

Что предлагаете вы?

Предлагать должен не я, а корпорации которые разрабатывают популярные дистрибутивы Linux.

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

Аффтар XnView рукожоп, но виноват почему-то гнулинукс

Виноват именно Линукс потому что если собрать бинарник обычным способом в Windows/Haiku/Mac OS, то он будет работать в любой следующей версии системы, а в Линуксе только в дистрибутиве сборки и в узком диапазоне версий. Пока в Линуксе не научатся собирать портируемые бинарники с помощью окружения сборки и флагов по умолчанию, проблема решена не будет.

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

Вывод: Fedora не нужна!

Как-будто ситуация в других дистрибутивах сильно лучше…

X512 ★★★★★
()

Тем временем программы для BeOS из 90-ых на последней Haiku работают, хоть и с некоторыми глюками. Может быть даже поддержку x86 бинарников на RISC-V запилю.

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

Прочитать тред прежде чем написать свой бесполезный коммент это же так сложно.

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

Я прочитал ОП до конца, прежде чем написать, большего никто не вправе требовать от ЛОРовца!)

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