dbus-uuidgen은 /usr/local/lib/libdbus-1.so.3을 찾을 수 없음을 반환합니다.

dbus-uuidgen은 /usr/local/lib/libdbus-1.so.3을 찾을 수 없음을 반환합니다.

Ubuntu 16.04.2 LTS에서 dbus-uuidgen을 실행하면 다음이 반환됩니다.

dbus-uuidgen: /usr/local/lib/libdbus-1.so.3: 버전 'LIBDBUS_PRIVATE_1.10.8'을 찾을 수 없습니다(dbus-uuidgen에 필요함)

문서에는 다음과 같이 명시되어 있습니다.

허공에서 생성된 새로운 UUID를 인쇄합니다.

하지만 /usr/local/lib/libdbus-1.so.3.16.4에 대한 링크로 /usr/local/lib/libdbus-1.so.3이 있습니다.

이 문제는 소스에서 dbus 및 bluez를 설치하고 시스템을 다시 시작한 후에 발생했습니다. 따라서 로그인 서비스와 같은 일부 서비스를 시작 시 로드할 수 없었기 때문에 일부 종속성(및 ubuntu-desktop)과 함께 복구 모드에서 dbus 및 bluez를 제거해야 했습니다. ), 로그인 서비스를 시작하고 일반 사용자로 로그인한 다음 dbus를 다시 설치하십시오. 하지만 이제 apt-get을 사용하여 무엇이든 설치하려고 할 때마다 dbus-uuid 오류로 인해 설치가 중지됩니다. 내가 이상하게 생각한 점은 /var/lib/dbus/machine-id 및 /etc/machine-id 파일에 재부팅 시 ID가 포함되어 있다는 것입니다. 나는 이것이 dbus-uuidgen이 시작 시 작동한다는 것을 증명한다고 믿습니다.

출력 샘플:

$sudo apt-get install bluez
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  dbus
Suggested packages:
  dbus-user-session | dbus-x11
The following NEW packages will be installed:
  bluez dbus
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,041 kB of archives.
After this operation, 4,767 kB of additional disk space will be used.
Do you want to continue? [Y/n] Get:1 http://ma.archive.ubuntu.com/ubuntu xenial-updates/main amd64 dbus amd64 1.10.6-1ubuntu3.3 [142 kB]
Get:2 http://ma.archive.ubuntu.com/ubuntu xenial/main amd64 bluez amd64 5.37-0ubuntu5 [899 kB]
Fetched 1,041 kB in 2s (383 kB/s)
Selecting previously unselected package dbus.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 270712 files and directories currently installed.)
Preparing to unpack .../dbus_1.10.6-1ubuntu3.3_amd64.deb ...
Unpacking dbus (1.10.6-1ubuntu3.3) ...
Selecting previously unselected package bluez.
Preparing to unpack .../bluez_5.37-0ubuntu5_amd64.deb ...
Unpacking bluez (5.37-0ubuntu5) ...
Processing triggers for systemd (229-4ubuntu17) ...
Processing triggers for ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db (2.7.5-1) ...
Setting up dbus (1.10.6-1ubuntu3.3) ...
dbus-uuidgen: /usr/local/lib/libdbus-1.so.3: version LIBDBUS_PRIVATE_1.10.18' not found (required by dbus-uuidgen)
dpkg: error processing package dbus (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of bluez:
 bluez depends on dbus; however:
  Package dbus is not configured yet.

dpkg: error processing package bluez (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 dbus
 bluez

답변1

나는 다음을 통해 문제를 해결했습니다.

  • 달리다 dpkg --remove --force-depends libdbus-1-3. 종속성을 제거하지 않고 libdbus-1-3을 제거합니다.
  • make clean문제를 해결하는 동안 설치한 각 dbus 버전의 나머지 부분을 제거하려면 실행하세요 .
  • 파일의 내 deb-src 항목에 주석을 달아주세요 /etc/apt/sources.list.
  • apt-get clean로컬 저장소를 사용하고 정리합니다 apt-get autoclean. apt-get install -f-깨진 종속성을 수정하려면 실행하세요 .
  • 다음 으로 인해 dbus를 설치 apt-get install dbus하지 못했습니다.dbus-uuidgen오류가 발생했습니다. 일단 apt-get source소스 패키지를 받아 수동으로 설치했는데 오류 없이 설치에 성공했습니다. 이제 dbus-uuidgen작동하고 문자열을 인쇄합니다.

무엇이 문제를 해결했는지는 잘 모르겠지만 dbus 버전 1.10.6-ubun amd64(우분투용)에서만 작동하는 libdbus-1-3 라이브러리를 사용하여 다른 버전의 dbus를 설치한 것 같습니다. 걱정됩니다. 내 배포판에서는 이 버전만 작동합니다. @Gilles의 설명이 더 정확하다고 생각합니다.

답변2

dbus-uuidgen두 가지 서로 다른 버전의 실행 파일과 실행 파일이 사용하는 라이브러리가 있으며 libdbus-1.so.3, 파일 이름은 동일하지만 버전은 바이너리와 호환되지 않습니다. (이것은 다른 컴파일 옵션 때문일 수 있지만 빌드가 어떻게 구성되었는지 알지 못한 채 추측일 뿐입니다.) /usr/bin/dbus-*또는 의 라이브러리만 사용해야 libdbus-*하며 의 라이브러리만 사용해야 합니다./lib/usr/lib/usr/bin/dbus-*libdbus-*/usr/local/lib

/usr/local핵심 시스템 프로그램 및 라이브러리(예: D-Bus)와 충돌하는 프로그램은 설치하지 않는 것이 좋습니다 . 테스트를 위해 다른 버전이 필요한 경우 실행 파일이나 라이브러리 검색 경로가 아닌 별도의 디렉터리에 설치하세요.

관련 정보