Рейтинг:0

Я хочу запустить старое приложение GNOME

флаг cn
raj

Я знаю, что то, что я хочу сделать, немного необычно, но мне нужно запустить довольно старую версию gThumb (2.10.11, взятую из Ubuntu 10.04) на Ubuntu 20.04.

(Кто-то спросил меня в комментариях, почему, так что вот объяснение: эта старая версия имеет очень хороший режим слайд-шоу, который предоставляет несколько функций, которые делает текущая версия gThumb, присутствующая в Ubuntu 20.04. нет предоставлять.Среди них: 1) опция "Подогнать под размер экрана только для больших изображений" работает в режиме слайд-шоу; 2) GIF-анимации воспроизводятся в режиме слайд-шоу; 3) сочетание клавиш "I" - отображение информации о текущем изображении - работает в режиме слайд-шоу. Все это НЕ работает в текущем gThumb).

До сих пор мне удавалось собрать все старые библиотеки, необходимые для запуска этого приложения, в один каталог (таким образом, все зависимости удовлетворены), приложение запускается и появляется графический интерфейс (скриншот ниже). Однако приложение не может взаимодействовать с текущим демоном GNOME VFS и, следовательно, не загружает содержимое папки, поэтому оно фактически непригодно для использования. В терминале появляется следующее сообщение об ошибке:

(gthumb:13485): libgnomevfs-WARNING **: 13:34:54.800: Не удалось активировать демон: имя org.gnome.GnomeVFS.Daemon не было предоставлено ни одним файлом .service

введите описание изображения здесь

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

Поскольку проблема связана с VFS, я попытался заменить libgnomevfs-2.so.0 библиотеку, которую я скопировал из Ubuntu 10.04 с самой новой, которую смог найти, то есть из Ubuntu 18.04 (нет libgnomevfs-2.so.0 библиотека доступна на 20.04). Однако эффект тот же. Таким образом, изменение VFS должно было произойти между 18.04 и 20.04.

Nmath avatar
флаг ng
Плохая идея. Вы сломаете свою систему, потому что зависимости не сработают. Я предлагаю сделать это в контейнере виртуальной машины, чтобы не повредить установку вашей системы. Если вы используете версию Ubuntu EOL в контейнере, убедитесь, что сеть отключена на виртуальной машине.
Nmath avatar
флаг ng
Это также похоже на [проблему XY] (https://meta.stackexchange.com/a/66378). Как вы думаете, зачем вам программа для просмотра изображений десятилетней давности? Какова *фактическая* проблема, с которой вы столкнулись?
N0rbert avatar
флаг zw
Вы понимаете, что нормальный современный предварительно скомпилированный deb-пакет существует по адресу https://packages.ubuntu.com/focal/gthumb? Какова ваша конечная идея с запуском программного обеспечения от Ubuntu Lucid Lynx (2010 год)?
raj avatar
флаг cn
raj
@Nmath Я часто использовал параметр слайд-шоу gThumb в версии 10.04, и есть несколько функций, которые текущий gThumb **не** предоставляет в режиме слайд-шоу (можно использовать параметр «по размеру экрана только для больших изображений»; воспроизводится анимация GIF в режиме слайд-шоу работает клавиша «I»); Короче говоря, текущая версия gThumb намного хуже старой. Поэтому я хочу запустить старый.
raj avatar
флаг cn
raj
@Nmath Также, как я уже писал, мне удалось выполнить зависимости, приложение работает и не жалуется ни на какую отсутствующую библиотеку (я просто поместил все необходимые библиотеки в тот же каталог, что и двоичный файл `gthumb`, и запустил его с помощью `LD_LIBRARY_PATH` установлен в этот каталог). Он «только» не может взаимодействовать с последним бэкэндом GNOME. Меня интересует, можно ли это как-то решить.
флаг us
В последнее время разработчики GNOME удаляют множество полезных функций. Попробуйте Глаз MATE. `sudo apt install eom-common`
Рейтинг:0
флаг cn
raj

Я смог решить проблему. Проблема заключалась в том, что в дополнение к обычному демону GNOME VFS (/usr/libexec/gvfsd, или же /usr/lib/gvfs/gvfsd в более старых версиях Ubuntu) был еще один демон, используемый gThumb до Ubuntu 18.04 — /usr/lib/gnome-vfs-2.0/gnome-vfs-демон. Этот демон больше не присутствует в Ubuntu 20.04, поэтому старый gThumb не может получить доступ к файлам/папкам на диске. Нужно было скопировать демона в Ubuntu 20.04, чтобы приложение могло его использовать.

Полное решение для запуска приложения выглядит следующим образом (это длинно и наверное никому кроме меня это не интересно, но по мере решения проблемы выкладываю ответ, может кому в будущем пригодится :)):

