ฉันสามารถแก้ปัญหาได้ ปัญหาคือนอกเหนือจาก GNOME VFS daemon ปกติ (/usr/libexec/gvfsd
, หรือ /usr/lib/gvfs/gvfsd
ใน Ubuntu รุ่นเก่ากว่า) มี daemon อื่นที่ใช้โดย gThumb ถึง Ubuntu 18.04 - /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
. daemon นี้ไม่มีอยู่ใน Ubuntu 20.04 แล้ว ดังนั้น gThumb แบบเก่าจึงไม่สามารถเข้าถึงไฟล์/โฟลเดอร์บนดิสก์ได้ จำเป็นต้องคัดลอก daemon ไปยัง Ubuntu 20.04 เพื่อให้แอปพลิเคชันสามารถใช้งานได้
วิธีแก้ปัญหาแบบเต็มเพื่อให้แอปพลิเคชันทำงานมีดังนี้ (นี่ยาวและอาจไม่มีใครสนใจสิ่งนี้ยกเว้นฉัน แต่เมื่อฉันแก้ไขปัญหาแล้วฉันโพสต์คำตอบ อาจมีบางคนในอนาคตใช้ :)):
(BTW ฉันคิดว่าทั้งหมดนี้สามารถสร้างเป็นแพ็คเกจ AppImage ได้หากฉันรู้วิธีเท่านั้น :))
- สร้างไดเร็กทอรีสำหรับแอปพลิเคชัน gThumb ตัวเก่า เป็นต้น
/opt/gthumb_old
.
- จากการติดตั้ง Ubuntu 10.04 แบบ 64 บิต ให้คัดลอกไฟล์ต่อไปนี้ไปที่
/opt/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/libonobo.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/libonobo-2.so.0
/usr/lib/libonobo-activation.so.4
/usr/lib/libonoboui-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.*
ไฟล์เป็น symlinks ไปยังไฟล์อื่น ดังนั้นคุณต้องคัดลอกไฟล์ที่ลิงก์ชี้ไป แต่ชื่อเป้าหมายควรเป็นหนึ่งในลิงก์นั้น (ถ้าคุณใช้ ซีพี
หรือ scp
ในการคัดลอกชื่อข้างต้น คุณไม่ต้องกังวลเกี่ยวกับเรื่องนี้ เนื่องจากสิ่งนี้จะเกิดขึ้นโดยอัตโนมัติ)
คุณยังต้อง ลิงค์สัญลักษณ์ /usr/lib/x86_64-linux-gnu/libjpeg.so.8
ถึง libjpeg.so.62
ใน /opt/gthumb_old
. แอปพลิเคชันคาดว่าจะเชื่อมโยงกับ libjpeg.so.62
แต่ของเดิม libjpeg.so.62
ไลบรารีที่คัดลอกจาก Ubuntu 10.04 ทำงานไม่ถูกต้องและไฟล์ JPEG ไม่แสดง ดังนั้นเราจะใช้ไลบรารีระบบปัจจุบันแทน
สร้างไดเร็กทอรี /opt/gthumb_old/glade
และคัดลอกเนื้อหาของ /usr/share/gthumb/glade
จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้
สร้างไดเร็กทอรี /opt/gthumb_old/modules
และคัดลอกเนื้อหาของ /usr/lib/gthumb/modules
จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้
สร้างไดเร็กทอรี /opt/gthumb_old/vfs_modules
และคัดลอกเนื้อหาของ /usr/lib/gnome-vfs-2.0/modules
จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้
สร้างไดเร็กทอรี /opt/gthumb_old/modules_conf
และคัดลอกเนื้อหาของ /etc/gnome-vfs-2.0/modules
จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้
สร้างไดเร็กทอรีย่อย .gtk-2.0/x86_64-pc-linux-gnu/engines
ในของคุณ /บ้าน/ชื่อผู้ใช้
ไดเรกทอรีและคัดลอกไฟล์ /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so
จาก Ubuntu 10.04 ไปยังไดเร็กทอรีนี้ สิ่งนี้จำเป็นสำหรับเมนูและแกดเจ็ต UI อื่นๆ เพื่อให้แสดงได้อย่างถูกต้อง (แอปพลิเคชันจะทำงานโดยไม่มีไฟล์นี้ แต่ UI จะผิดเพี้ยนไปเล็กน้อย) หากคุณไม่ได้ติดตั้ง Adobe Reader 9 (เวอร์ชันล่าสุดที่มีสำหรับ Linux) คุณสามารถข้ามขั้นกลางได้ x86_64-pc-ลินุกซ์-gnu
ไดเร็กทอรีย่อยและใส่ไฟล์เข้าไป .gtk-2.0/engines
. แต่ถ้าคุณติดตั้ง Adobe Reader (เหมือนฉัน) ก็ต้องใช้ไฟล์เวอร์ชัน 32 บิต libmurrine.so
ซึ่งควรอยู่ใน .gtk-2.0/i686-pc-linux-gnu/engines
ดังนั้นจึงเป็นการดีกว่าถ้าใช้เวอร์ชัน "ยาวกว่า"
สร้างสัญลักษณ์เชื่อมโยง /usr/share/gthumb/glade
ชี้ไปที่ /opt/gthumb_old/glade
.
สร้างสัญลักษณ์เชื่อมโยง /usr/lib/gthumb/modules
ชี้ไปที่ /opt/gthumb_old/modules
(ไดเร็กทอรี /usr/lib/gthumb
ไม่มีอยู่ในการติดตั้งมาตรฐานของ Ubuntu 20.04 ดังนั้นคุณต้องสร้างก่อน)
สร้างสัญลักษณ์เชื่อมโยง /usr/lib/gnome-vfs-2.0/modules
ชี้ไปที่ /opt/gthumb_old/vfs_modules
(ไดเร็กทอรี /usr/lib/gnome-vfs-2.0
ไม่มีอยู่ในการติดตั้งมาตรฐานของ Ubuntu 20.04 ดังนั้นคุณต้องสร้างก่อน)
สร้างสัญลักษณ์เชื่อมโยง /etc/gnome-vfs-2.0/modules
ชี้ไปที่ /opt/gthumb_old/modules_conf
(ไดเร็กทอรี /etc/gnome-vfs-2.0
ไม่มีอยู่ในการติดตั้งมาตรฐานของ Ubuntu 20.04 ดังนั้นคุณต้องสร้างก่อน)
สร้างสคริปต์ /opt/gthumb_old/gvfsd_wrapper
โดยมีเนื้อหาดังต่อไปนี้ (ไฟล์ต้องสามารถเรียกใช้งานได้):
#!/bin/sh
GVFSD_DIR=`/usr/bin/dirname $0`
LD_LIBRARY_PATH=${GVFSD_DIR} ${GVFSD_DIR}/gnome-vfs-daemon
- คัดลอกไฟล์
/usr/share/dbus-1/services/gnome-vfs-daemon.service
จาก Ubuntu 10.04 ไปยังไดเรกทอรีเดียวกันบน Ubuntu 20.04 (/usr/share/dbus-1/services
), แล้ว แก้ไขมัน ดังนี้. ไฟล์ต้นฉบับมีเนื้อหาดังต่อไปนี้:
[บริการ D-BUS]
ชื่อ=org.gnome.GnomeVFS.Daemon
Exec=/usr/lib/gnome-vfs-2.0/gnome-vfs-daemon
เปลี่ยนเป็น:
[บริการ D-BUS]
ชื่อ=org.gnome.GnomeVFS.Daemon
Exec=/opt/gthumb_old/gvfsd_wrapper
- สุดท้าย สร้างสคริปต์
/usr/local/bin/gthumb_old
เพื่อเรียกใช้แอปพลิเคชัน:
#!/bin/sh
LD_LIBRARY_PATH=/opt/gthumb_old /opt/gthumb_old/gthumb
(คุณยังสามารถสร้างตัวเรียกใช้งานในเมนูหรือแผง GNOME ที่อ้างถึงสคริปต์นี้)
แอปพลิเคชันไม่ขัดแย้งกับ gThumb 3.8.0 ที่มีอยู่จาก Ubuntu 20.04 เนื่องจากเก็บข้อมูลการกำหนดค่าไว้ในที่อื่น ทั้งสองสามารถใช้โดยอิสระ แต่มีปัญหาหนึ่งที่เป็นไปได้ที่อธิบายไว้ด้านล่าง
บันทึก แอปพลิเคชันขัดข้องในไดเร็กทอรีอิมเมจที่มีไฟล์ .ความคิดเห็น
ไดเร็กทอรีย่อยที่มีความคิดเห็นที่สร้างโดย gThumb เวอร์ชันใหม่กว่า ดังนั้นในกรณีที่แอปพลิเคชันหยุดทำงานหลังจากเข้าสู่บางไดเร็กทอรี คุณควรลบไฟล์ .ความคิดเห็น
ผู้บังคับบัญชา
ฉันยังพบกรณีแปลก ๆ ที่มีไฟล์ภาพเฉพาะสองไฟล์ (จากหลายพันไฟล์ที่ฉันมี) แอปพลิเคชันขัดข้องในไดเร็กทอรีที่มี การเชื่อมโยง ไปยังไฟล์ทั้งสองนี้ซึ่งอยู่ในไดเร็กทอรีอื่น (เมื่อฉันแทนที่ symlinks ด้วยสำเนาของไฟล์หรือฮาร์ดลิงก์ ไม่มีข้อขัดข้อง - มันเกิดขึ้นกับไฟล์ทั้งสองนั้นเท่านั้น) หากคุณไม่มี symlinks ใดๆ ในภาพของคุณ ปัญหานี้จะไม่ปรากฏขึ้น
ภาพหน้าจอสุดท้ายของแอปพลิเคชันที่ใช้งานได้:
![ป้อนคำอธิบายรูปภาพที่นี่](https://i.stack.imgur.com/pHN7v.png)