debianstretch에 mongodb 3.4를 설치하고 싶습니다. 불행하게도 데비안 확장 패키지는 mongodb 3.2(https://packages.debian.org/stretch/mongodb).
mongodb 문서에는 데비안 7과 8만 언급되어 있습니다(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/). Debian 8 명령을 사용할 때 mongodb 패키지에 충족되지 않은 종속성이 있기 때문에 설치할 수 없습니다.
jessie-backports를 허용하면 충족되지 않은 종속성 오류가 사라졌지만 그렇게 하고 jessie-backports 패키지를 늘려서 설치해야 할지 잘 모르겠습니다.
Debian Stretch에 mongodb 3.4를 설치하는 방법은 무엇입니까?
어떤 조언이라도 감사드립니다.
답변1
Debian 8 지침을 사용하려고 할 때 나타나는 오류는 누락된 종속성이 많이 있음을 나타내지만 실제로는 libssl1.0.0
실제로 누락된 단일 종속성( )을 설치하면 오류가 작동합니다. 참고로 무엇이 빠졌는지 알아보기 위해 mongod
바이너리를 다운로드하고 다음을 살펴보았습니다 ldd
.
adam@debian9:~/mongo/mongodb-linux-x86_64-debian81-3.4.6/bin$ ldd mongod
linux-vdso.so.1 (0x00007ffd0e15d000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f93c6dff000)
*snip*
데비안 9에 설치된 것을 보면 기본적으로 우리 버전이 libssl
너무 새롭습니다. 라이브러리는 패키지에 의해 설치되며 libssl
거의 독립적입니다. 따라서 Debian 8 패키지를 구해서 설치할 수 있습니다.libcrypto
libssl
libssl1.0.0
패키지의 amd64 버전을 찾을 수 있습니다여기(다른 버전을 얻으려면 Google libssl1.0.0 Jesse와 귀하의 아치만 있으면 됩니다).
패키지를 설치하려면 파일을 다운로드하고(제 경우에는 다운로드) 다음 명령을 사용하여 설치합니다 dpkg
.
adam@debian9:~$ sudo dpkg -i /home/adam/Downloads/libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb
Selecting previously unselected package libssl1.0.0:amd64.
(Reading database ... 126471 files and directories currently installed.)
Preparing to unpack .../libssl1.0.0_1.0.1t-1+deb8u6_amd64.deb ...
Unpacking libssl1.0.0:amd64 (1.0.1t-1+deb8u6) ...
Setting up libssl1.0.0:amd64 (1.0.1t-1+deb8u6) ...
완료되면 빠르게 다시 확인해 보겠습니다 ldd
.
adam@debian9:~/mongo/mongodb-linux-x86_64-debian81-3.4.6/bin$ ldd mongod
linux-vdso.so.1 (0x00007ffdf25de000)
libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f86bc12d000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f86bbd31000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f86bbb29000)
*snip*
성공! 이제 패키지 설치를 다시 시도해 보겠습니다 mongodb-org
.
adam@debian9:~$ sudo apt install mongodb-org
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 66.8 MB of archives.
After this operation, 270 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-shell amd64 3.4.6 [7,980 kB]
Get:2 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-server amd64 3.4.6 [14.2 MB]
Get:3 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-mongos amd64 3.4.6 [8,103 kB]
Get:4 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org-tools amd64 3.4.6 [36.5 MB]
Get:5 http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4/main amd64 mongodb-org amd64 3.4.6 [3,820 B]
Fetched 66.8 MB in 7s (9,509 kB/s)
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 126491 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_3.4.6_amd64.deb ...
Unpacking mongodb-org-shell (3.4.6) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../mongodb-org-server_3.4.6_amd64.deb ...
Unpacking mongodb-org-server (3.4.6) ...
*snip*
Adding system user `mongodb' (UID 119) ...
Adding new user `mongodb' (UID 119) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb' (GID 123) ...
Done.
Adding user `mongodb' to group `mongodb' ...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org (3.4.6) ...
마지막으로 서비스가 시작되었고 셸에 연결할 수 있는지 확인하겠습니다.
adam@debian9:~$ sudo systemctl start mongod
adam@debian9:~$ mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6
이제 Stretch에서 실행되는 Jesse 패키지가 완성되었습니다. 곧 공식 버전이 출시되어 이 기능이 더 이상 사용되지 않을 것이라고 확신하지만 그 동안에는 비교적 고통스럽지 않은 해결 방법입니다.
답변2
mongodb 3.4의 공식 apt 저장소에는 아직 debianstretch용 바이너리가 없는 것 같습니다. 가장 좋은 접근 방식은 소스에서 시스템을 구축하는 것입니다.
이 페이지에는 구체적인 지침이 있습니다. https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
Xenial의 Ubuntu 패키지를 사용해 볼 수도 있지만 이것이 작동할 것이라는 보장은 없으며 소스에서 빌드하는 것이 더 나은 생각이라고 생각합니다.
답변3
나는 방금 이 문제에 직면했습니다(debain 9를 사용함에도 불구하고).
좀 조사한 후에 이것이 설치 프로그램이 이전 데비안 패키지 버전을 제거할 수 없기 때문이라는 것을 알게 되었습니다(저는 데비안에서 제공하는 비공식 mongodb 패키지를 공식 mongodb-org 패키지로 업그레이드하려고 했습니다).
해결책은 다음과 같습니다.
sudo apt-get autoremove mongodb-org
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install -y mongodb-org
이것이 일부 사람들의 시간을 절약해주기를 바랍니다!
답변4
현재 이 패키지는 Debian에서 사용할 수 있습니다.
https://packages.debian.org/stretch/mongodb-server
실행해서 설치하면 됩니다
# sudo apt install mongodb-server