Ich bin neu auf Linux-Verpackung, so dass ich etwas offensichtliche fehlen könnte. Ich packe mein Programm zu deb
und rpm
Paketen und ich benutze fpm, um mir zu helfen. Ich brauche Leute, die ihren API-Schlüssel am Ende der Installation eingeben, damit die Konfigurationsdatei automatisch aktualisiert werden kann. Ich habe eine blah.postinst
-Datei, die diesen Teil enthält:Erstellen RPM-Paket mit fpm mit --after-Installation gibt Fehler
#!/bin/bash
set -e
read -p 'Please enter your API key(skip this step by just press ENTER): ' apikey_var
if [[ ! -z $apikey_var ]]
then
echo "The API key is set. You could always change it by editing /etc/agent/process-collector.ini file"
sed "s/sample_apikey/$apikey_var/" /etc/agent/process-collector.ini.example > /etc/agent/process-collector.ini
else
echo "You didn't enter any API key, you could always add it by editing /etc/agent/process-collector.ini file"
mv /etc/agent/process-collector.ini.example /etc/agent/process-collector.ini
fi
und ich bin mit --after-install
Flagge fpm dieses Skript.
Dies funktioniert für deb
Paket, aber nachdem ich fpm rpm
Paket zu erstellen, verwenden und versuchen, es zu installieren, wird die Linie read -p 'Please enter your API key(skip this step by just press ENTER): ' apikey_var
(glaube ich) ergibt Fehler:
warning: %post(process-agent-0.99.0-1.x86_64) scriptlet failed, exit status 1
Non-fatal POSTIN scriptlet failure in rpm package dd-process-agent-0.99.0-1.x86_64
Ich könnte mir vorstellen, dass der Code in blah.postinst
Skript würde nur in den %post
Abschnitt der Datei spec
passen, wenn ich manuell ein RPM-Paket erstelle, aber ich kann nicht herausfinden, was schief gehen könnte. Kann mir jemand helfen? Oder zumindest, wie debugge ich das? Vielen Dank.
Cool, es ist immer gut, eine Stimme von Leuten zu haben, die es gut kennen. –