Im Terminal des Docker keine Sudo-Befehle

Begonnen von Superposchi, 16 November 2020, 13:58:27

Vorheriges Thema - Nächstes Thema

Wernieman

Maches Dir einfach un definiere zum Testen erstmal einen 2. Container. Dort definieren und Testen. Wenn es läuft, das GLEICHE, wie AUFGESCHRIEBEN im ersten nachvollziehen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Superposchi

Einen komplett neuen Container aufzusetzen ist mit einiger Arbeit verbunden, da doch schon eine erhebliche Anzahl an Devices existiert und ich teilweise erstmal schauen müsste wie ich diese angelegt habe.
Die Arbeit würde ich mir natürlich gerne sparen wenn es eine Alternative gibt.

Wernieman

Nicht komplett ... nur die nötigen Teile. Also wirklich ein reins Testsystem für diese eine Anwendung.

Um den Spruch zu verwenden: "Nicht das Kind mit dem Bade ausschütten".
Step by Step
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Superposchi

Ja, aber wenn das in dem Testsystem dann funktioniert, muss ich ALLE Devices dorthin übertragen. Wir gehen ja davon aus, dass es funktioniert, oder?

kadettilac89

erstmal soll es funktionieren. Dann die nächsten Schritte .... wenn es funktioniert machst es sicher gerne, wenn nicht, ... dann schaun wir weiter.

Wernieman

Hier sind (aktuell) 2, die Dir gerne Helfen würden. Der Klassische Weg geht aber, wegen fehlender echten Shell, nicht.

Wenn der neue Container funktioniert, kannst DU natürlich versuchen, Ihn so aufzubohren, das er den "alten" ersetzt. Aber DAS währe der nächste Step. Erstmal eine funktionsfähige Basis nehmen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Eisix

Hallo,

auf das QNAP System kommt man normalerweise mit ssh (falls der service nicht aktiv ist, kann man über GUI aktivieren), ist der gleiche Account wie beim Webinterface. Danach kann man die normalen Docker Kommandos anwenden.

Gruß
Eisix

Superposchi

Ja klar, dauert wohl etwas bis ich einen neuen Container aufgesetzt habe.

Da ich die Parameter aber nur beim Erstellen angebe, frage ich lieber jetzt ob es da noch mehr gibt die Sinnvoll sind oder ob die genannten ausreichend sind. Mache beim neuen Container lieber etwas mehr rein, als das nachher wieder irgendwas fehlt und ich es dann neu machen muss.

Zum Beispiel geht über die Commandozeile des Terminals ja auch sudo nicht. Kann man das auch per Parameter irgendwie mit reinbekommen?

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Superposchi

So, hat etwas gedauert, aber ich wollte nicht zwischen Tür und Angel damit anfangen.
Habe jetzt einen neuen docker mit arm32V7 und den Parametern erstellt. Hat soweit funktionit.
Dann wollte ich testweise den gassistant installieren, weil dabei ja mit dem alten docker Probleme existiert haben.

Der Befehl sudo npm install -g gassistant-fhem --unsafe-perm ohne das sudo wurde im Terminal ausgeführt und mit Code 0 Beenden. Ausgabe lautet:
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142                                                                                                                                                             
npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142                                                                                       
npm WARN deprecated har-validator@5.1.5: this library is no longer supported                                                                                                                                                                                                   
/usr/bin/gassistant-fhem -> /usr/lib/node_modules/gassistant-fhem/bin/gassistant-fhem                                                                                                                                                                                           
                                                                                                                                                                                                                                                                               
> protobufjs@6.10.2 postinstall /usr/lib/node_modules/gassistant-fhem/node_modules/protobufjs                                                                                                                                                                                   
> node scripts/postinstall                                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                               
+ gassistant-fhem@3.0.3                                                                                                                                                                                                                                                         
updated 10 packages in 71.95s 


Allerdings scheitert es jetzt beim Befehl:curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
Ausgabe mit Code 2:
curl: option -: is unknown                                                                                                                                                                                                                                                     
curl: try 'curl --help' or 'curl --manual' for more information


Also ein kleines Stück weiter, doch noch nicht am Ziel wie es scheint.
Wie bekomme ich den curl-Befehl ans laufen?
Gibt es dafür auch einen Parameter bei der containererstellung?

kadettilac89

bevor du jetzt irgend was installierts ...

hast du den Parameter "-e NPM_PKGS="gassistant-fhem"  angegeben? Damit sollte eigentlich gassistant-fhem schon beim erstellen des Containers angelegt werden. Das war Ziel der Aufgabe.

Nun hast du gassistant-fhem. Was bezweckst du nun weiter, was fehlt noch? Kannst du die fehlenden Module nicht mit den -e (umgebungsvariablen) einfach angeben?

Mit dem Befehl mit curl willst du die Version 13 von nodejs installieren. Ist das nötig?

Was geben die Befehle unten aus?


node -v
nodejs -v

Superposchi

Nein, "-e NPM_PKGS="gassistant-fhem" habe ich nicht angegeben. Habe lediglich wie gefordert den neuen Docker mit den erweiterten Parametern aus https://github.com/fhem/fhem-docker/#add-custom-packages erstellt. Das war die Aufgabe, soweit ich es verstanden habe.
Add custom packages
You may define several different types of packages to be installed automatically during initial start of the container by adding one of the following parameters to your container run command:
    Debian APT packages:
    -e APT_PKGS="package1 package2"
    Perl CPAN modules:
    -e CPAN_PKGS="App::Name1 App::Name2"
    Python PIP packages:
    -e PIP_PKGS="package1 package2"
    Node.js NPM packages:
    -e NPM_PKGS="package1 package2"


Ich will zwei Sachen erledigen:
1) Fhemconnect installieren - zum Steuerung von Fhem mit meinen Google Nest / Google Assistant
2) Text2speech - Zur Sprachausgabe über meine Google Nest

Beides scheiterte bisher daran, dass ich über meine Configuration bestimmte Befehle nicht ausführen konnte.

Ob dafür die Version 13 von Nodejs notwendig ist, weiß ich nicht. Ich folge nur der Anleitung von https://wiki.fhem.de/wiki/Google_Assistant_FHEM_Connect aus dem Fhem-Wiki.

node -v:
v10.23.0

nodejs -v:
v10.23.0

kadettilac89

ok, wenn du mit node -v die NodeJS version siehst wurde vermutlich beim Docker erstellen schon gassistant-fhem installiert. Dann musst du die ganzen Befehle die auf Fehler laufen überhaupt nicht ausführen.

Das meine ich mit überflüssig

sudo npm install -g gassistant-fhem --unsafe-perm


Ich kenne die Umgebung  nicht. Kannst du den Container nochmal neu erstellen, dann nichts weiter ausführen und mal testen ob du in FHEM gassistant definieren kannst. Wenn das funktioniert ist das Thema hier durch das Erstellen des Containers gelöst.

Superposchi

Soll ich den Parameter "-e NPM_PKGS="gassistant-fhem" dann mit aufnehmen beim Erstellen oder nicht?

Und nur aus Neugier gefragt, gibt es auch einen Parameter für die curl-Befehle und macht es sinn die dann auch mit einzufügen um den Docker nicht irgendwann doch wieder neu aufsetzen zu müssen wenn diese dann doch mal gebraucht werden?

kadettilac89

nein, mach einen komplett neuen container ohne zusätzliche pakete. gassistant-fhem sollte im default schon installiert sein mit npm (nodejs). Wenn das so ist, hat es beim ursprünglichen container beim Erstellen ein Problem gegeben. Lasse curl erstmal außen vor.

curl an sich sollte im default schon mit drin sein.