Tôi đã có thể giải quyết vấn đề. Vấn đề là ngoài trình nền Gnome VFS thông thường (/usr/libexec/gvfsd
, hoặc /usr/lib/gvfs/gvfsd
trong các phiên bản cũ hơn của Ubuntu), có một trình nền khác được gThumb sử dụng cho đến Ubuntu 18.04 - /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
. Trình nền này không còn xuất hiện trong Ubuntu 20.04, vì vậy gThumb cũ không thể truy cập các tệp/thư mục trên đĩa. Cần sao chép trình nền vào Ubuntu 20.04 để ứng dụng có thể sử dụng nó.
Giải pháp đầy đủ để làm cho ứng dụng chạy như sau (cái này dài và có lẽ không ai ngoại trừ tôi quan tâm đến điều này, nhưng khi tôi giải quyết vấn đề, tôi đăng câu trả lời, có thể ai đó trong tương lai có thể sử dụng nó :)):
(BTW. Tôi cho rằng tất cả những thứ này có thể được tạo thành gói AppImage, nếu tôi chỉ biết cách thực hiện :))
- tạo một thư mục cho ứng dụng gThumb cũ chẳng hạn
/opt/gthumb_old
.
- từ quá trình cài đặt Ubuntu 10.04 64 bit đang hoạt động, hãy sao chép các tệp sau vào
/opt/gthumb_old
(Tôi đã có sẵn một bản cài đặt như vậy; trong trường hợp không có sẵn, bạn cần xác định các gói chứa các tệp này, tải xuống và giải nén các tệp, việc này đòi hỏi nhiều công việc hơn):
/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-daemon
/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
ở trên /usr/lib/*.so.*
hoặc /lib/*.so.*
các tệp là liên kết tượng trưng đến các tệp khác, vì vậy tất nhiên bạn phải sao chép tệp mà liên kết trỏ tới, nhưng tên đích phải là tên của liên kết. (Nếu bạn dùng cp
hoặc scp
sao chép các tên trên, bạn không phải lo lắng về điều này, vì điều này xảy ra tự động.)
Bạn cũng cần phải liên kết tượng trưng /usr/lib/x86_64-linux-gnu/libjpeg.so.8
đến libjpeg.so.62
Trong /opt/gthumb_old
. Ứng dụng dự kiến sẽ liên kết đến libjpeg.so.62
nhưng bản gốc libjpeg.so.62
thư viện được sao chép từ Ubuntu 10.04 không hoạt động bình thường và các tệp JPEG không được hiển thị; vì vậy chúng tôi sẽ sử dụng thư viện hệ thống hiện tại để thay thế.
tạo một thư mục /opt/gthumb_old/glade
và sao chép nội dung của /usr/share/gthumb/glade
từ cài đặt Ubuntu 10.04 vào thư mục này.
tạo một thư mục /opt/gthumb_old/mô-đun
và sao chép nội dung của /usr/lib/gthumb/mô-đun
từ cài đặt Ubuntu 10.04 vào thư mục này.
tạo một thư mục /opt/gthumb_old/vfs_modules
và sao chép nội dung của /usr/lib/gnome-vfs-2.0/modules
từ cài đặt Ubuntu 10.04 vào thư mục này.
tạo một thư mục /opt/gthumb_old/modules_conf
và sao chép nội dung của /etc/gnome-vfs-2.0/modules
từ cài đặt Ubuntu 10.04 vào thư mục này.
tạo một thư mục con .gtk-2.0/x86_64-pc-linux-gnu/engines
trong bạn /home/tên người dùng
thư mục và sao chép tập tin /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so
từ Ubuntu 10.04 vào thư mục này. Điều này là cần thiết để menu và các tiện ích giao diện người dùng khác được hiển thị chính xác (ứng dụng sẽ hoạt động mà không có tệp này, nhưng giao diện người dùng sẽ bị biến dạng một chút). Nếu bạn chưa cài đặt Adobe Reader 9 (phiên bản cuối cùng có sẵn cho Linux), bạn có thể bỏ qua bước trung gian x86_64-pc-linux-gnu
thư mục con và đặt tệp chỉ trong .gtk-2.0/engines
. Nhưng nếu bạn đã cài đặt Adobe Reader (như tôi), nó cần phiên bản 32 bit của tệp libmurrine.so
, nên được đặt trong .gtk-2.0/i686-pc-linux-gnu/engines
, do đó tốt hơn là sử dụng phiên bản "dài hơn".
tạo một liên kết tượng trưng /usr/share/gthumb/glade
chỉ đến /opt/gthumb_old/glade
.
tạo một liên kết tượng trưng /usr/lib/gthumb/mô-đun
chỉ đến /opt/gthumb_old/mô-đun
(cac thu mục /usr/lib/gthumb
không tồn tại trong bản cài đặt tiêu chuẩn của Ubuntu 20.04, vì vậy bạn phải tạo nó trước)
tạo một liên kết tượng trưng /usr/lib/gnome-vfs-2.0/modules
chỉ đến /opt/gthumb_old/vfs_modules
(cac thu mục /usr/lib/gnome-vfs-2.0
không tồn tại trong bản cài đặt tiêu chuẩn của Ubuntu 20.04, vì vậy bạn phải tạo nó trước)
tạo một liên kết tượng trưng /etc/gnome-vfs-2.0/modules
chỉ đến /opt/gthumb_old/modules_conf
(cac thu mục /etc/gnome-vfs-2.0
không tồn tại trong bản cài đặt tiêu chuẩn của Ubuntu 20.04, vì vậy bạn phải tạo nó trước)
tạo một kịch bản /opt/gthumb_old/gvfsd_wrapper
với nội dung sau (tệp phải là tệp thực thi):
#!/bin/sh
GVFSD_DIR=`/usr/bin/dirname $0`
LD_LIBRARY_PATH=${GVFSD_DIR} ${GVFSD_DIR}/gnome-vfs-daemon
- sao chép tập tin
/usr/share/dbus-1/services/gnome-vfs-daemon.service
từ Ubuntu 10.04 vào cùng thư mục trên Ubuntu 20.04 (/usr/share/dbus-1/dịch vụ
), sau đó Chỉnh sửa nó như sau. File gốc có nội dung như sau:
[Dịch vụ D-BUS]
Tên=org.gnome.GnomeVFS.Daemon
Thực thi=/usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
Thay đổi nó thành:
[Dịch vụ D-BUS]
Tên=org.gnome.GnomeVFS.Daemon
Thực thi=/opt/gthumb_old/gvfsd_wrapper
- Cuối cùng, tạo một kịch bản
/usr/local/bin/gthumb_old
để chạy ứng dụng:
#!/bin/sh
LD_LIBRARY_PATH=/opt/gthumb_old /opt/gthumb_old/gthumb
(bạn cũng có thể tạo trình khởi chạy trong menu hoặc bảng điều khiển Gnome tham khảo tập lệnh này).
Ứng dụng này không xung đột với gThumb 3.8.0 hiện có từ Ubuntu 20.04 vì nó lưu trữ dữ liệu cấu hình của nó ở một nơi khác. Cả hai có thể được sử dụng độc lập, nhưng có một vấn đề có thể xảy ra được mô tả bên dưới.
Ghi chú rằng ứng dụng gặp sự cố trong một thư mục hình ảnh có .bình luận
thư mục con chứa nhận xét được tạo bởi phiên bản mới hơn của gThumb. Vì vậy, trong trường hợp ứng dụng bị treo sau khi vào thư mục nào đó, bạn nên xóa thư mục .bình luận
thư mục con.
Tôi cũng tìm thấy một trường hợp lạ với hai tệp hình ảnh cụ thể (trong số vài nghìn tệp tôi có). Ứng dụng bị lỗi trong một thư mục chứa liên kết tượng trưng vào hai tệp này nằm trong một thư mục khác (khi tôi thay thế các liên kết tượng trưng bằng các bản sao của tệp hoặc liên kết cứng, không có sự cố - nó chỉ xảy ra với hai tệp đó). Nếu bạn không có bất kỳ liên kết tượng trưng nào trong thư mục hình ảnh của mình, vấn đề này sẽ không xuất hiện.
Ảnh chụp màn hình cuối cùng của ứng dụng đang hoạt động:
![nhập mô tả hình ảnh ở đây](https://i.stack.imgur.com/pHN7v.png)