16.04에서 업그레이드된 Ubuntu 18.04는 upowerd를 로드할 수 없으며 libssl.so.1.0.2를 찾을 수 없습니다.

16.04에서 업그레이드된 Ubuntu 18.04는 upowerd를 로드할 수 없으며 libssl.so.1.0.2를 찾을 수 없습니다.

저는 16.04가 새로 설치되어 출시된 이후로 실행해 왔으며 약 한 달 전에 공식 업그레이드 메커니즘을 사용하여 18.04로 업그레이드했습니다. 시스템 로그에서 다음을 확인했습니다.

Sep 27 17:40:36 yavin systemd[1]: Starting Daemon for power management...
Sep 27 17:40:36 yavin upowerd[836]: /usr/lib/upower/upowerd: error while loading shared libraries: libssl.so.1.0.2: cannot open shared object fil
e: No such file or directory
Sep 27 17:40:36 yavin systemd[1]: upower.service: Main process exited, code=exited, status=127/n/a
Sep 27 17:40:36 yavin systemd[1]: upower.service: Failed with result 'exit-code'.
Sep 27 17:40:36 yavin systemd[1]: Failed to start Daemon for power management.
Sep 27 17:40:36 yavin systemd[1]: upower.service: Service hold-off time over, scheduling restart.
Sep 27 17:40:36 yavin systemd[1]: upower.service: Scheduled restart job, restart counter is at 1.
Sep 27 17:40:36 yavin systemd[1]: Stopped Daemon for power management.
Sep 27 17:40:36 yavin systemd[1]: Starting Daemon for power management...
Sep 27 17:40:36 yavin upowerd[846]: /usr/lib/upower/upowerd: error while loading shared libraries: libssl.so.1.0.2: cannot open shared object file: No such file or directory
Sep 27 17:40:36 yavin systemd[1]: upower.service: Main process exited, code=exited, status=127/n/a
Sep 27 17:40:36 yavin systemd[1]: upower.service: Failed with result 'exit-code'.
Sep 27 17:40:36 yavin systemd[1]: Failed to start Daemon for power management.
Sep 27 17:40:36 yavin systemd[1]: upower.service: Service hold-off time over, scheduling restart.
Sep 27 17:40:36 yavin systemd[1]: upower.service: Scheduled restart job, restart counter is at 2.

따라서 upowerd는 libssl.so.1.0.2를 찾을 수 없습니다. 물론 그렇습니다.

$ ldd -v /usr/lib/upower/upowerd | grep 'not found'
    libssl.so.1.0.2 => not found
    libcrypto.so.1.0.2 => not found
        libcrypto.so.1.0.2 (OPENSSL_1.0.2d) => not found
        libssl.so.1.0.2 (OPENSSL_1.0.2d) => not found

upowerd가 18.04에서도 여전히 사용되고 있습니까? 그렇다면 현재 가지고 있는 upowerd 및 libssl/libcrypto의 버전과 필요한 버전을 확인하거나 강제로 다시 설치하려면 어떻게 해야 합니까?

이것이 내가 설치한 것 같습니다:

$ sudo apt list --installed | grep "libssl"

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libssl-dev/now 1.1.0h-2.0+ubuntu16.04.1+deb.sury.org+1 amd64 [installed,local]
libssl-doc/now 1.1.0h-2.0+ubuntu16.04.1+deb.sury.org+1 all [installed,local]
libssl1.0.0/bionic-updates,bionic-security,now 1.0.2n-1ubuntu5.1 amd64 [installed]
libssl1.1/now 1.1.0h-2.0+ubuntu16.04.1+deb.sury.org+1 amd64 [installed,local]

그리고 libcrypto:

$ sudo apt list --installed | grep "crypto"

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libblockdev-crypto2/bionic,now 2.16-2 amd64 [installed]
libhcrypto4-heimdal/bionic,now 7.5.0+dfsg-1 amd64 [installed]
libk5crypto3/bionic,now 1.16-2build1 amd64 [installed,automatic]
python-crypto/bionic,now 2.6.1-8ubuntu2 amd64 [installed,automatic]
python3-asn1crypto/bionic,bionic,now 0.24.0-1 all [installed]
python3-crypto/bionic,now 2.6.1-8ubuntu2 amd64 [installed]
python3-cryptography/bionic-updates,bionic-security,now 2.1.4-1ubuntu1.2 amd64 [installed]

이는 업그레이드 이전에 발생한 문제일 수 있습니다. upowerd가 없으면 배터리 전원 관리가 없었고 랩톱의 전원이 갑자기 꺼지고 몇 번 작동이 중단되었습니다. 업그레이드 전에도 이런 일이 발생한 것을 기억합니다.

편집하다

요청한 대로 다음을 출력합니다 apt policy upower.

upower:
  Installed: 0.99.7-2
  Candidate: 0.99.7-2
  Version table:
 *** 0.99.7-2 500
        500 http://ubuntu.ipserverone.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

편집 2

apt재설치를 요청하면 upower동일한 패키지가 설치되고 apt policy upower출력은 변경되지 않습니다.

$ sudo apt install --reinstall upower
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 45 not upgraded.
Need to get 102 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://ubuntu.ipserverone.com/ubuntu bionic/main amd64 upower amd64 0.99.7-2 [102 kB]
Fetched 102 kB in 0s (381 kB/s)  
(Reading database ... 283627 files and directories currently installed.)
Preparing to unpack .../upower_0.99.7-2_amd64.deb ...
Unpacking upower (0.99.7-2) over (0.99.7-2) ...
Setting up upower (0.99.7-2) ...
upower.service is a disabled or a static unit not running, not starting it.
Processing triggers for man-db (2.8.3-2) ...
Processing triggers for dbus (1.12.2-1ubuntu1) ...

$ sudo apt policy upower
upower:
  Installed: 0.99.7-2
  Candidate: 0.99.7-2
  Version table:
 *** 0.99.7-2 500
        500 http://ubuntu.ipserverone.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

설정된 전송이 없는 것 같고 바이너리는 여전히 libssl라이브러리를 찾을 수 없습니다.libcryptoupowerd

$ dpkg-divert --list /usr/lib/upower/upowerd

$ ldd -v /usr/lib/upower/upowerd | grep 'not found'
    libssl.so.1.0.2 => not found
    libcrypto.so.1.0.2 => not found
        libcrypto.so.1.0.2 (OPENSSL_1.0.2d) => not found
        libssl.so.1.0.2 (OPENSSL_1.0.2d) => not found

Ubuntu 18.04를 새로 설치하는 것과 비교를 추가하도록 편집되었습니다.

@stephen-kitt가 upowerd가 libssl에 의존해서는 안 된다고 언급했기 때문에 18.04로 새 가상 머신을 설치했는데, 확실히 ldd 목록이 달랐습니다.

노트북에 뭔가 문제가 있는 것 빼고는ldd -v /usr/lib/upower/upowerd

ibffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007ff3f0466000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ff3f01f5000)
libssl.so.1.0.2 => not found
libcrypto.so.1.0.2 => not found
libusbmuxd.so.4 => /usr/lib/x86_64-linux-gnu/libusbmuxd.so.4 (0x00007ff3effed000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff3f2f14000)

새로운 18.04 설치

libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f4aa91de000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f4aa8f6c000)
libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f4aa8c07000)
libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f4aa89f4000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f4aa86d9000)
libusbmuxd.so.4 => /usr/lib/x86_64-linux-gnu/libusbmuxd.so.4 (0x00007f4aa84d1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4aabc8c000)

어떤 이유로 랩톱은 libssl 및 libcrypto에 연결되고 새로 설치하면 libgnutls, libtasn1 및 libgcrypt에 연결됩니다.

새로 설치에 대한 보고서는 여전히 apt policy노트북과 동일합니다.

$ apt policy upower
upower:
  Installed: 0.99.7-2
  Candidate: 0.99.7-2
  Version table:
 *** 0.99.7-2 500
        500 http://th.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

왜 이렇게 되어야 하는지 모르겠습니다.

