Chcę zainstalować mongodb 3.4 na debian stretch. Niestety pakiety debian stretch to tylko mongodb 3.2 ( https://packages.debian.org/stretch/mongodb ).
Dokumenty mongodb wspominają tylko o debianie 7 i 8 ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/ ). Podczas używania komend debian 8 nie mogę instalować pakietów mongodb, ponieważ mają one niezaspokojone zależności.
Kiedy zezwalam na jessie-backports, zniknął błąd niezaspokojonych zależności, ale nie jestem pewien, czy powinienem to zrobić i zainstalować pakiety jessie-backports w trybie stretch.
Jak zainstalowałbyś mongodb 3.4 na Debian stretch?
Dziękuję za wszelkie porady.
Odpowiedzi:
Błąd podczas próby użycia instrukcji Debiana 8 sugeruje wiele brakujących zależności, ale w rzeczywistości zadziała, jeśli zainstalujesz pojedynczą brakującą zależność (
libssl1.0.0
). Dla porównania, aby dowiedzieć się, czego brakuje, pobrałem plikmongod
binarny i spojrzałem naldd
:Jeśli spojrzysz na to, co jest zainstalowane w Debianie 9, w zasadzie mamy tylko te wersje,
libssl
które są zbyt nowe. Zarówno biblioteki, jaklibssl
ilibcrypto
biblioteki są instalowane przezlibssl
pakiet i są one prawie niezależne. Dlatego możemy po prostu pobraćlibssl1.0.0
pakiet Debian 8 i zainstalować go.Wersja amd64 pakietu można znaleźć tutaj (tylko Google dla libssl1.0.0 Jesse i twój arch dla innej wersji).
Aby zainstalować ten pakiet, pobierz plik (w moim przypadku było to Pobranie), a następnie zainstaluj go za pomocą
dpkg
:Po zakończeniu tej czynności szybko ponownie sprawdzamy
ldd
:Sukces! Teraz spróbujmy ponownie zainstalować pakiet
mongodb-org
:Na koniec upewnijmy się, że usługa się uruchomiła i możemy połączyć się z powłoką:
I masz to - pakiety Jesse pracujące na Stretch. Jestem pewien, że wkrótce pojawi się oficjalne wydanie, które sprawi, że stanie się to przestarzałe, ale w międzyczasie jest to stosunkowo bezbolesne obejście.
źródło
package not found
dlamongodb-org
gdy zaświtało mi, że źle bitiness Linuksa. Mam 32-bitową maszynę wirtualną zamiast 64-bitowej ... ups! Instrukcje i pliki binarne MongoDB są przeznaczone tylko dla wersji 64-bitowej!sudo systemctl start mongod
ponieważ SystemD jest domyślnym systemem dla Debiana od czasów Jessie iservice
stał się tylko skryptem kompatybilności.Wygląda na to, że mongodb 3.4 nie ma jeszcze plików binarnych dla debian stretch w swoim oficjalnym repozytorium apt. Najlepszym rozwiązaniem może być budowanie ze źródła dla systemu.
Na tej stronie znajdują się szczegółowe instrukcje: https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
Możesz także spróbować użyć pakietów Ubuntu dla Xenial, ale nie ma gwarancji, że to zadziała poprawnie i myślę, że budowanie ze źródła byłoby lepszym pomysłem.
źródło
Właśnie miałem ten problem (chociaż korzystałem z debain 9).
Trochę kopania ujawniło, że było to spowodowane faktem, że starsza wersja pakietu Debiana nie mogła zostać usunięta przez instalatora (próbowałem uaktualnić z nieoficjalnego pakietu mongodb dostarczonego przez Debiana do oficjalnych pakietów mongodb-org).
Rozwiązanie było następujące:
Mam nadzieję, że to komuś oszczędza trochę czasu!
źródło
Utworzyłem repozytorium Github, aby ułatwić samodzielne tworzenie najnowszej wersji MongoDB. Zbuduje wszystko wewnętrznie zamiast w zależności od apt, w tym usługi systemowej.
źródło
Obecnie pakiet jest dostępny w Debianie -
https://packages.debian.org/stretch/mongodb-server
Wystarczy zainstalować, uruchamiając
# sudo apt install mongodb-server
źródło
Używam Debian 9 Stretch
Pobrałem tę wersję MongoDB: Linux 64-bit starszej wersji 64x
Pobrałem do folderu na pulpicie i zmieniłem nazwę na
mongodb
Następnie „musisz” przenieść swój najnowszy folder o zmienionej nazwie do
/opt/
mv mongodb /opt/
Teraz możesz uzyskać dostęp
/opt/mongodb/bin
i wykonać takie polecenie:./mongod --dbpath ./db/
Aby dobra zabawa, można utworzyć dowiązania, na przykład,
mongod
aby/usr/local/bin/
, tak jak:ln -s /opt/mongodb/bin/mongod /usr/local/bin/mongod
Teraz w swoim terminalu wpisz polecenie z dowolnego miejsca:
mongod --dbpath /homer/user/Desktop/db
Musisz podać --dbpath , aby mongod działał poprawnie.
źródło