Score:0

ฉันต้องการเรียกใช้แอพ GNOME รุ่นเก่า

ธง cn
raj

ฉันรู้ว่าสิ่งที่ฉันต้องการทำนั้นค่อนข้างผิดปกติ แต่ฉันจำเป็นต้องเรียกใช้ gThumb เวอร์ชันเก่า (2.10.11 ที่มาจาก Ubuntu 10.04) บน Ubuntu 20.04

(มีคนถามฉันในความคิดเห็นว่าทำไม นี่คือคำอธิบาย: เวอร์ชันเก่านั้นมีโหมดสไลด์โชว์ที่ดีมาก ซึ่งมีคุณสมบัติหลายอย่างที่ gThumb เวอร์ชันปัจจุบันใน Ubuntu 20.04 มี ไม่ จัดเตรียม.ในหมู่พวกเขาคือ: 1) ตัวเลือก "พอดีกับหน้าจอสำหรับภาพขนาดใหญ่เท่านั้น" ทำงานในโหมดสไลด์โชว์; 2) ภาพเคลื่อนไหว GIF เล่นในโหมดสไลด์โชว์ 3) ปุ่มลัด "I" - แสดงข้อมูลเกี่ยวกับภาพปัจจุบัน - ทำงานในโหมดสไลด์โชว์ ทั้งหมดนี้ใช้งานไม่ได้ใน gThumb ปัจจุบัน)

จนถึงตอนนี้ ฉันจัดการเพื่อรวบรวมไลบรารีเก่าทั้งหมดที่จำเป็นในการเรียกใช้แอปนี้ไว้ในไดเร็กทอรีเดียว (ดังนั้นการขึ้นต่อกันทั้งหมดจึงเป็นที่น่าพอใจ) แอปเริ่มทำงานและ GUI ปรากฏขึ้น (ภาพหน้าจอด้านล่าง) อย่างไรก็ตาม แอปไม่สามารถสื่อสารกับ GNOME VFS daemon ปัจจุบันได้ ดังนั้นจึงไม่โหลดเนื้อหาของโฟลเดอร์ ดังนั้นจึงใช้งานไม่ได้ ข้อความแสดงข้อผิดพลาดต่อไปนี้ปรากฏขึ้นในเทอร์มินัล:

(gthumb:13485): libgnomevfs-WARNING **: 13:34:54.800: ไม่สามารถเปิดใช้งาน daemon: ชื่อ org.gnome.GnomeVFS.Daemon ไม่ได้มาจากไฟล์ .service ใดๆ

ป้อนคำอธิบายรูปภาพที่นี่

