Как обновить пакет веб-программного обеспечения из ZIP-файла из командной строки?

Как обновить пакет веб-программного обеспечения из ZIP-файла из командной строки?

У меня установлен пакет веб-программного обеспечения на моем сервере Linux. Я загрузил обновление в ZIP-файле и хочу перезаписать только то, что изменилось. (Например, все основные файлы должны быть заменены, но все добавленные мной файлы не должны быть затронуты.) Как это сделать из командной строки?

Я бы распаковал его на своем персональном компьютере, а затем загрузил бы измененные файлы с помощью графического файлового менеджера, но я хочу узнать, как это сделать из командной строки.

В моем случае я пытаюсь обновить YOURLS на сервере Ubuntu, но этот вопрос, похоже, применим к большинству веб-программного обеспечения, например WordPress или подобного.

решение1

Итак, (один) из самых простых способов, который приходит на ум, — это загрузить zip-файл, извлечь его во временное место, удалить ненужные файлы, а затем заменить файлы YOURLS обновленными, которые вы только что скачали.

Чтобы загрузить файл (с помощью wget или curl) и извлечь его во временный каталог:

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

или

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

затем

unzip file.zip

Теперь мы можем решить, какие файлы нам не нужны, и удалить их с помощью инструмента rm (remove/delete).

rm config.php
rm someotherfileidontwannareplace.php

Затем мы можем заменить все файлы, переместив все наши обновленные файлы в тот же каталог и таким образом заменив старые файлы.

cd ..
rsync -av newfolder/ oldfolder/

Если нам просто нужно добавить новые файлы, то мы можем воспользоваться аналогичным методом, но использовать флаг --existingmv, чтобы не перезаписывать существующие файлы.

Это будет выглядеть так

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

Связанный контент