Como instalar o mongodb 3.4 no debian stretch (9)?

12

Eu quero instalar o mongodb 3.4 no debian stretch. Infelizmente os pacotes de extensão debian são apenas o mongodb 3.2 ( link ).

Os documentos do mongodb mencionam apenas o debian 7 e 8 ( link ). Ao usar os comandos do debian 8, não consigo instalar pacotes mongodb porque eles têm dependências não atendidas.

Ao permitir jessie-backports, o erro de dependências não atendidas desaparece, mas não tenho certeza se devo fazer isso e instalar os pacotes jessie-backports no trecho.

Como você instalaria o mongodb 3.4 no debian stretch?

Obrigado por qualquer conselho.

    
por Hamburml 15.07.2017 / 14:17

6 respostas

15

O erro quando você tenta usar as instruções Debian 8 sugere muitas dependências perdidas, mas na verdade funcionará se você instalar a única dependência real ausente ( libssl1.0.0 ). Para referência, para descobrir o que estava faltando, eu fiz o download do mongod binário e dei uma olhada em 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*

Se você der uma olhada no que está instalado no Debian 9, basicamente nós apenas temos versões de libssl que são muito novas. As bibliotecas libssl e libcrypto são instaladas pelo pacote libssl e são praticamente independentes. Portanto, podemos pegar o pacote 8 libssl1.0.0 do Debian e instalá-lo.

A versão amd64 do pacote pode ser encontrada aqui (apenas Google para libssl1.0.0 Jesse e seu arco para outra versão).

Para instalar esse pacote, baixe o arquivo (no meu caso, foi para Downloads) e instale-o com 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) ...

Com isso concluído, rapidamente verificamos novamente 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*

Sucesso! Agora vamos tentar novamente a instalação do pacote de 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) ...

Por fim, vamos garantir que o serviço seja iniciado e possamos nos conectar com um shell:

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 

E você tem isso - pacotes do Jesse trabalhando no Stretch. Tenho certeza de que haverá um lançamento oficial em breve que tornará isso obsoleto, mas enquanto isso, essa é uma solução relativamente indolor.

    
por 18.07.2017 / 13:15
3

Parece que o mongodb 3.4 ainda não possui binários para o debian stretch em seu repositório oficial do apt. Sua melhor abordagem pode ser construída a partir do código-fonte do seu sistema.

Existem instruções específicas sobre esta página: link

Você também pode tentar usar os pacotes do Ubuntu para o Xenial, mas não há garantia de que isso funcionaria corretamente, e acho que construir a partir da fonte seria uma idéia melhor.

    
por 15.07.2017 / 15:45
1

Acabei de ter esse problema (embora usando o debain 9).

Um pouco de escavação revelou que foi devido ao fato de que a versão antiga do pacote debian não pôde ser removida pelo instalador (eu estava tentando atualizar do pacote mongodb não-oficial fornecido pelo Debian para os pacotes oficiais do mongodb-org) .

A solução foi a seguinte:

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

Espero que isso economize alguém algum tempo!

    
por 08.07.2018 / 02:58
0

Eu criei um repositório do Github para facilitar a construção da versão mais recente das coisas do MongoDB você mesmo. Ele irá construir tudo internamente em vez de depender do apt, incluindo o serviço systemd.

    
por 20.01.2018 / 21:11
0

A partir de agora, o pacote está disponível dentro do Debian -

link

Basta instalá-lo executando

# sudo apt install mongodb-server

    
por 29.03.2018 / 15:30
0

Estou usando o Debian 9 Stretch

Eu baixei esta versão do MongoDB: Linux 64-bit legado 64x

Eufizodownloadparaapastadaminhaáreadetrabalhoerenomeiparamongodb

Depoisdisso,você"precisa" mover sua pasta renomeada recente para /opt/

mv mongodb /opt/

Agora você pode acessar /opt/mongodb/bin e executar um comando assim:

./mongod --dbpath ./db/

Para tornar a coisa divertida, você pode criar um symlink, por exemplo, mongod to /usr/local/bin/ , assim:

ln -s /opt/mongodb/bin/mongod /usr/local/bin/mongod

Agora, no seu terminal, digite o comando em qualquer lugar:

mongod --dbpath /homer/user/Desktop/db

Você precisa especificar o --dbpath para que o mongod funcione corretamente.

    
por 16.03.2018 / 10:37