replicável comando apt-get install

1

Estou provisionando um servidor Ubuntu com um shell script, para definição um script de provisionamento deve ser replicável e idempotente (toda vez que eu executar o comando, ele deve sempre agir da mesma forma). Assim, preciso definir claramente a versão de um pacote. No meu caso, eu quero instalar cURL 7.22.0 , então eu tentei:

apt-get install curl=7.22.0

mas isso não funciona, pois a versão não existe. Então, verifiquei uma versão específica no cache do meu pacote com apt-cache madison curl :

curl | 7.22.0-3ubuntu4.14 | http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
curl | 7.22.0-3ubuntu4.14 | http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
curl | 7.22.0-3ubuntu4 | http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
curl | 7.22.0-3ubuntu4 | http://us.archive.ubuntu.com/ubuntu/ precise/main Sources
curl | 7.22.0-3ubuntu4.14 | http://us.archive.ubuntu.com/ubuntu/ precise-updates/main Sources
curl | 7.22.0-3ubuntu4.14 | http://security.ubuntu.com/ubuntu/ precise-security/main Sources

e eu pensei que:

apt-get install curl=7.22.0-3ubuntu4.14

foi uma solução inteligente, mas, infelizmente, depois de apt-get update o pacote desaparecer e de 7.22.0-3ubuntu4.15 ganharem vida, o script de provisionamento não funciona mais.

Como você pode imaginar, esse script é muito frágil e completamente inusitado. Como posso evitar essa surpresa desagradável?

    
por BAD_SEED 28.01.2016 / 16:54

0 respostas