Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:vzlogger:installation_cpp-version

Dies ist eine alte Version des Dokuments!


vzlogger Installation

This manual is also available in english.

Repository

Unser Repository: https://github.com/volkszaehler/vzlogger

Derzeit sind vzlogger und ein paar der Bibliotheken (Libraries) nur als Quellcode verfügbar. Diese müssen vor gebrauch kompiliert (übersetzt) werden. Wechsle in ein Verzeichnis in dem dein Nutzer Schreibrechte hat. Zum Beispiel dein Home-Verzeichnis:

cd ~

Systemvoraussetzungen zur Kompilierung des vzlogger

Für eine erfolgreiche Kompilierung des vzlogger werden, neben gcc (4.7 oder neuer) und glibc, auch diese Libraries benötigt:

Tools

  • git (package: git-core)
  • cmake
  • pkg-config
  • subversion (für Tests mit googlemock)

Erforderliche Libraries

  • libjson >= 0.11 (>= 0.9 before https://github.com/volkszaehler/vzlogger/pull/106)
  • libcurl3 >= 7.19
  • libgnutls-dev
  • libgcrypt
  • libsasl2-dev
  • libuuid1
  • libsml (for sml meters)
  • libmicrohttpd-dev >= 0.4.6 (for builtin „local“ webserver)
  • libltdl >=0.8.0 (for OMS)
  • libleptonica-dev (for OCR)
  • libunistring-dev (wegen Problem mit Ubuntu 18.04)

Debian Pakete

Für Distributionen die auf Debian „Jessie“ basieren können die meisten dieser Abhängigkeiten folgendermaßen installiert werden: (eventuell erstmal „apt-get update“ als root ausführen)

sudo apt-get install build-essential git-core cmake pkg-config subversion libcurl4-openssl-dev libgnutls28-dev libsasl2-dev uuid-dev libtool libssl-dev libgcrypt20-dev libmicrohttpd-dev libltdl-dev libjson-c-dev libleptonica-dev libunistring-dev dh-autoreconf

Für Debian „Wheezy“:

sudo apt-get install build-essential git-core cmake pkg-config subversion libcurl3-dev libgnutls-dev libsasl2-dev uuid-dev libtool libmicrohttpd-dev libcurl4-openssl-dev libssl-dev libltdl-dev libleptonica-dev libunistring-dev dh-autoreconf

Build per Script

Vzlogger bietet ein Shellscript für Download, Übersetzung und Installation der Module die nur als Quellen verfügbar sind.

git clone https://github.com/volkszaehler/vzlogger.git
cd vzlogger
./install.sh

Das Script bietet auch die Möglichkeit nur einzelne Module zu übersetzen. Details dazu findet man als Kommentar im Script.

Hintergrunddienst

Nun sollte vzlogger vollends als Systemdienst eingerichtet werden. Details dazu weiter unten.

Aktualisierung

Falls der vzlogger aktualisiert werden soll ist wie folgt vorzugehen:

sudo systemctl stop vzlogger
cd vzlogger
git pull
./install.sh vzlogger
sudo systemctl start vzlogger

Die zugrundeliegenden SML Bibliothek kann (vorher) aktualisiert werden indem:

cd vzlogger/libs/libsml
git pull
cd ../..
./install.sh libsml

Build von Hand

Falls das Script nicht zu den Gegenheiten passt nachfolgend die einzelnen Schritte.

Nur für geübte User! Wer wenig Erfahrung hat sollte den Build per Script machen.

Building libjson

Libjson sollte direkt aus den Quellen übersetzt werden.

git clone -b json-c-0.12 https://github.com/json-c/json-c
cd json-c
sh autogen.sh
./configure
make
sudo make install

Zurück zum Ausgangsverzeichnis:

cd ..

Building libsml

git clone https://github.com/volkszaehler/libsml.git
cd libsml
sudo make

Libsml bietet kein 'make install' Vorgabe.

Man macht das manuell in dem man die folgenden Dateien und Verzeichnisse kopiert:

sudo cp sml/lib/libsml.* /usr/lib/
sudo cp -R sml/include/* /usr/include/
sudo cp sml.pc /usr/lib/pkgconfig/

Zurück zum Ausgangsverzeichnis:

cd ..

Building vzlogger

git clone https://github.com/volkszaehler/vzlogger.git
cd vzlogger
mkdir build
cd build
cmake ..
make
sudo make install

Falls es Probleme mit libsml gibt statt nur „cmake ..“ versuchen:

cmake .. -DSML_HOME=/path/to/libsml

Zurück zum Ausgangsverzeichnis:

cd ../..

Building OMS

OMS erfordert openssl und libmbus >=0.8.0 z.B. von https://github.com/rscada/libmbus.git

git clone https://github.com/rscada/libmbus.git
cd libmbus
sudo ./build.sh
sudo make install

Zurück zum Ausgangsverzeichnis:

cd ..

Hintergrunddienst

Nun sollte vzlogger als Systemdienst eingerichtet werden. Details dazu weiter unten.

vzlogger aktualisieren

Falls der vzlogger aktualisiert werden soll ist wie folgt vorzugehen:

sudo systemctl stop vzlogger
cd vzlogger
git pull
cd build
cmake -DBUILD_TEST=off ..
make
sudo make install
cd ../..
sudo systemctl start vzlogger

Systemd Startscript

Systemd dient dazu Hintergrunddienste einzurichten und zu verwalten.

Das Installationsscript fragt ob es ein „systemd unit file“ für dich installieren soll. Falls dein System systemd nutzt (Debian „Jessie“) solltest du mit yes (ja) bestätigen.

Falls du es selbst kopieren oder editieren willst findest du ein Beispiel unter: ./etc/vzlogger.service

sudo cp ./etc/vzlogger.service /etc/systemd/system/vzlogger.service
Bitte stelle sicher das die Pfade zur Binary (vzlogger) und der Konfigurationsdatei (vzlogger.conf) korrekt sind.

Den vzlogger kann man dann mit dem üblichen systemctl Kommando starten, stoppen und prüfen:

sudo systemctl start vzlogger
systemctl status vzlogger
sudo systemctl stop vzlogger
Eine lauffähige Konfiguration ist dafür zwingend! Ansonsten wird vzlogger beendet und systemd meldet Fehler.

Wenn der vzlogger zufriedenstellend läuft und bei jedem boot als Hintergrunddienst gestartet werden soll:

sudo systemctl enable vzlogger

Spezielle Hinweise

Debian Paket

Um ein Debian Paket zu erzeugen:

cpack -G DEB

Cross Kompilierung

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchainfile /path/to/vzlogger_sources
software/controller/vzlogger/installation_cpp-version.1545640707.txt.gz · Zuletzt geändert: 2018/12/24 09:38 von jau