(Кстати. Я полагаю, что все это можно сделать в пакете AppImage, если бы я только знал, как это сделать :))

  1. создайте каталог для старого приложения gThumb, например /опт/gthumb_old.
  2. из рабочей установки 64-битной Ubuntu 10.04 скопируйте следующие файлы в /опт/gthumb_old (У меня была доступна такая установка; если она недоступна, вам нужно определить пакеты, содержащие эти файлы, загрузить их и извлечь файлы, что требует дополнительной работы):
/usr/bin/gthumb
/usr/lib/gthumb/libgthumb.so
/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
/usr/lib/glade/2.0/libbonobo.so
/usr/lib/glade/2.0/libcanvas.so
/usr/lib/glade/2.0/libgnome.so
/usr/lib/gnome-vfs-2.0/gnome-vfs-демон
/usr/lib/libart_lgpl_2.so.2
/usr/lib/libaudiofile.so.0
/usr/lib/libbonobo-2.so.0
/usr/lib/libbonobo-activation.so.4
/usr/lib/libbonoboui-2.so.0
/usr/lib/libcanberra-gtk.so.0
/usr/lib/libcanberra.so.0
/usr/lib/libesd.so.0
/usr/lib/libfam.so.0
/lib/libgcrypt.so.11
/usr/lib/libglade-2.0.so.0
/usr/lib/libgnome-2.so.0
/usr/lib/libgnomecanvas-2.so.0
/usr/lib/libgnome-keyring.so.0
/usr/lib/libgnomeui-2.so.0
/usr/lib/libgnomevfs-2.so.0
/usr/lib/libgnutls.so.26
/usr/lib/libhal-storage.so.1
/usr/lib/libhal.so.1
/usr/lib/libiptcdata.so.0
/usr/lib/libopenrawgnome.so.1
/usr/lib/libopenraw.so.1
/usr/lib/libORBit-2.so.0
/usr/lib/libORBitCosNaming-2.so.0
/lib/libpng12.so.0
/usr/lib/libtasn1.so.3
/usr/lib/libtiff.so.4

