Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:controller:vzlogger:installation_cpp-version

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:controller:vzlogger:installation_cpp-version [2019/04/24 18:12]
jau Abhängigkeit MQTT
software:controller:vzlogger:installation_cpp-version [2019/05/28 22:40] (aktuell)
jau Bezug Debian Jessie korrigiert.
Zeile 6: Zeile 6:
 Unser Repository: https://​github.com/​volkszaehler/​vzlogger\\ 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. +Derzeit ​ist vzlogger und (auf manchen Plattformen) ​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:​+ 
 +Dies macht man praktischerweise ​in einem Verzeichnisin dem dein "​normaler" ​Nutzer Schreibrechte hat. Zum Beispiel dein Home-Verzeichnis:​
  
 <​code>​ <​code>​
 cd ~ cd ~
 </​code>​ </​code>​
 +
 +Die meisten Erfahrungen mit dem Bau des vzloggers bestehen mit Debian und verwandten Distributionen (Ubuntu, Raspbian). Die folgenden Anleitungen wurden im Mai 2019 mit Debian 10 "​buster"​ verifiziert;​ Informationen für Versionen älter als Debian 9 "​stretch"​ finden sich in der Historie dieser Seite.
  
 ===== Systemvoraussetzungen zur Kompilierung des vzlogger ===== ===== 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:+Für eine erfolgreiche Kompilierung des vzlogger werden, neben gcc und glibc, auch diese Libraries benötigt:
  
 === Tools === === Tools ===
-  * git (package: git-core)+  * git
   * cmake   * cmake
   * pkg-config   * pkg-config
Zeile 24: Zeile 27:
    
 === Erforderliche Libraries === === Erforderliche Libraries ===
-  * libjson ​>= 0.11 (>= 0.9 before [[https://​github.com/​volkszaehler/​vzlogger/​pull/​106]]) +  * libjson-c-dev 
-  * libcurl3 >= 7.19 +  * libcurl4-openssl-dev 
-  * libgnutls-dev+  * libgnutls28-dev
   * libgcrypt   * libgcrypt
   * libsasl2-dev   * libsasl2-dev
Zeile 39: Zeile 42:
  
 === Debian Pakete === === Debian Pakete ===
-Für Distributionen die auf Debian "​Jessie"​ oder "​Stretch"​ basieren können die meisten dieser Abhängigkeiten folgendermaßen installiert werden: 
-(eventuell erstmal "​apt-get update"​ als root ausführen) 
-<​code>​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 libmosquitto-dev libunistring-dev dh-autoreconf</​code>​ 
  
-Für Debian "Wheezy": +Für auf Debian ​"stretch" ​basierende Distributionen können die meisten dieser Abhängigkeiten mit: 
-<​code>​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</​code>​+ 
 +<​code>​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 libmosquitto-dev libunistring-dev dh-autoreconf</​code>​ 
 +installiert werden. Eventuell erstmal <​code>​sudo apt-get update</​code>​ ausführen.
  
 ===== Build per Script ===== ===== Build per Script =====
Zeile 54: Zeile 56:
 </​code>​ </​code>​
  
-Das Script bietet auch die Möglichkeit nur einzelne Module zu übersetzen. Details dazu findet man als Kommentar im Script.+Das Script bietet auch die Möglichkeitnur einzelne Module zu übersetzen. Details dazu findet man als Kommentar im Script.
  
 === Hintergrunddienst === === Hintergrunddienst ===
Zeile 60: Zeile 62:
  
 === Aktualisierung === === Aktualisierung ===
-Falls der vzlogger ​aktualisiert werden soll ist wie folgt vorzugehen:+ 
 +Zum Aktualisieren des vzlogger ​dient diese Prozedur:
 <​code>​ <​code>​
 sudo systemctl stop vzlogger sudo systemctl stop vzlogger
Zeile 69: Zeile 72:
 </​code>​ </​code>​
  
-Die zugrundeliegenden ​SML Bibliothek kann (vorher) aktualisiert werden indem:+Die zugrundeliegende ​SML Bibliothek kann (vorher) aktualisiert werdenindem:
 <​code>​ <​code>​
 cd vzlogger/​libs/​libsml cd vzlogger/​libs/​libsml
Zeile 78: Zeile 81:
  
 ===== Build von Hand ===== ===== Build von Hand =====
 +
 Falls das Script nicht zu den Gegenheiten passt nachfolgend die einzelnen Schritte. Falls das Script nicht zu den Gegenheiten passt nachfolgend die einzelnen Schritte.
 <note warning>​Nur für geübte User! Wer wenig Erfahrung hat sollte den [[software:​controller:​vzlogger:​installation_cpp-version#​build_per_script|Build per Script]] machen.</​note>​ <note warning>​Nur für geübte User! Wer wenig Erfahrung hat sollte den [[software:​controller:​vzlogger:​installation_cpp-version#​build_per_script|Build per Script]] machen.</​note>​
- 
-=== Building libjson === 
-Libjson sollte direkt aus den Quellen übersetzt werden. 
-<​code>​ 
-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 
-</​code>​ 
- 
-Zurück zum Ausgangsverzeichnis:​ <​code>​cd ..</​code>​ 
- 
-=== Building libsml === 
-<​code>​ 
-git clone https://​github.com/​volkszaehler/​libsml.git 
-cd libsml 
-sudo make 
-</​code>​ 
-Libsml bietet kein 'make install'​ Vorgabe. 
- 
-Man macht das manuell in dem man die folgenden Dateien und Verzeichnisse kopiert: 
-<​code>​ 
-sudo cp sml/​lib/​libsml.* /usr/lib/ 
-sudo cp -R sml/​include/​* /​usr/​include/​ 
-sudo cp sml.pc /​usr/​lib/​pkgconfig/​ 
-</​code>​ 
- 
-Zurück zum Ausgangsverzeichnis:​ <​code>​cd ..</​code>​ 
  
 === Building vzlogger === === Building vzlogger ===
Zeile 123: Zeile 97:
 </​code>​ </​code>​
  
-Falls es Probleme mit libsml gibt statt nur "​cmake ​.." ​versuchen:+Zurück zum Ausgangsverzeichnis:​ <​code>​cd ​../​..</​code>​ 
 + 
 +== Bau als Debian-Paket == 
 + 
 +Das vzlogger Repository enthält ebenfalls Code, um ein "sauber"​ installier- und deinstallierbares Debian-Paket zu bauen.  
 <​code>​ <​code>​
-cmake .. -DSML_HOME=/path/to/libsml+git clone https://​github.com/volkszaehler/vzlogger.git 
 +cd vzlogger 
 +apt build-dep ./ 
 +apt install devscripts 
 +debuild
 </​code>​ </​code>​
  
-Zurück zum Ausgangsverzeichnis:​ <​code>​cd ../​..</​code>​ 
  
 === Building OMS === === Building OMS ===
Zeile 162: Zeile 144:
 Systemd dient dazu Hintergrunddienste einzurichten und zu verwalten. 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.+Das Installationsscript fragt ob es ein "​systemd unit file" für dich installieren soll. Falls dein System systemd nutzt (ab Debian "​Jessie"​) solltest du mit yes (ja) bestätigen.
  
 Falls du es selbst kopieren oder editieren willst findest du ein Beispiel unter: Falls du es selbst kopieren oder editieren willst findest du ein Beispiel unter:
software/controller/vzlogger/installation_cpp-version.1556122344.txt.gz · Zuletzt geändert: 2019/04/24 18:12 von jau