Como atualizo um pacote de software da Web a partir de um arquivo ZIP na linha de comando?

Como atualizo um pacote de software da Web a partir de um arquivo ZIP na linha de comando?

Tenho um pacote de software Web instalado em meu servidor Linux. Baixei uma atualização em um arquivo ZIP e quero substituir apenas o que foi alterado. (Por exemplo, todos os arquivos principais devem ser substituídos, mas quaisquer arquivos que eu adicionei não devem ser alterados.) Como faço isso na linha de comando?

Meu método seria descompactá-lo em meu computador pessoal e, em seguida, carregar os arquivos alterados com um gerenciador de arquivos GUI, mas quero aprender como fazer isso na linha de comando.

No meu caso, estou tentando atualizar o YOURLS em um servidor Ubuntu, mas a questão parece geralmente aplicável à maioria dos softwares da Web, como WordPress ou similar.

Responder1

Portanto, (uma) das maneiras mais simples que vem à mente é baixar o arquivo zip, extraí-lo em algum lugar temporário, excluir os arquivos desnecessários e substituir os arquivos YOURLS pelos atualizados que você acabou de baixar.

Para baixar o arquivo (usando wget ou curl) e extraí-lo para um diretório temporário:

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

ou

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

então

unzip file.zip

Agora podemos decidir quais arquivos não precisamos e removê-los com a ferramenta rm (remover/excluir).

rm config.php
rm someotherfileidontwannareplace.php

Então podemos substituir todos os arquivos movendo todos os nossos arquivos atualizados para o mesmo diretório e, assim, substituindo os arquivos antigos.

cd ..
rsync -av newfolder/ oldfolder/

Se precisarmos simplesmente adicionar novos arquivos, podemos fazer um método semelhante, mas usar o --existingsinalizador em mv, para não sobrescrever os arquivos existentes.

Isso seria parecido

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

informação relacionada