정전으로 인해 복원되었으므로 이제 SQL Server를 시작할 수 없습니다.
/opt/mssql/bin/sqlservr: error while loading shared libraries: liblber-2.4.so.2: cannot open shared object file: No such file or directory
파일을 찾고 /usr/lib/x86_64-linux-gnu
SQL Server가 종료된 파일에 대해 원하는 파일에서 심볼릭 링크를 생성하려고 시도했지만 속지 않았습니다.
/opt/mssql/bin/sqlservr: /lib/x86_64-linux-gnu/libldap_r-2.4.so.2: version `OPENLDAP_2.4_2' not found (required by /opt/mssql/bin/sqlservr)
LDAP 라이브러리 버전 2.5를 설치한 것 같은데 SQL Server에는 2.4가 필요합니다.
# apt show libldap-common
Package: libldap-common
Version: 2.5.13+dfsg-5
Priority: optional
Section: libs
Source: openldap
Maintainer: Debian OpenLDAP Maintainers <[email protected]>
Installed-Size: 94.2 kB
Replaces: libldap-2.4-2 (<< 2.4.44+dfsg-1)
Homepage: https://www.openldap.org/
Tag: role::shared-lib
Download-Size: 29.3 kB
APT-Manual-Installed: yes
APT-Sources: http://mirror.ox.ac.uk/debian bookworm/main amd64 Packages
Description: OpenLDAP common files for libraries
These are common files for the run-time libraries for the OpenLDAP
(Lightweight Directory Access Protocol) servers and clients.
나추측하다가능한 해결책 중 하나는 다운그레이드입니다. 이것이 가능합니까? 사용 가능한 다른 버전이 표시되지 않습니다.
# apt list -a libldap-common
Listing... Done
libldap-common/stable,stable,now 2.5.13+dfsg-5 all [installed]
이것이 범인인 것 같습니다:
# grep ldap /var/log/dpkg.log
2023-08-21 18:50:42 status installed libldap-2.4-2:amd64 2.4.57+dfsg-3+deb11u1
2023-08-21 18:50:42 remove libldap-2.4-2:amd64 2.4.57+dfsg-3+deb11u1 <none>
2023-08-21 18:50:42 status half-configured libldap-2.4-2:amd64 2.4.57+dfsg-3+deb11u1
2023-08-21 18:50:42 status half-installed libldap-2.4-2:amd64 2.4.57+dfsg-3+deb11u1
2023-08-21 18:50:42 status config-files libldap-2.4-2:amd64 2.4.57+dfsg-3+deb11u1
2023-08-21 18:50:42 status not-installed libldap-2.4-2:amd64 <none>
2023-08-27 10:20:03 install libldap-dev:amd64 <none> 2.5.13+dfsg-5
2023-08-27 10:20:03 status half-installed libldap-dev:amd64 2.5.13+dfsg-5
2023-08-27 10:20:03 status unpacked libldap-dev:amd64 2.5.13+dfsg-5
2023-08-27 10:20:03 configure libldap-dev:amd64 2.5.13+dfsg-5 <none>
2023-08-27 10:20:03 status unpacked libldap-dev:amd64 2.5.13+dfsg-5
2023-08-27 10:20:03 status half-configured libldap-dev:amd64 2.5.13+dfsg-5
2023-08-27 10:20:03 status installed libldap-dev:amd64 2.5.13+dfsg-5
2023-08-27 10:23:13 install ldap-utils:amd64 <none> 2.5.13+dfsg-5
2023-08-27 10:23:13 status half-installed ldap-utils:amd64 2.5.13+dfsg-5
2023-08-27 10:23:13 status unpacked ldap-utils:amd64 2.5.13+dfsg-5
2023-08-27 10:23:13 configure ldap-utils:amd64 2.5.13+dfsg-5 <none>
2023-08-27 10:23:13 status unpacked ldap-utils:amd64 2.5.13+dfsg-5
2023-08-27 10:23:13 status half-configured ldap-utils:amd64 2.5.13+dfsg-5
2023-08-27 10:23:13 status installed ldap-utils:amd64 2.5.13+dfsg-5
취소될 수 있나요?
고쳐 쓰다
Ubuntu 22.04에서도 동일한 문제가 있습니다.
답변1
다른 버전의 라이브러리를 넣을 수는 없습니다. 이는 바이너리가 작동하는 방식이 아닙니다.
그렇다면 sqlservr은 독점적인 것입니다. 그렇죠? 필요한 모든 라이브러리를 보유해야 합니다. 시스템 제공 라이브러리에 의존하는 경우 작성자(Microsoft)는 업스트림과 동기화되어 있는지 확인해야 합니다.
따라서 Microsoft에서는 이 작업을 수행하지 않는 것으로 보이므로 mssql이 설치된 시스템을 임의로 업데이트할 수 없습니다. Microsoft에 지원 사례를 제출하거나 아직 설치하지 않은 경우 최신 버전의 mssql을 설치하세요.
그 동안 일반적인 솔루션은 명확하고 적극적으로 지원되는 플랫폼으로 컨테이너를 설정하고, mssql만 설치하고, 기존 데이터를 볼륨으로 컨테이너에 가져오고, 소켓 연결에 사용되는 네트워크 포트 및/또는 UNIX를 내보내는 것입니다. . 데이터베이스와 통신하고 이전과 동일한 머신에서 실행합니다.
취소될 수 있나요?
잘 모르겠습니다. 모든 이전 버전의 소프트웨어에 대한 패키지 파일이 여전히 존재하고 LDAP를 다운그레이드할 때 다운그레이드해야 하는 경우가 아니라면 말입니다. 이것은 아마도 최악의 해결책일 것입니다. 하지만 데이터베이스 서버에 있는 모든 항목의 백업을 갖고 있지 않습니까?
답변2
이렇게 하면 실행됩니다.
# wget http://ftp.uk.debian.org/debian/pool/main/o/openldap/libldap-2.4-2_2.4.57+dfsg-3+deb11u1_amd64.deb
# apt install ./libldap-2.4-2_2.4.57+dfsg-3+deb11u1_amd64.deb