Zuerst sicherstellen, dass das System aktuell ist, vor allem wenn der letzte Aufruf lange her ist.
sudo apt-get update sudo apt-get upgrade
MongoDB gibts es aktuell für den Rasberry PI noch keine offizielle Version. Diese müssen wir aus den Quellen bauen.
Bei meinem Raspberry PI konnte ich nicht einmal die Quellen aus Github herunterladen weil git einen 'Out-Of-Memory'-Fehler verursachte. Der Speicher ist war klein. Deshalb überprüft zuerst ob der Swap genug gross ist.
Swap (Auslagerungsdatei) auflisten:
cat /proc/swaps
Die Grösse der Swap-Datei erhöhen:
sudo vi /etc/dphys-swapfile CONF_SWAPSIZE=100
Den Wert von 100 auf z.B. 1000 korrigieren und neu starten.
Für ARM angepasste MongoDB Quellen herunterladen:
git clone https://github.com/skrabban/mongo-nonx86
Der folgende Befehl compiliert die Quellen und dauert Stunden:
sudo scons
Die Installation danach dauert auch Stunden:
sudo scons --prefix=/opt/mongo install
Nun folgen Aufrufe für die Einrichtung vom mongodb als eigener Benutzer und die Erstellung des Verzeichnisses für Log und Daten.
sudo adduser --firstuid 100 --ingroup nogroup --shell /etc/false --disabled-password --gecos "" --no-create-home mongodb
sudo mkdir /var/log/mongodb
sudo chown mongodb:nogroup /var/log/mongodb
sudo mkdir /var/lib/mongodb
sudo chown mongodb:nogroup /var/lib/mongodb
sudo cp debian/init.d /etc/init.d/mongod
sudo chmod u+x /etc/init.d/mongod
sudo cp debian/mongodb.conf /etc/
sudo ln -s /opt/mongo/bin/mongod /usr/bin/mongod
sudo update-rc.d mongod defaults
Damit der MongoDB-Client direkt ohne Angabe vom vollem Pfad gestartet werden kann, muss die System-Umgebungsvariable PATH ergänzt werden. Wenn eine Shell geöffnet wird, führt das System alle *.sh Scripts im /etc/profile.d automatisch aus. Dort erstellen wir eine neue mongodb.sh
-Datei.
sudo vi /etc/profile.d/mongodb.sh
und fügen die folgende Zeile ein:
PATH=$PATH:/opt/mongo/bin/
MongoDB Server starten:
sudo /etc/init.d/mongod start
MongoDB Server neustarten:
sudo /etc/init.d/mongod restart
Falls der Start nicht funktioniert, kann es sein, dass mongod unerwartet beendet wurde. Wenn die Datei mongod.lock existiert, wurde mongod unerwartet beendet.
ls /var/lib/mongodb
sudo mongod --repair --config /etc/mongodb.conf
MongoDB Client starten:
/opt/mongo/bin/mongo