Wie aktualisiere ich ein Web-Softwarepaket aus einer ZIP-Datei über die Befehlszeile?

Wie aktualisiere ich ein Web-Softwarepaket aus einer ZIP-Datei über die Befehlszeile?

Auf meinem Linux-Server ist ein Web-Softwarepaket installiert. Ich habe ein Update in einer ZIP-Datei heruntergeladen und möchte nur die Änderungen überschreiben. (Beispielsweise sollten alle Kerndateien ersetzt werden, aber alle von mir hinzugefügten Dateien sollten unverändert bleiben.) Wie mache ich das über die Befehlszeile?

Meine Methode wäre, es auf meinem PC zu entpacken und dann die geänderten Dateien mit einem GUI-Dateimanager hochzuladen, aber ich möchte lernen, wie das über die Befehlszeile geht.

In meinem Fall versuche ich, YOURLS auf einem Ubuntu-Server zu aktualisieren, aber die Frage scheint allgemein auf die meisten Webprogramme wie WordPress oder ähnliches anwendbar zu sein.

Antwort1

Eine der einfachsten Möglichkeiten, die mir einfällt, besteht darin, die ZIP-Datei herunterzuladen, sie temporär zu extrahieren, die nicht benötigten Dateien zu löschen und dann die YOURLS-Dateien durch die aktualisierten Dateien zu ersetzen, die Sie gerade heruntergeladen haben.

So laden Sie die Datei herunter (mit wget oder curl) und extrahieren sie in ein temporäres Verzeichnis:

cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip

oder

curl http://linktozipfile/file.zip -o file.zip

Dann

unzip file.zip

Jetzt können wir entscheiden, welche Dateien wir nicht benötigen, und sie mit dem Tool rm (remove/delete) entfernen.

rm config.php
rm someotherfileidontwannareplace.php

Dann können wir alle Dateien ersetzen, indem wir alle unsere aktualisierten Dateien in dasselbe Verzeichnis verschieben und so alte Dateien ersetzen.

cd ..
rsync -av newfolder/ oldfolder/

Wenn wir einfach neue Dateien hinzufügen müssen, können wir eine ähnliche Methode anwenden, aber das --existingFlag auf mv verwenden, um vorhandene Dateien nicht zu überschreiben.

Das würde aussehen wie

cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip
unzip file.zip
cd ..
rsync -av --existing newfolder/ oldfolder/

verwandte Informationen