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 8080
NOTE: This port will need to be Internet accessible if your VM is remote.
gmerge from your VM and ensure that the
DEVSERVER setting in
/etc/coreos/update.conf points to your workstation IP/hostname and port.
If 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.bin
On 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:8080
If you modify this file restart update engine:
systemctl restart update-engine
On the VM force an immediate update check:
If the update fails you can check the logs of the update engine by running:
journalctl -u update-engine -o cat
If you want to download another update you may need to clear the reboot pending status:
There 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/go
To 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-go
We've compiled a list of tips and tricks that can make working with the SDK a bit easier.