Я смог решить проблему. Проблема заключалась в том, что в дополнение к обычному демону 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, если бы я только знал, как это сделать :))
- создайте каталог для старого приложения gThumb, например
/опт/gthumb_old
.
- из рабочей установки 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 не отображаются; поэтому вместо этого мы будем использовать существующую системную библиотеку.
создать каталог /opt/gthumb_old/поляна
и скопируйте содержимое /USR/доля/gthumb/поляна
из установки Ubuntu 10.04 в этот каталог.
создать каталог /opt/gthumb_old/модули
и скопируйте содержимое /usr/lib/gthumb/модули
из установки Ubuntu 10.04 в этот каталог.
создать каталог /opt/gthumb_old/vfs_modules
и скопируйте содержимое /usr/lib/gnome-vfs-2.0/модули
из установки Ubuntu 10.04 в этот каталог.
создать каталог /opt/gthumb_old/modules_conf
и скопируйте содержимое /etc/gnome-vfs-2.0/модули
из установки Ubuntu 10.04 в этот каталог.
создать подкаталог .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/двигатели
, поэтому лучше использовать "более длинный" вариант.
создать символическую ссылку /USR/доля/gthumb/поляна
указывает на /opt/gthumb_old/поляна
.
создать символическую ссылку /usr/lib/gthumb/модули
указывает на /opt/gthumb_old/модули
(каталог /usr/lib/gthumb
не существует в стандартной установке Ubuntu 20.04, поэтому вы должны сначала создать его)
создать символическую ссылку /usr/lib/gnome-vfs-2.0/модули
указывает на /opt/gthumb_old/vfs_modules
(каталог /USR/библиотека/гном-vfs-2.0
не существует в стандартной установке Ubuntu 20.04, поэтому вы должны сначала создать его)
создать символическую ссылку /etc/gnome-vfs-2.0/модули
указывает на /opt/gthumb_old/modules_conf
(каталог /etc/гном-vfs-2.0
не существует в стандартной установке Ubuntu 20.04, поэтому вы должны сначала создать его)
создать сценарий /opt/gthumb_old/gvfsd_wrapper
со следующим содержимым (файл должен быть исполняемым):
#!/бин/ш
GVFSD_DIR=`/usr/bin/имя_каталога $0`
LD_LIBRARY_PATH=${GVFSD_DIR} ${GVFSD_DIR}/gnome-vfs-демон
- скопируйте файл
/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
- Наконец, создайте скрипт
/usr/местные/бен/gthumb_old
для запуска приложения:
#!/бин/ш
LD_LIBRARY_PATH=/opt/gthumb_old /opt/gthumb_old/gthumb
(вы также можете создать лаунчер в меню или на панели GNOME, ссылаясь на этот скрипт).
Приложение не конфликтует с существующим gThumb 3.8.0 из Ubuntu 20.04, поскольку хранит данные конфигурации в другом месте. Оба могут использоваться независимо, но есть одна возможная проблема, описанная ниже.
Запись что приложение аварийно завершает работу в каталоге изображений, который имеет .Комментарии
подкаталог, содержащий комментарии, созданные более новой версией gThumb. Поэтому в случае, если приложение вылетает после входа в какой-либо каталог, вам следует удалить .Комментарии
поддир.
Я также обнаружил странный случай с двумя конкретными файлами изображений (из нескольких тысяч, которые у меня есть). Приложение разбилось в каталоге, содержащем символические ссылки к этим двум файлам, которые находились в другом каталоге (когда я заменил символические ссылки копиями файлов или жесткими ссылками, сбоя не было - это произошло только с этими двумя файлами). Если у вас нет символических ссылок в ваших каталогах изображений, эта проблема не должна появиться.
Финальный скриншот рабочего приложения:
![введите описание изображения здесь](https://i.stack.imgur.com/pHN7v.png)