Was ich für ein ähnliches Problem benutze, ist das gesamte Remote-Skript in eine Datei zu schreiben /usr/local/bin/debinstall.sh
. Mein Vorschlag dazu wäre in Ihrem Fall: Haben Sie ein spezielles Verzeichnis, in dem Sie die Pakete ablegen - lassen Sie uns es nennen /tmp/remoteinstall
, um ein Beispiel zu haben. Fügen Sie den Benutzer, mit dem Sie sich verbinden, in die /etc/suduers
Datei ein und lassen Sie ihn ausführen, sudo dpkg -i *
ohne dass Sie zur Eingabe eines Kennworts aufgefordert werden. debinstall.sh
würde dann so aussehen:
#!/bin/bash cd /tmp/remoteinstall sudo dpkg -i *.deb && rm -f *
Machen Sie dieses Skript im Besitz von und chmod 744 /usr/local/bin/debinstall.sh
.
Lokal wäre es Ihre Aufgabe, Ihre .deb-Dateien hochzuladen und das Skript aufzurufen:
cd /path/to/files scp * user@remotemachine:/tmp/remoteinstall ssh user@remotemachine /usr/local/bin/debinstall.sh
debinstall.sh
Dann installieren Sie Ihre Pakete und leeren das Verzeichnis erst dann, wenn die Installation erfolgreich abgeschlossen wurde .
Falls etwas im fehlt $PATH
, denken Sie daran, dass weder so .bashrc
noch .profile
ausgeführt wird - Sie möchten sie entweder am Anfang des Remote-Skripts als Quelle verwenden oder dort den entsprechenden PFAD definieren.