Come installare mongodb 3.4 in debian stretch (9)?


13

Voglio installare mongodb 3.4 su debian stretch. Sfortunatamente i pacchetti stretch debian sono solo mongodb 3.2 ( https://packages.debian.org/stretch/mongodb ).

I documenti mongodb menzionano solo debian 7 e 8 ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ). Quando si usano i comandi debian 8 non riesco ad installare i pacchetti mongodb perché hanno dipendenze non soddisfatte.

Quando si consente jessie-backports, l'errore delle dipendenze non soddisfatte scompare, ma non sono sicuro di doverlo fare e installare i pacchetti jessie-backports in stretch.

Come installeresti mongodb 3.4 su debian stretch?

Grazie per qualsiasi consiglio


hanno rilasciato 3.6 per tratto
eri il

Risposte:


16

L'errore quando si tenta di usare le istruzioni Debian 8 suggerisce molte dipendenze mancanti, ma in effetti funzionerà se si installa la singola dipendenza mancante effettiva ( libssl1.0.0). Per riferimento, per capire cosa mancava, ho scaricato il mongodbinario e ho dato un'occhiata a 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 dai un'occhiata a ciò che è installato in Debian 9, in pratica ne abbiamo solo versioni libssltroppo nuove. Le librerie libssle libcryptosono entrambe installate dal libsslpacchetto ed è praticamente indipendente. Quindi, possiamo semplicemente prendere il libssl1.0.0pacchetto Debian 8 e installarlo.

La versione amd64 del pacchetto è disponibile qui (solo Google per libssl1.0.0 Jesse e il tuo arco per un'altra versione).

Per installare quel pacchetto, scarica il file (nel mio caso era su Download) e quindi installalo con 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) ...

Con questo completo ricontrolliamo rapidamente 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*

Successo! Ora riproviamo l'installazione del pacchetto di 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) ...

Infine, assicuriamoci che il servizio venga avviato e possiamo connetterci con una 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 il gioco è fatto: pacchetti Jesse che lavorano su Stretch. Sono sicuro che presto uscirà una versione ufficiale che lo renderà obsoleto, ma nel frattempo si tratta di una soluzione relativamente indolore.


Grazie per il trucco dei backport. Stavo ottenendo package not foundper mongodb-orgquando mi sono reso conto che avevo il bitiness sbagliato di Linux. Mi sono procurato un VM a 32 bit anziché a 64 bit ... oops! Le istruzioni e i binari di MongoDB sono solo per 64 bit!
sumitkm

2
questo è stato il caso per molto tempo, a 32 bit avevano gravi limitazioni (dati max 2 GB), in particolare nel motore di archiviazione MMAP, non sono sicuro che WiredTiger lo abbia mai supportato
Adam C

3
trovato - abbandonato il supporto per 32 bit con la versione 3.0: docs.mongodb.com/manual/release-notes/3.0-compatibility/…
Adam C

1
Grazie per questo Adam. Nel passaggio finale lo sudo systemctl start mongoduserei poiché SystemD è il sistema init predefinito per Debian da quando Jessie è servicediventato solo uno script di compatibilità.
Rafa,


3

Sembra che mongodb 3.4 non abbia ancora binari per il debian stretch nel loro repository apt ufficiale. Il tuo approccio migliore potrebbe essere la costruzione dalla fonte per il tuo sistema.

Ci sono istruzioni specifiche su questa pagina: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source

Potresti anche tentare di usare i pacchetti Ubuntu per Xenial, ma non vi è alcuna garanzia che funzioni correttamente e penso che costruire dalla fonte sarebbe un'idea migliore.


Ho provato a costruirlo dal sorgente ma ottengo SSLv2_method non è stato dichiarato errori da asio / ssl / impl / context.ipp. Qualche idea?
Hamburml,

1

Ho appena avuto questo problema (sebbene usando debain 9).

Un po 'di scavo ha rivelato che era dovuto al fatto che la versione precedente del pacchetto debian non poteva essere rimossa dall'installatore (stavo tentando di aggiornare dal pacchetto non ufficiale mongodb fornito da Debian ai pacchetti ufficiali mongodb-org).

La soluzione era la seguente:

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

Spero che questo salvi qualcuno!


0

Ho creato un repository Github per semplificare la creazione dell'ultima versione di MongoDB. Costruirà tutto internamente invece di dipendere da apt, incluso il servizio systemd.



0

Sto usando Debian 9 Stretch

Ho scaricato questa versione di MongoDB: Linux 64-bit legacy 64x

inserisci qui la descrizione dell'immagine

Ho scaricato la mia cartella del desktop e l'ho rinominata in mongodb

Successivamente, è necessario "spostare" la cartella recentemente rinominata in /opt/

mv mongodb /opt/

Ora puoi accedere /opt/mongodb/bined eseguire un comando del genere:

./mongod --dbpath ./db/

Per rendere la cosa divertente, potresti creare un collegamento simbolico, ad esempio, mongodin /usr/local/bin/questo modo:

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

Ora, nel tuo terminale, digita il comando, ovunque:

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

Devi specificare --dbpath per far funzionare correttamente il mongod.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.