Điểm:2

Rofi: lỗi tra cứu biểu tượng: libgdk_pixbuf-2.0.so.0: biểu tượng không xác định: g_task_set_name. Nhưng nó ở đó!

lá cờ in

Tôi đang sử dụng Ubuntu 20.04 LTS và tôi vừa cài đặt Awesome Tiling WM. Tôi gặp sự cố "lỗi tra cứu biểu tượng" khi cài đặt Rofi, mặc dù tôi có thể tìm thấy biểu tượng trong thư viện mà nó đang tìm kiếm và tôi không biết phải làm gì với điều đó.

Đây là những gì tôi đã làm:

Mình cài Rofi với

~$ sudo apt cài đặt rofi

Nhưng khi tôi chạy nó, tôi nhận được

~$ rofi
rofi: lỗi tra cứu ký hiệu: ~/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0: ký hiệu không xác định: g_task_set_name

Tuy nhiên, ký hiệu g_task_set_name trong thư viện tại địa điểm đó:

~$ nm -D --with-symbol-versions ~/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0 | grep g_task_set_name
             Bạn g_task_set_name

(Tôi đã thấy ở nơi khác rằng phiên bản của các ký hiệu này quan trọng, nhưng tôi không thấy bất kỳ phiên bản nào sau ký hiệu này. Tôi không biết điều đó có nghĩa là gì, một số ký hiệu khác trong thư viện đó hiển thị phiên bản sau tên.)

Hơn nữa, khi tôi chạy rofi từ bên trong thư mục với thư viện thì không có vấn đề gì:

~/anaconda3/envs/py37/lib$ rofi
Rofi không chắc phải thể hiện điều gì.
Vui lòng chỉ định chế độ bạn muốn hiển thị.

rofi -show {mode}

Các chế độ sau được bật:
 * cửa sổ
 * chạy
 * ssh

Những điều sau đây có thể được kích hoạt:
 * cửa sổcd
 * say rượu
 * kết hợp
 * phím

Để kích hoạt một chế độ, hãy thêm chế độ đó vào danh sách modi trong cài đặt modi.

Cuối cùng, tôi muốn thêm rofi vào một ràng buộc chính trong awesomeWM. Vì vậy, một cách giải quyết có thể là để lệnh luôn chạy từ thư mục này bằng cách nào đó.Nhưng tôi không biết làm thế nào để làm điều đó.

Trong khi cố gắng giải quyết vấn đề thấu đáo hơn, tôi càng bối rối hơn. Tôi tìm thấy cùng một thư viện ở hai vị trí khác, một cho 32-bit và một cho 64-bit.

~$ dpkg -S libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.4000.0
libgdk-pixbuf2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:i386: /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
libgdk-pixbuf2.0-0:i386: /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0.4000.0

Biểu tượng trong cả hai thư viện này:

~$ nm -D --with-symbol-versions /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 | grep g_task_set_
                 U g_task_set_return_on_cancel
                 U g_task_set_source_tag
                 U g_task_set_task_data

(với đầu ra giống hệt nhau cho thư viện trong thư mục i386). Nhưng rofi vẫn chạy từ thư mục 64-bit:

/usr/lib/x86_64-linux-gnu$ rofi
Rofi không chắc phải thể hiện điều gì.
Vui lòng chỉ định chế độ bạn muốn hiển thị.

    rofi -show {mode}

...

Nhưng không phải từ thư mục 32 bit:

/usr/lib/i386-linux-gnu$ rofi
rofi: lỗi tra cứu ký hiệu: /home/martin/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0: ký hiệu không xác định: g_task_set_name

Tôi muốn được trợ giúp để Rofi hoạt động, tốt nhất là thông qua việc giải quyết vấn đề nhưng các giải pháp thay thế cũng sẽ tốt.

Tôi cũng đánh giá cao sự giúp đỡ chỉ để hiểu những gì đang xảy ra. Tôi không hiểu cách rofi tìm kiếm các thư viện và biểu tượng. Tại sao nó không thể tìm thấy các biểu tượng trong thư viện? Và tại sao rofi chỉ chạy ở hai trong ba thư mục chứa thư viện, mặc dù chỉ một trong hai thư mục đó có thư viện với ký hiệu bên phải?

Cảm ơn trước

N0rbert avatar
lá cờ zw
Bạn phải loại trừ Anaconda khỏi PATH và LD_LIBRARY_PATH rồi thử chạy lại `rofi`. Hoặc đơn giản là tắt Anaconda trong một lần chạy.
lá cờ in
Nó hoạt động! Cảm ơn! Tôi truy cập .bashrc và xóa dòng mà tôi đã thêm tất cả các thư mục anaconda vào LD_LIBRARY_PATH.Nhưng bây giờ tôi tưởng tượng sẽ có các gói python sử dụng các đường dẫn thư viện đó và sẽ không tìm thấy chúng nữa. Có lẽ điều đó có thể được giải quyết bằng cách thêm các đường dẫn thư viện đó vào PYTHONPATH?
N0rbert avatar
lá cờ zw
Tôi không chắc về PYTHONPATH, vì vậy tôi đã viết câu trả lời dựa trên nhận xét trên.
Điểm:1
lá cờ zw

Bạn phải loại trừ Anaconda khỏi $PATH$LD_LIBRARY_PATH biến môi trường và sau đó thử chạy lại rofi.

Đă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.