저는 아치리눅스를 사용하고 있습니다. 최근 업데이트 후 gdbus가 작동하지 않고 기호 조회 오류가 발생하는 것을 발견했습니다.
➜ tidedra@ZgrArch ~ gdbus
gdbus: symbol lookup error: /usr/lib/libgobject-2.0.so.0: undefined symbol: g_string_free_and_steal
그러다가 라이브러리 버전의 문제가 아닐까 생각하여 관련 파일의 링크 라이브러리를 확인해 보았습니다.
➜ tidedra@ZgrArch ~ ldd /usr/bin/gdbus
linux-vdso.so.1 (0x00007ffd17dd7000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007f6b395eb000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f6b394a0000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f6b3943f000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f6b39258000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f6b39251000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f6b39237000)
libmount.so.1 => /usr/lib/libmount.so.1 (0x00007f6b391f1000)
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007f6b39156000)
libffi.so.8 => /usr/lib/libffi.so.8 (0x00007f6b3914b000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f6b397f9000)
libblkid.so.1 => /usr/lib/libblkid.so.1 (0x00007f6b39113000)
➜ tidedra@ZgrArch ~ ls -il /usr/lib/libgobject-2.0.so*
1195587 lrwxrwxrwx 1 root root 19 3月10日 23:18 /usr/lib/libgobject-2.0.so -> libgobject-2.0.so.0
1195588 lrwxrwxrwx 1 root root 35 3月14日 18:48 /usr/lib/libgobject-2.0.so.0 -> /usr/lib/libgobject-2.0.so.0.7600.0
1195589 -rwxr-xr-x 1 root root 391208 3月10日 23:18 /usr/lib/libgobject-2.0.so.0.7600.0
➜ tidedra@ZgrArch ~ ls -il /usr/lib/libglib-2.0.so*
1195561 lrwxrwxrwx 1 root root 16 3月10日 23:18 /usr/lib/libglib-2.0.so -> libglib-2.0.so.0
1198392 lrwxrwxrwx 1 root root 32 3月14日 18:44 /usr/lib/libglib-2.0.so.0 -> /usr/lib/libglib-2.0.so.0.7600.0
1195573 -rwxr-xr-x 1 root root 1351064 3月10日 23:18 /usr/lib/libglib-2.0.so.0.7600.0
➜ tidedra@ZgrArch ~ sudo updatedb
➜ tidedra@ZgrArch ~ locate libgobject
/home/tidedra/.conda/pkgs/glib-2.69.1-he621ea3_2/lib/libgobject-2.0.so
/home/tidedra/.conda/pkgs/glib-2.69.1-he621ea3_2/lib/libgobject-2.0.so.0
/home/tidedra/.conda/pkgs/glib-2.69.1-he621ea3_2/lib/libgobject-2.0.so.0.6901.0
/opt/miniconda3/lib/libgobject-2.0.so
/opt/miniconda3/lib/libgobject-2.0.so.0
/opt/miniconda3/lib/libgobject-2.0.so.0.6901.0
/opt/miniconda3/pkgs/glib-2.69.1-h4ff587b_1/lib/libgobject-2.0.so
/opt/miniconda3/pkgs/glib-2.69.1-h4ff587b_1/lib/libgobject-2.0.so.0
/opt/miniconda3/pkgs/glib-2.69.1-h4ff587b_1/lib/libgobject-2.0.so.0.6901.0
/opt/miniconda3/pkgs/glib-2.69.1-he621ea3_2/lib/libgobject-2.0.so
/opt/miniconda3/pkgs/glib-2.69.1-he621ea3_2/lib/libgobject-2.0.so.0
/opt/miniconda3/pkgs/glib-2.69.1-he621ea3_2/lib/libgobject-2.0.so.0.6901.0
/usr/lib/libgobject-2.0.a
/usr/lib/libgobject-2.0.so
/usr/lib/libgobject-2.0.so.0
/usr/lib/libgobject-2.0.so.0.7600.0
/usr/lib32/libgobject-2.0.so
/usr/lib32/libgobject-2.0.so.0
/usr/lib32/libgobject-2.0.so.0.7600.0
/usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.7600.0-gdb.py
➜ tidedra@ZgrArch ~ locate libglib-2.0
/home/tidedra/.conda/pkgs/glib-2.69.1-he621ea3_2/lib/libglib-2.0.so
/home/tidedra/.conda/pkgs/glib-2.69.1-he621ea3_2/lib/libglib-2.0.so.0
/home/tidedra/.conda/pkgs/glib-2.69.1-he621ea3_2/lib/libglib-2.0.so.0.6901.0
/opt/miniconda3/lib/libglib-2.0.so
/opt/miniconda3/lib/libglib-2.0.so.0
/opt/miniconda3/lib/libglib-2.0.so.0.6901.0
/opt/miniconda3/pkgs/glib-2.69.1-h4ff587b_1/lib/libglib-2.0.so
/opt/miniconda3/pkgs/glib-2.69.1-h4ff587b_1/lib/libglib-2.0.so.0
/opt/miniconda3/pkgs/glib-2.69.1-h4ff587b_1/lib/libglib-2.0.so.0.6901.0
/opt/miniconda3/pkgs/glib-2.69.1-he621ea3_2/lib/libglib-2.0.so
/opt/miniconda3/pkgs/glib-2.69.1-he621ea3_2/lib/libglib-2.0.so.0
/opt/miniconda3/pkgs/glib-2.69.1-he621ea3_2/lib/libglib-2.0.so.0.6901.0
/usr/lib/libglib-2.0.a
/usr/lib/libglib-2.0.so
/usr/lib/libglib-2.0.so.0
/usr/lib/libglib-2.0.so.0.7600.0
/usr/lib32/libglib-2.0.so
/usr/lib32/libglib-2.0.so.0
/usr/lib32/libglib-2.0.so.0.7600.0
/usr/share/gdb/auto-load/usr/lib/libglib-2.0.so.0.7600.0-gdb.py
나는 이 버그와 관련이 없다고 생각하는 miniconda의 6901 버전을 제외하고 7600 버전에는 어떤 문제도 발견하지 못했습니다. 그럼 내 gdbus에 문제가 있는 걸까요?
답변1
나는 뭔가 잘못되었다는 것을 알고 있습니다. 내 것을 확인한 결과 이전이라는 PATH
것을 알았습니다 . 이는 터미널에서 호출할 때 실제로 대신 호출한다는 것을 의미하며 , 보시다시피 miniconda gdbus에 대해 링크된 일부 라이브러리의 버전이 다른 라이브러리의 버전과 일치하지 않습니다. 그래서 miniconda에서 경로를 삭제했습니다 . 또는 miniconda가 터미널에서 시작되지 않도록 하면 문제가 해결됩니다./opt/miniconda/bin
/usr/bin
gdbus
/opt/miniconda/bin/gdbus
/usr/bin/gdbus
PATH
답변2
이 문제는 커널 6.2.0.arch1-1과 관련된 것 같습니다. 커널 6.1.12-arch1-1로 다운그레이드했는데 더 이상 관련 문제가 없는 것 같습니다. 제 경우에는 현재 커널이 네트워크 관리자와 충돌까지 하고 터미널의 모든 것이 충돌합니다.