Вышесказанное /usr/lib/*.so.* или же /lib/*.so.* файлы являются символическими ссылками на другие файлы, поэтому вы, конечно, должны скопировать файл, на который указывает ссылка, но целевое имя должно быть именем ссылки. (Если вы используете ср или же SCP чтобы скопировать вышеуказанные имена, вам не нужно об этом беспокоиться, так как это происходит автоматически.)

Вам также необходимо символическая ссылка /usr/lib/x86_64-linux-gnu/libjpeg.so.8 к libjpeg.so.62 в /опт/gthumb_old. Приложение ожидает ссылку на libjpeg.so.62 но оригинал libjpeg.so.62 библиотека, скопированная из Ubuntu 10.04, работает некорректно и файлы JPEG не отображаются; поэтому вместо этого мы будем использовать существующую системную библиотеку.

  1. создать каталог /opt/gthumb_old/поляна и скопируйте содержимое /USR/доля/gthumb/поляна из установки Ubuntu 10.04 в этот каталог.

  2. создать каталог /opt/gthumb_old/модули и скопируйте содержимое /usr/lib/gthumb/модули из установки Ubuntu 10.04 в этот каталог.

  3. создать каталог /opt/gthumb_old/vfs_modules и скопируйте содержимое /usr/lib/gnome-vfs-2.0/модули из установки Ubuntu 10.04 в этот каталог.

  4. создать каталог /opt/gthumb_old/modules_conf и скопируйте содержимое /etc/gnome-vfs-2.0/модули из установки Ubuntu 10.04 в этот каталог.

  5. создать подкаталог .gtk-2.0/x86_64-pc-linux-gnu/двигатели в вашей /дом/имя пользователя каталог и скопируйте файл /usr/lib/gtk-2.0/2.10.0/engine/libmurrine.so из Ubuntu 10.04 в этот каталог. Это необходимо для правильного отображения меню и других гаджетов пользовательского интерфейса (приложение будет работать без этого файла, но пользовательский интерфейс будет немного искажен). Если у вас не установлен Adobe Reader 9 (последняя доступная версия для Linux), вы можете пропустить промежуточный этап. x86_64-пк-линукс-гну подкаталог и поместите файл только в .gtk-2.0/двигатели. Но если у вас установлен Adobe Reader (как у меня), ему нужна 32-битная версия файла. libmurrine.so, который должен находиться в .gtk-2.0/i686-pc-linux-gnu/двигатели, поэтому лучше использовать "более длинный" вариант.

  6. создать символическую ссылку /USR/доля/gthumb/поляна указывает на /opt/gthumb_old/поляна.

  7. создать символическую ссылку /usr/lib/gthumb/модули указывает на /opt/gthumb_old/модули (каталог /usr/lib/gthumb не существует в стандартной установке Ubuntu 20.04, поэтому вы должны сначала создать его)

  8. создать символическую ссылку /usr/lib/gnome-vfs-2.0/модули указывает на /opt/gthumb_old/vfs_modules (каталог /USR/библиотека/гном-vfs-2.0 не существует в стандартной установке Ubuntu 20.04, поэтому вы должны сначала создать его)

  9. создать символическую ссылку /etc/gnome-vfs-2.0/модули указывает на /opt/gthumb_old/modules_conf (каталог /etc/гном-vfs-2.0 не существует в стандартной установке Ubuntu 20.04, поэтому вы должны сначала создать его)

  10. создать сценарий /opt/gthumb_old/gvfsd_wrapper со следующим содержимым (файл должен быть исполняемым):

#!/бин/ш
GVFSD_DIR=`/usr/bin/имя_каталога $0`
LD_LIBRARY_PATH=${GVFSD_DIR} ${GVFSD_DIR}/gnome-vfs-демон
  1. скопируйте файл /usr/share/dbus-1/services/gnome-vfs-daemon.service из Ubuntu 10.04 в тот же каталог в Ubuntu 20.04 (/usr/доля/dbus-1/услуги), тогда редактировать это следующее. Исходный файл имеет следующее содержимое:
[Служба D-BUS]
Имя = org.gnome.GnomeVFS.Daemon
Exec=/usr/lib/gnome-vfs-2.0/gnome-vfs-демон

Измените его на:

[Служба D-BUS]
Имя = org.gnome.GnomeVFS.Daemon
Exec=/opt/gthumb_old/gvfsd_wrapper
  1. Наконец, создайте скрипт /usr/местные/бен/gthumb_old для запуска приложения:
#!/бин/ш
LD_LIBRARY_PATH=/opt/gthumb_old /opt/gthumb_old/gthumb

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

Приложение не конфликтует с существующим gThumb 3.8.0 из Ubuntu 20.04, поскольку хранит данные конфигурации в другом месте. Оба могут использоваться независимо, но есть одна возможная проблема, описанная ниже.

Запись что приложение аварийно завершает работу в каталоге изображений, который имеет .Комментарии подкаталог, содержащий комментарии, созданные более новой версией gThumb. Поэтому в случае, если приложение вылетает после входа в какой-либо каталог, вам следует удалить .Комментарии поддир.

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

Финальный скриншот рабочего приложения:

введите описание изображения здесь

Рейтинг:0
флаг de

Вы сломаете операционную систему из-за проблем с зависимостями. Поэтому я предлагаю: Загрузите Ubuntu 10.04 с здесь. Установите его в контейнер виртуальной машины и запустите в нем приложение.

raj avatar
флаг cn
raj
Вы ошибаетесь, поскольку, как я уже писал, мне удалось выполнить все зависимости, и приложение **работает** и **не жалуется ни на какую отсутствующую библиотеку**. Он не работает только при взаимодействии с текущим бэкэндом GNOME. Меня интересует, можно ли это как-то решить.

Ответить или комментировать

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