มีความเข้ากันไม่ได้บางอย่างระหว่าง GNOME VFS daemon เก่าและใหม่ และแอปไม่สามารถสื่อสารกับมันได้ มีวิธีใดบ้างที่จะแก้ไขปัญหานี้และทำให้แอปทำงานบนระบบของฉัน - เช่น ทำให้แอปไม่ใช้ 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 flag
ความคิดที่ไม่ดี คุณจะทำลายระบบของคุณเนื่องจากการพึ่งพาไม่ได้ผล ฉันแนะนำให้ทำสิ่งนี้ในคอนเทนเนอร์ VM เพื่อไม่ให้การติดตั้งระบบของคุณเสียหาย หากคุณใช้ Ubuntu เวอร์ชัน EOL ในคอนเทนเนอร์ ตรวจสอบให้แน่ใจว่าเครือข่ายถูกปิดใช้งานใน VM
Nmath avatar
ng flag
ดูเหมือนว่าจะเป็น [ปัญหา XY](https://meta.stackexchange.com/a/66378) ทำไมคุณถึงคิดว่าคุณต้องการโปรแกรมดูรูปภาพอายุสิบปี ปัญหา *ที่เกิดขึ้นจริง* ที่คุณกำลังประสบคืออะไร
N0rbert avatar
zw flag
คุณรู้หรือไม่ว่ามีแพ็คเกจ deb-precompiled ที่ทันสมัยอยู่แล้วที่ https://packages.ubuntu.com/focal/gthumb ? ความคิดสุดท้ายของคุณเกี่ยวกับการเรียกใช้ซอฟต์แวร์จาก Ubuntu Lucid Lynx (ปี 2010) คืออะไร
raj avatar
cn flag
raj
@Nmath ฉันใช้ตัวเลือกสไลด์โชว์ gThumb มากมายใน 10.04 และมีคุณสมบัติหลายอย่างที่ gThumb ปัจจุบัน **ไม่มี** ให้ในโหมดสไลด์โชว์ (สามารถใช้ตัวเลือก "พอดีกับหน้าจอสำหรับรูปภาพขนาดใหญ่เท่านั้น" ภาพเคลื่อนไหว GIF จะเล่น ในโหมดสไลด์โชว์ ปุ่ม "I" ทำงาน); พูดสั้นๆ ก็คือ gThumb เวอร์ชันปัจจุบันแย่กว่าเวอร์ชันเก่ามาก ดังนั้นฉันต้องการเรียกใช้อันเก่า
raj avatar
cn flag
raj
@Nmath นอกจากนี้ อย่างที่ฉันเขียนไปแล้ว ฉันสามารถเติมเต็มการพึ่งพาได้ แอปพลิเคชันทำงานและไม่บ่นเกี่ยวกับไลบรารีที่ขาดหายไป (ฉันเพิ่งใส่ไลบรารีที่จำเป็นทั้งหมดลงใน dir เดียวกับไบนารี `gthumb` และรันด้วย `LD_LIBRARY_PATH` ตั้งค่าเป็นไดเร็กทอรีนั้น) "เท่านั้น" ไม่สามารถสื่อสารกับแบ็กเอนด์ล่าสุดของ GNOME ฉันสนใจว่าสิ่งนี้สามารถแก้ไขได้หรือไม่
us flag
นักพัฒนา GNOME ได้ลบคุณสมบัติที่มีประโยชน์มากมายเมื่อเร็ว ๆ นี้ ลอง Eye of MATE `sudo apt ติดตั้ง eom-common`
Score:0
ธง cn
raj

ฉันสามารถแก้ปัญหาได้ ปัญหาคือนอกเหนือจาก 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 ได้หากฉันรู้วิธีเท่านั้น :))

  1. สร้างไดเร็กทอรีสำหรับแอปพลิเคชัน gThumb ตัวเก่า เป็นต้น /opt/gthumb_old.
  2. จากการติดตั้ง 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 ไม่แสดง ดังนั้นเราจะใช้ไลบรารีระบบปัจจุบันแทน

  1. สร้างไดเร็กทอรี /opt/gthumb_old/glade และคัดลอกเนื้อหาของ /usr/share/gthumb/glade จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้

  2. สร้างไดเร็กทอรี /opt/gthumb_old/modules และคัดลอกเนื้อหาของ /usr/lib/gthumb/modules จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้

  3. สร้างไดเร็กทอรี /opt/gthumb_old/vfs_modules และคัดลอกเนื้อหาของ /usr/lib/gnome-vfs-2.0/modules จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้

  4. สร้างไดเร็กทอรี /opt/gthumb_old/modules_conf และคัดลอกเนื้อหาของ /etc/gnome-vfs-2.0/modules จากการติดตั้ง Ubuntu 10.04 ไปยังไดเร็กทอรีนี้

  5. สร้างไดเร็กทอรีย่อย .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ดังนั้นจึงเป็นการดีกว่าถ้าใช้เวอร์ชัน "ยาวกว่า"

  6. สร้างสัญลักษณ์เชื่อมโยง /usr/share/gthumb/glade ชี้ไปที่ /opt/gthumb_old/glade.

  7. สร้างสัญลักษณ์เชื่อมโยง /usr/lib/gthumb/modules ชี้ไปที่ /opt/gthumb_old/modules (ไดเร็กทอรี /usr/lib/gthumb ไม่มีอยู่ในการติดตั้งมาตรฐานของ Ubuntu 20.04 ดังนั้นคุณต้องสร้างก่อน)

  8. สร้างสัญลักษณ์เชื่อมโยง /usr/lib/gnome-vfs-2.0/modules ชี้ไปที่ /opt/gthumb_old/vfs_modules (ไดเร็กทอรี /usr/lib/gnome-vfs-2.0 ไม่มีอยู่ในการติดตั้งมาตรฐานของ Ubuntu 20.04 ดังนั้นคุณต้องสร้างก่อน)

  9. สร้างสัญลักษณ์เชื่อมโยง /etc/gnome-vfs-2.0/modules ชี้ไปที่ /opt/gthumb_old/modules_conf (ไดเร็กทอรี /etc/gnome-vfs-2.0 ไม่มีอยู่ในการติดตั้งมาตรฐานของ Ubuntu 20.04 ดังนั้นคุณต้องสร้างก่อน)

  10. สร้างสคริปต์ /opt/gthumb_old/gvfsd_wrapper โดยมีเนื้อหาดังต่อไปนี้ (ไฟล์ต้องสามารถเรียกใช้งานได้):

#!/bin/sh
GVFSD_DIR=`/usr/bin/dirname $0`
LD_LIBRARY_PATH=${GVFSD_DIR} ${GVFSD_DIR}/gnome-vfs-daemon
  1. คัดลอกไฟล์ /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
  1. สุดท้าย สร้างสคริปต์ /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 ใดๆ ในภาพของคุณ ปัญหานี้จะไม่ปรากฏขึ้น

ภาพหน้าจอสุดท้ายของแอปพลิเคชันที่ใช้งานได้:

ป้อนคำอธิบายรูปภาพที่นี่

Score:0
ธง de

คุณจะทำลายระบบปฏิบัติการเนื่องจากปัญหาการพึ่งพา ดังนั้นฉันขอแนะนำให้: ดาวน์โหลด Ubuntu 10.04 จาก ที่นี่. ติดตั้งในคอนเทนเนอร์ VM และเรียกใช้แอปในนั้น

raj avatar
cn flag
raj
คุณคิดผิด เนื่องจาก - อย่างที่ฉันเขียนไปแล้ว - ฉันสามารถเติมเต็มการอ้างอิงทั้งหมดและแอปพลิเคชัน **ไม่ทำงาน** และ **ไม่บ่นเกี่ยวกับไลบรารีที่ขาดหายไป** ล้มเหลวในการโต้ตอบกับแบ็กเอนด์ GNOME ปัจจุบันเท่านั้น ฉันสนใจว่าสิ่งนี้สามารถแก้ไขได้หรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา