Fixed: Prerequisits Linux

Bei Problemen bei der RailControl Installation
Post Reply
User avatar
krille
Posts: 7
Joined: Wed Mar 17, 2021 2:48 am

Fixed: Prerequisits Linux

Post by krille »

Hallo,

so trivial, wie es in der Doku beschrieben ist, läuft die Installation von RC leider nicht.

Das verwendete System ist ein frisch installiertes Ubuntu 20.04.2 LTS.

Einfach in ein Verzeichnis kopieren und starten lässt es sich zwar, aber es läuft im Browser nicht wie vorgesehen.
Probiert habe ich es ohne und mit .conf

Das Ergebnis sieht immer so aus:
Image

der XML-Fehler lautet:

Code: Select all

XML-Verarbeitungsfehler: Kein Wurzel-Element gefunden
Adresse: http://stellwerk1.fritz.box:8080/station-clock.svg
Zeile Nr. 1, Spalte 1:

^
Die Buttons verfärben sich zwar onclick, aber es passiert nichts.

Achja, es kam beim ersten Start in der Console eine Fehlermeldung, die mich veranlasst hatte sqlite zu installieren, der fehler verschwand dann zwar auch, führte jedoch nicht zum Erfolg.

Nagut, dann compilieren wir eben, aber auf der https://www.railcontrol.org/index.php/de/source-code-de scheint irgend etwas zu fehlen, denn make liefert nur:

Code: Select all

marko@Stellwerk1:~/railcontrol$ make
cc -g -O2 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_RTREE -DHAVE_USLEEP -c -o Storage/sqlite/sqlite3.o Storage/sqlite/sqlite3.c
make: cc: Kommando nicht gefunden
make: *** [Makefile:67: Storage/sqlite/sqlite3.o] Fehler 127
Welche Voraussetzung fehlt?

LG
Krille
User avatar
krille
Posts: 7
Joined: Wed Mar 17, 2021 2:48 am

Re: Prerequisits Linux

Post by krille »

Bin selber fündig geworden, liegt an der Distribution.
Es fehlten auch noch gcc und g++

Also vielleicht die doku abändern in

Code: Select all

sudo apt-get install cpp binutils make git gcc g++ sqlite 
und dann ist alles da.

Wenn es in einer Distribution schon installiert ist, wird es ignoriert.

LG
Krille
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Prerequisits Linux

Post by teddy »

Hallo Krille

Da kommen ja gerade ein paar Sachen zusammen.

Punkt 1 (Im Browser funktioniert nichts):
Dein Bildschirm sieht aus, wie wenn CSS und JavaScript nicht verarbeitet würden auf dem Browser. Dass es am Browser liegt glaube ich mal weniger.

Kannst du Railcontrol mal mit

Code: Select all

./railcontrol -l
starten? Dann erzeugt er ein Logfile, welches du hier einstellen kannst. Dann kann ich besser weiterhelfen.

Punkt 2 (Kompilieren funktioniert nicht):
Die Doku habe ich mit Ubuntu 14.4 geschrieben. Ich muss überprüfen, ob die noch passt. Beim Ubuntu 14.4 war unter dem Packet cpp der C und der C++ Kompiler mit dabei. Was sicher ist: SQLite wird nicht benötigt. Eine passende SQLite-Version ist bei RailControl mit dabei. Dies vor allem für die (exotischen) Systeme, die kein SQLite bieten. RailControl soll aber trotzdem laufen.

Gruss
Teddy
User avatar
krille
Posts: 7
Joined: Wed Mar 17, 2021 2:48 am

Re: Prerequisits Linux

Post by krille »

Hallo Teddy.

1. Das Compilieren hat auf der Hardware rund 35 Minuten gedauert, und die Version läuft dann korrekt (also soweit ich das am Schreibtisch beurteilen kann). Jedenfalls ist die Anordnung da, die Uhr läuft korrekt, und die Knöpfe funktionieren und innerhalb der Masken die Auswahlmenüs.
Wenn sqlite dabei ist, dann hat es an den fehlenden gcc und g++.

2. Ich kann ja mal ein Thema aufmachen für so Tips zum Autostart und zum korrekten Beenden bei shutdown und Installation für Dummies. Der Rainer hatte ja auch schon Fragen, die eher auf Unkenntnis des Betriebssystems beruhen, als auf mangelnde Motivation, es hinzubekommen.

3. Die kopierte Version liefert immer noch das Ergebnis, wie im Screenshot oben, das Log ist unauffällig:

Code: Select all

2021-03-17 10:29:22.935177: Info: Main: Starting RailControl
2021-03-17 10:29:22.935464: Info: Main: Version: 2021-02-25 22:05:48
2021-03-17 10:29:22.935511: Info: Config: Reading config file railcontrol.conf
2021-03-17 10:29:22.946079: Info: Config: Parameter found in config file: dbfilename = railcontrol.sqlite
2021-03-17 10:29:22.946287: Info: Config: Parameter found in config file: dbkeepbackups = 10
2021-03-17 10:29:22.946349: Info: Config: Parameter found in config file: webserverport = 8080
2021-03-17 10:29:22.946604: Info: SQLite: Opening SQLite database with filename railcontrol.sqlite
2021-03-17 10:29:23.003117: Info: SQLite: relations is up to date
2021-03-17 10:29:23.004488: Info: Webserver: Webserver started
2021-03-17 10:29:23.005226: Info: Manager: Loaded layer 1: Layer 1
2021-03-17 10:29:23.006467: Info: Manager: Debounce thread started
2021-03-17 10:29:32.037610: Info: Webserver: HTTP connection 1: open
2021-03-17 10:29:32.062425: Info: Webserver: HTTP connection 1: Request: GET /
2021-03-17 10:29:32.124169: Info: Webserver: HTTP connection 1: Request: GET /style.css
2021-03-17 10:29:32.124871: Info: Webserver: HTTP connection 1: close
2021-03-17 10:29:32.127254: Info: Webserver: HTTP connection 2: open
2021-03-17 10:29:32.127484: Info: Webserver: HTTP connection 2: Request: GET /nosleep.js
2021-03-17 10:29:32.127581: Info: Webserver: HTTP connection 3: open
2021-03-17 10:29:32.127830: Info: Webserver: HTTP connection 2: close
2021-03-17 10:29:32.127830: Info: Webserver: HTTP connection 2: close
2021-03-17 10:29:32.127810: Info: Webserver: HTTP connection 3: Request: GET /javascript.js
2021-03-17 10:29:32.128198: Info: Webserver: HTTP connection 3: close
2021-03-17 10:29:32.149131: Info: Webserver: HTTP connection 4: open
2021-03-17 10:29:32.149456: Info: Webserver: HTTP connection 4: Request: GET /station-clock.svg
2021-03-17 10:29:32.149895: Info: Webserver: HTTP connection 4: close
(hier hab ich dann q eingegeben)
2021-03-17 10:29:42.540335: Info: Main: Stopping RailControl
2021-03-17 10:29:43.775477: Info: Manager: Debounce thread terminated
2021-03-17 10:29:45.164168: Info: Webserver: Webserver stopped
2021-03-17 10:29:45.164449: Info: Manager: Saving Layer 1
2021-03-17 10:29:45.164621: Error: SQLite: SQLite error: cannot start a transaction within a transaction Query: BEGIN TRANSACTION
2021-03-17 10:29:45.378000: Error: SQLite: SQLite error: cannot commit - no transaction is active Query: COMMIT
2021-03-17 10:29:45.378143: Info: SQLite: Closing SQLite database
2021-03-17 10:29:45.378360: Info: SQLite: Copying from railcontrol.sqlite to railcontrol.sqlite.1615976985
Also das ist insofern doof, als das dadurch die kopierbare Version natürlich keinen guten Eindruck macht, und bestimmt einige Tester verjagt.

Ich hab eine Virtualisierungsumgebung im Zugriff, und kann frisch installierte Testmaschinen kurzfristig bereitstellen.

LG
Krille
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Prerequisits Linux

Post by teddy »

Hallo Krille

1. Da schaue ich heute Abend rein.

2. Die SQlite-Fehler sollten nicht sein. Die deuten glasklar auf einen Programmierfehler hin. Muss ich auch heute Abend anschauen.

Gruss
Teddy
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Prerequisits Linux

Post by teddy »

Hallo Krille

Das Problem mit dem SQLite habe ich gefixt. Das ist mir leider wenige Tage vor dem letzten Release reingerutscht. Wenn du den Source-Code selbst kompilierst (zuerst mit git pull) sollte das nicht mehr drin sein. Tragisch ist der Fehler nicht wirklich, es dauert einfach viel länger, bis er alles gespeichert hat. Aber es landet alles auf der Platte.

Die Abhängigkeiten bei den Paketen sind wirklich falsch, zumindest mit den neuen Versionen von Ubuntu. Mit dem Packet g++ wird auch cpp und gcc mitinstalliert. Ich bin ziemlich sicher das war bei 14.04 noch anders. Aber was solls, ich habs angepasst auf das was bei Ubuntu 20.04 aktuell ist.

In jedem Fall, Danke für die Bug-Reports!

Hat sich das mit dem CSS und JavaScript eigentlich gelöst? Wenn ja, was war die Ursache?

Gruss
Teddy
User avatar
krille
Posts: 7
Joined: Wed Mar 17, 2021 2:48 am

Re: Prerequisits Linux

Post by krille »

Hallo Teddy,

stimmt, g++ wäre als einziges nötig. Hier von einem frischen Ubuntu:

Code: Select all

root@rctest:~# apt show g++
Package: g++
Version: 4:9.3.0-1ubuntu2
Priority: optional
Build-Essential: yes
Section: devel
Source: gcc-defaults (1.185.1ubuntu2)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 16,4 kB
Provides: c++-compiler, g++-x86-64-linux-gnu (= 4:9.3.0-1ubuntu2)
Depends: cpp (= 4:9.3.0-1ubuntu2), gcc (= 4:9.3.0-1ubuntu2), g++-9 (>= 9.3.0-3~), gcc-9 (>= 9.3.0-3~)
Suggests: g++-multilib
Task: ubuntu-mate-core, ubuntu-mate-desktop
Download-Size: 1.604 B
APT-Sources: http://de.archive.ubuntu.com/ubuntu focal/main amd64 Packages
Description: Der GNU-C++-Compiler
 Dies ist der GNU-C++-Compiler, ein ziemlich portabler, optimierender
 C++-Compiler.
 .
 Dieses Abhängigkeitspaket stellt den GNU-C++-Standardcompiler zur
 Verfügung.
Um auf Nummer sicher zu gehen könntest Du in ja alle Pakete auflisten in der Doku, was durch Abhängigkeiten sowieso mitinstalliert wird, frisst ja kein Brot.

Das war das.

Das andere: Die kopierte Version (also ohne Compiler) läuft auf Ubuntu so nicht. Auf meinem Mac geht es sofort, Windows hab ich nicht.
Der Fehler bei linux ist wie oben im screenshot zu sehen.

Kann man das Debug-Protokoll irgendwie manuell aktivieren? Im normalen Log (bzw. am screen) sieht es auf Linux aus, wie auf dem Mac.

Krille
User avatar
krille
Posts: 7
Joined: Wed Mar 17, 2021 2:48 am

Re: Prerequisits Linux

Post by krille »

Ich hab da was gefunden :D

Code: Select all

krille@rctest ~/railcontrol.ubuntu.20.04.20210224/RailControl/html $ ls -al
insgesamt 8
drwxrwxr-x 2 krille krille 4096 Feb 25 22:07 .
drwxrwxr-x 3 krille krille 4096 Mär 18 01:53 ..
-rw-rw-r-- 1 krille krille    0 Feb 25 22:07 favicon.ico
-rw-rw-r-- 1 krille krille    0 Feb 25 22:07 javascript.js
-rw-rw-r-- 1 krille krille    0 Feb 25 22:07 layout_background.png
-rw-rw-r-- 1 krille krille    0 Feb 25 22:07 nosleep.js
-rw-rw-r-- 1 krille krille    0 Feb 25 22:07 station-clock.svg
-rw-rw-r-- 1 krille krille    0 Feb 25 22:07 style.css
und weil Nullängen bei Dateien echt uncool sind, hab ich den Kram vom /html-Verzeichnis vom Mac da rein kopiert, und *tusch* es läuft!

Diagnose:
Das ist ja der Hammer: wenn man die Datei über den Ubuntu-Dateimanager entpackt (rechtsklick -> hier entpacken), ist der Inhalt des html-Verzeichnisses nur namentlich vorhanden. Macht man das mit tar xf, ist alles da und funktioniert.

Das verstehe, wer will.

Krille
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Prerequisits Linux

Post by teddy »

Danke viel Mals Krille für die Analyse.

Stimmt, der GNOME file-roller ist kapput. Habe ich auch schon festgestellt und damals diesen einfach deinstalliert. Deshalb ist mir das bei RailControl gar nicht aufgefallen. Neben tar kann man auch ark und xarchiver verwenden zum Auspacken.

Das muss ich aber in der Doku aufnehmen, denn der GNOME file-roller ist das Standard-Tool.

Gruss
Teddy
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Prerequisits Linux

Post by teddy »

Hallo Krille

Ich habe bezüglich Installation einerseits RailControl selber überarbeitet, andererseits die Doku angepasst (Vorerst nur Deutsch und an die neue Version auf GitHub).

Falls du Zeit und Lust hättest, ich würde mich freuen, wenn du das ein Mal kurz durchgehen könntest, ob das jetzt besser zusammenpasst.

Danke und Gruss
Teddy
User avatar
krille
Posts: 7
Joined: Wed Mar 17, 2021 2:48 am

Re: Prerequisits Linux

Post by krille »

Hallo Teddy.

Was auch immer Du gemacht hast, es geht jetzt alles: direkt entpacken, oder erst Downloaden, und dann entpacken - direkt aus dem Dateimanager.

Dateien mit Nullänge kamen bei dem neuen Download nicht mehr vor.

Super gemacht
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Prerequisits Linux

Post by teddy »

Danke Krille für die Info!

Gruss
Teddy
User avatar
ddebahn
Posts: 44
Joined: Sat Apr 03, 2021 11:36 am
Location: Geeste

Re: Fixed: Prerequisits Linux

Post by ddebahn »

Hallo krille,
die Darstellung von RailControl kenne ich auch, dieses kommt bei mir nur vor, wenn ich mich nicht im Verzeichnis "railcontrol" befinde. Der Browser zeigt dann es, bei mir genauso an.
D.h. ich gehe immer zuvor in das Verzeichnis "railcontrol" und starte dann "./railcontrol"
Bei mir läuft es was ich bis jetzt getestet habe, mit TwinCenter, SUPER.

aus dem Emsland grüßt Dieter
User avatar
teddy
Site Admin
Posts: 428
Joined: Thu May 07, 2020 2:39 pm
Contact:

Re: Fixed: Prerequisits Linux

Post by teddy »

Hallo Dieter

Der Effekt ist derselbe wenn man nicht mit ./railcontrol startet und wie es bei Krille der Fall war die Dateien unvollständig sind. In beiden Fällen findet der Browser die beiden Dateien html/javascript.js und html/style.css nicht. Dann sieht das Ganze unbrauchbar aus. Völlig verschiedene Ursachen ergeben hier dasselbe Fehlerbild.

Ich bin aber froh, wenn ihr nun beide eine funktionierende Lösung habt. :D

Gruss
Teddy
Post Reply