곧 노트북을 다시 설치할 예정입니다(gedit와 같은 앱을 로드하는 데 오랜 지연이 발생하는 등의 다른 문제가 있습니다). 하지만 이 문제가 어떻게 발생했는지 알아내는 것이 좋을 것입니다.

답변1

/usr/lib/upower/upowerd어쨌든 당신은 다음에 포함된 파일과 일치하지 않는 버전으로 끝나게 됩니다.upower패키지.

이 문제를 해결하려면 패키지를 다시 설치하십시오.

sudo apt install --reinstall upower

그래도 도움이 되지 않으면 전송이 있는지 확인하세요.

dpkg-divert --list /usr/lib/upower/upowerd

전송이 나타나면 해당 패키지를 확인하고 업그레이드하거나 제거해야 할 수도 있습니다.

답변2

이 글을 발견하고 문제가 해결된 것 같습니다https://stackoverflow.com/questions/46969560/messed-up-my-ubuntu-16-installation-gtk-upowerd-issues원래 가지고 있던 Ubuntu 16을 사용하는 누군가가 나와 같은 문제를 겪었습니다. 그가 제안한 대로 libssl .deb 패키지를 수동으로 설치했고 이제 노틸러스가 즉시 로드되어 전원 설정 페이지에 다시 액세스할 수 있습니다.

ldd upowerd이제 "찾을 수 없음"도 표시되지 않으며 새로 설치된 libssl 및 libcrypto에 대해 링크할 수 있습니다.

    libssl.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 (0x00007f9026ee7000)
    libcrypto.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 (0x00007f9026a85000)

그래서 내 시스템이 어떻게 엉망이 되었는지는 모르지만 패키지를 설치하면 증상을 해결하는 일부 .so 라이브러리가 제공되는 것 같습니다.

upowerd가 새로 설치되지 않은 라이브러리에 대해 링크를 시도하는 이유를 알고 싶기 때문에 추가 의견을 환영합니다. ( ldd -v내 출력이 다른 가상 머신의 새로 설치에 대한 위의 게시물을 참조하세요.) 시스템, 둘 다 upowerd동일한 패키지가 설치되어 있더라도).

상황이 별로 만족스럽지 않아서 이 답변을 받아들여야 할지 잘 모르겠습니다. :) 일부 사람들은 제가 올바른 방법으로 "수정"하지 않았으며 방금 해킹으로 문제를 해결했다고 말할 것 같습니다.

답변3

19.10에서 20.04로 업그레이드한 후 동일한 문제가 해결되었습니다.

실행은 도움이 dpkg install --reinstall되지 dpkg --verify않았지만 올바른 패키지가 설치되었는지 확인했습니다.

내 경우에는 ldd /usr/lib/upower/upowerd.libusbmuxd-04

실행하면 objdump -p /usr/lib/upower/upowerd | grep usbmux종속성이 표시되지 않습니다.

문제는 /etc/ld.so.cache파일을 삭제하면 도움이 되지만 다음 빌드 캐시에만 해당된다는 것입니다.

/usr/local에 있는 라이브러리가 문제를 일으키는 것으로 밝혀졌으며 다음을 통해 알아냈습니다.

sudo rm /etc/ld.so/cache
export LD_DEBUG=files
ldd /usr/lib/upower/upowerd

/usr/local/lib이는 더 나은 추적을 제공하고 궁극적으로 문제를 일으키는 파일을 알려줍니다 .

답변4

비슷한 문제가 있었는데 마침내 해결책을 찾았습니다.

이해해야 할 가장 중요한 점은 그 upowerd자체가 존재하지 않는 라이브러리에 연결되는 것이 아니라 연결된 라이브러리 중 하나가 존재하지 않는 라이브러리에 연결된다는 것입니다.

종속성 체인을 보려면 다음을 수행합니다.

ldd -v /usr/lib/upower/upowerd

이렇게 하면 라이브러리 종속성에 대한 계층적 보기가 제공됩니다. 누락된 라이브러리를 추적하고 이에 의존하는 라이브러리를 확인하세요. 제 경우에는 수동으로 설치한 라이브러리였습니다. 이를 제거하면 문제가 해결되었습니다.

관련 정보