Reconstruye la caja base. Primero, créelo sin aprovisionamiento y SSH.
vagrant up --no-provision
vagrant ssh
Luego, realice los comandos que necesita para actualizar la caja. Esto puede incluir la actualización de Chef y Ruby. Opcionalmente, actualice los paquetes para el sistema operativo, etc. Debe limpiar el cuadro de todo lo que no se requiere, como los archivos de paquete descargados o las memorias caché.
Por ejemplo, uso Opscode Omnibus Full Stack Installer for Chef en mis cajas Vagrant (originalmente construidas con VeeWee) y también actualizo los paquetes.
sudo dpkg --purge chef chef-full
sudo true && curl -L https://www.opscode.com/chef/install.sh | sudo bash
sudo apt-get update && sudo aptitude safe-upgrade
sudo rm /var/cache/apt/archives/*.deb
No olvide "poner a cero" el disco para reducir el tamaño.
# a bunch of commands like gem install chef, apt-get upgrade, whatever
sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm /EMPTY
exit
A continuación, el paquete de la caja y añadirlo a su entorno de Vagrant para su uso.
vagrant package
vagrant box add mynewlucid32 package.box
Si desea utilizar el mismo nombre de la caja, usted tendrá que quitar la caja existente (~/.vagrant.d/cajas/BOXNAME) en primer lugar.
Esto debe votarse y posiblemente marcarse como la respuesta correcta más bien, la respuesta correcta actualmente marcada más vieja. – jimeh
Sí. Esta es la respuesta correcta para el hilo, ya que no depende de que la caja sea una máquina Ubuntu. Para obtener un ejemplo de trabajo completo [consulte mi informe] (https://github.com/elgalu/jenkins-box-for-travis/blob/74c56b7/Vagrantfile#L25) –
Funciona si reemplaza ': latest' por un versión específica? –