Puncte:2

Rofi: eroare de căutare a simbolului: libgdk_pixbuf-2.0.so.0: simbol nedefinit: g_task_set_name. Dar este acolo!

drapel in

Folosesc Ubuntu 20.04 LTS și tocmai am instalat Awesome Tiling WM. Întâlnesc probleme de „eroare de căutare a simbolurilor” când instalez Rofi, chiar dacă pot găsi simbolul în biblioteca în care caută și nu știu ce să fac în acest sens.

Iată ce am făcut:

Eu instalez Rofi cu

~$ sudo apt install rofi

Dar când îl rulez, primesc

~$ rofi
rofi: eroare de căutare a simbolurilor: ~/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0: simbol nedefinit: g_task_set_name

Totuși, simbolul g_task_set_name este în biblioteca din locația respectivă:

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

(Am văzut în altă parte că versiunea acestor simboluri contează, dar nu văd nicio versiune după acest simbol. Nu știu ce înseamnă asta, unele dintre celelalte simboluri din acea bibliotecă arată versiunea după nume.)

În plus, când rulez rofi din interiorul folderului cu biblioteca, nu există nicio problemă:

~/anaconda3/envs/py37/lib$ rofi
Rofi nu este sigur ce să arate.
Vă rugăm să specificați modul pe care doriți să îl afișați.

rofi -show {modul}

Următoarele moduri sunt activate:
 * fereastră
 * alerga
 * ssh

Pot fi activate următoarele:
 * windowcd
 * beat
 * combi
 * chei

Pentru a activa un mod, adăugați-l la lista de moduri din setarea de mod.

În cele din urmă, vreau să adaug rofi la o legare de taste în awesomeWM. Deci, o soluție ar putea fi să ruleze comanda întotdeauna din acest folder cumva.Dar nu știu cum să fac asta.

În timp ce încerc să rezolv problema mai detaliat, devin mai confuz. Găsesc aceeași bibliotecă în alte două locații, una pentru 32 de biți și una pentru 64 de biți.

~$ 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

Simbolul în niciuna dintre aceste biblioteci:

~$ 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

(cu ieșire identică pentru biblioteca din folderul i386). Dar rofi încă rulează din folderul pe 64 de biți:

/usr/lib/x86_64-linux-gnu$ rofi
Rofi nu este sigur ce să arate.
Vă rugăm să specificați modul pe care doriți să îl afișați.

    rofi -show {modul}

...

Dar nu din folderul pe 32 de biți:

/usr/lib/i386-linux-gnu$ rofi
rofi: eroare de căutare simbol: /home/martin/anaconda3/envs/py37/lib/./libgdk_pixbuf-2.0.so.0: simbol nedefinit: g_task_set_name

Aș dori ajutor pentru ca Rofi să funcționeze, de preferință prin rezolvarea problemei, dar și soluțiile ar fi bune.

De asemenea, aș aprecia ajutor doar pentru a înțelege ce se întâmplă. Nu înțeleg cum caută rofi biblioteci și simboluri. De ce nu poate găsi simbolurile în biblioteci? Și de ce rofi rulează doar în două din cele trei foldere care conțin biblioteca, chiar dacă doar unul dintre acele două foldere are o bibliotecă cu simbolul potrivit?

Mulțumesc anticipat

N0rbert avatar
drapel zw
Trebuie să excludeți Anaconda din PATH și LD_LIBRARY_PATH și apoi să încercați din nou să rulați `rofi`. Sau pur și simplu dezactivează Anaconda pentru o singură cursă.
drapel in
Funcționează! mulțumesc! Am intrat în .bashrc și am eliminat linia în care am adăugat toate folderele anaconda la LD_LIBRARY_PATH.Dar acum îmi imaginez că vor exista pachete Python care au folosit acele căi de bibliotecă și nu le vor mai găsi. Poate că asta poate fi rezolvat prin adăugarea acelor căi de bibliotecă la PYTHONPATH?
N0rbert avatar
drapel zw
Nu sunt sigur despre PYTHONPATH, așa că am scris un răspuns pe baza comentariului de mai sus.
Puncte:1
drapel zw

Trebuie să excludeți Anaconda din $PATH și $LD_LIBRARY_PATH variabilele de mediu și apoi reîncercați să rulați rofi.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.