Building a new VM image is a time consuming process. On development images you can use gmerge to build packages on your workstation and ship them to your target VM.
On your workstation start the dev server inside the SDK chroot:
start_devserver --port 8080NOTE: This port will need to be Internet accessible if your VM is remote.
Run gmerge from your VM and ensure that the DEVSERVER setting in /etc/coreos/update.conf points to your workstation IP/hostname and port.
gmerge coreos-base/update_engineIf you want to test that an image you built can successfully upgrade a running VM you can use devserver. To specify the version to upgrade to you can use the --image argument. This should be a newer build than the VM is currently running, otherwise devserver will answer "no update" to any requests. Here is an example using the default value:
start_devserver --image ../build/images/amd64-usr/latest/coreos_developer_image.binOn the target VM ensure that the SERVER setting in /etc/coreos/update.conf points to your workstation, for example:
GROUP=developer
SERVER=http://you.example.com:8080/update
DEVSERVER=http://you.example.com:8080If you modify this file restart update engine: systemctl restart update-engine
On the VM force an immediate update check:
update_engine_client -updateIf the update fails you can check the logs of the update engine by running:
journalctl -u update-engine -o catIf you want to download another update you may need to clear the reboot pending status:
update_engine_client -reset_statusThere is a utility script called update_ebuilds that can pull from Gentoo's git tree directly into your local portage-stable tree. Here is an example usage bumping go to the latest version:
./update_ebuilds --commit dev-lang/goTo create a Pull Request after the bump run:
cd ~/trunk/src/third_party/portage-stable
git checkout -b 'bump-go'
git push <your remote> bump-goWe've compiled a list of tips and tricks that can make working with the SDK a bit easier.