Điểm:0

Tôi muốn chạy một ứng dụng Gnome cũ

lá cờ cn
raj

Tôi biết rằng những gì tôi muốn làm hơi bất thường, nhưng tôi cần chạy phiên bản gThumb khá cũ (2.10.11, đến từ Ubuntu 10.04) trên Ubuntu 20.04.

(Ai đó đã hỏi tôi tại sao trong phần nhận xét, vì vậy đây là lời giải thích: phiên bản cũ đó có chế độ trình chiếu rất tốt, cung cấp một số tính năng mà phiên bản gThumb hiện tại có trong Ubuntu 20.04 không có không phải cung cấp.Trong số đó có: 1) tùy chọn "chỉ vừa với màn hình đối với hình ảnh lớn hơn" hoạt động ở chế độ trình chiếu; 2) Ảnh động GIF được phát ở chế độ trình chiếu; 3) phím tắt "I" - hiển thị thông tin về hình ảnh hiện tại - hoạt động ở chế độ trình chiếu. Tất cả điều này KHÔNG hoạt động trong gThumb hiện tại).

Cho đến bây giờ, tôi đã quản lý để thu thập tất cả các thư viện cũ cần thiết để chạy ứng dụng này vào một thư mục duy nhất (vì vậy tất cả các phụ thuộc đều được thỏa mãn), ứng dụng bắt đầu và GUI xuất hiện (ảnh chụp màn hình bên dưới). Tuy nhiên, ứng dụng không thể giao tiếp với trình nền GNOME VFS hiện tại và do đó không tải nội dung thư mục, vì vậy trên thực tế, ứng dụng này không sử dụng được. Thông báo lỗi sau xuất hiện trong thiết bị đầu cuối:

(gthumb:13485): libgnomevfs-CẢNH BÁO **: 13:34:54.800: Không thể kích hoạt trình nền: Tên org.gnome.GnomeVFS.Daemon không được cung cấp bởi bất kỳ tệp .service nào

nhập mô tả hình ảnh ở đây

Chắc chắn có một số điểm không tương thích giữa daemon GNOME VFS cũ và mới và ứng dụng không thể giao tiếp với nó. Có cách nào để khắc phục điều này và làm cho ứng dụng chạy trên hệ thống của tôi không - ví dụ: bằng cách làm cho ứng dụng không sử dụng VFS mà thay vào đó chỉ đọc trực tiếp từ đĩa? (ngoại trừ việc phải tự xây dựng lại ứng dụng vì tôi không thấy điều này khả thi)

Vì vấn đề liên quan đến VFS, tôi đã cố gắng thay thế libgnomevfs-2.so.0 thư viện mà tôi đã sao chép từ Ubuntu 10.04 bằng thư viện mới nhất mà tôi có thể tìm thấy, đó là từ Ubuntu 18.04 (không có libgnomevfs-2.so.0 thư viện có sẵn cho 20.04). Tuy nhiên, hiệu quả là như nhau. Vì vậy, thay đổi đối với VFS phải xảy ra trong khoảng thời gian từ 18.04 đến 20.04.

Nmath avatar
lá cờ ng
Ý tưởng tồi. Bạn sẽ phá vỡ hệ thống của mình vì các phụ thuộc sẽ không hoạt động. Tôi khuyên bạn nên thực hiện việc này trong bộ chứa VM để nó không làm hỏng quá trình cài đặt hệ thống của bạn. Nếu bạn đang sử dụng phiên bản EOL của Ubuntu trong bộ chứa, hãy đảm bảo rằng kết nối mạng đã bị tắt trong VM.
Nmath avatar
lá cờ ng
Điều này cũng giống như [Vấn đề XY](https://meta.stackexchange.com/a/66378). Tại sao bạn nghĩ rằng bạn cần một trình xem ảnh mười tuổi? Vấn đề *thực tế* mà bạn đang gặp phải là gì?
N0rbert avatar
lá cờ zw
Bạn có nhận ra rằng gói gỡ lỗi biên dịch sẵn hiện đại thông thường tồn tại tại https://packages.ubuntu.com/focal/gthumb không? Ý tưởng cuối cùng của bạn với việc chạy phần mềm từ Ubuntu Lucid Lynx (năm 2010) là gì?
raj avatar
lá cờ cn
raj
@Nmath Tôi đã sử dụng rất nhiều tùy chọn trình chiếu gThumb trong 10.04 và có một số tính năng mà gThumb hiện tại **không** cung cấp trong chế độ trình chiếu (có thể sử dụng tùy chọn "chỉ phù hợp với màn hình cho hình ảnh lớn hơn"; hoạt ảnh GIF được phát ở chế độ trình chiếu; phím "I" hoạt động); nói một cách ngắn gọn, phiên bản hiện tại của gThumb kém hơn nhiều so với phiên bản cũ. Vì vậy, tôi muốn chạy cái cũ.
raj avatar
lá cờ cn
raj
@Nmath Ngoài ra, như tôi đã viết, tôi có thể đáp ứng các phụ thuộc, ứng dụng chạy và không phàn nàn về bất kỳ thư viện bị thiếu nào (tôi chỉ đặt tất cả các thư viện cần thiết vào cùng thư mục với tệp nhị phân `gthumb` và chạy nó với `LD_LIBRARY_PATH` được đặt vào thư mục đó). Nó "chỉ" không thể giao tiếp với chương trình phụ trợ Gnome gần đây. Tôi quan tâm nếu điều này có thể được giải quyết bằng cách nào đó.
lá cờ us
Gần đây, các nhà phát triển GNOME đã loại bỏ rất nhiều tính năng hữu ích. Hãy thử Eye of MATE. `sudo apt cài đặt eom-common`
Điểm:0
lá cờ de

Bạn sẽ phá vỡ hệ điều hành do các vấn đề phụ thuộc. Do đó tôi đề nghị: Tải xuống Ubuntu 10.04 từ đây. Cài đặt nó trong bộ chứa VM và chạy ứng dụng trong đó.

raj avatar
lá cờ cn
raj
Bạn đã sai, như - như tôi đã viết - tôi có thể đáp ứng tất cả các phụ thuộc và ứng dụng **chạy** và **không phàn nàn về bất kỳ thư viện nào bị thiếu**. Nó chỉ thất bại khi tương tác với chương trình phụ trợ Gnome hiện tại. Tôi quan tâm nếu điều này có thể được giải quyết bằng cách nào đó.
Điểm:0
lá cờ cn
raj

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 :))

  1. tạo một thư mục cho ứng dụng gThumb cũ chẳng hạn /opt/gthumb_old.
  2. 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ế.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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".

  6. tạo một liên kết tượng trưng /usr/share/gthumb/glade chỉ đến /opt/gthumb_old/glade.

  7. 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)

  8. 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)

  9. 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)

  10. 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
  1. 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
  1. 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

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.