Using proposed and UCA I did some experiments in Bionic:
qemu-block-extra: 1:3.1+dfsg-2ubuntu3.2~cloud0 500 500 http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/stein/main amd64 1:2.11+dfsg-1ubuntu7.19 500 500 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 Packages 100 /var/lib/dpkg/status 1:2.11+dfsg-1ubuntu7.18 500 500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
I should be able to switch between those.
Also there is a trick to do all this without a complex ceph/issci setup.
cat > curldisk.xml << EOF <disk type='network' device='disk'> <driver name='qemu' type='raw'/> <source protocol="http" name="ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/mini.iso"> <host name="archive.ubuntu.com" port="80"/> </source> <target dev='vdc' bus='virtio'/> <readonly/> </disk> EOF
$ virsh attach-device lateload curldisk.xml
Among many (many!) dependent libs from the system this also will late-load the qemu curl .so file.
root@b:~# diff libsloaded.pre libsloaded.post 4a5,29 > qemu-syst 18362 libvirt-qemu mem REG 0,64 26936 2603 /lib/x86_64-linux-gnu/libnss_dns-2.27.so > qemu-syst 18362 libvirt-qemu mem REG 0,64 39208 2529 /lib/x86_64-linux-gnu/libcrypt-2.27.so > qemu-syst 18362 libvirt-qemu mem REG 0,64 1082648 10066 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6 > qemu-syst 18362 libvirt-qemu mem REG 0,64 300888 3424 /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 60400 3418 /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 165880 10090 /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 88680 10058 /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 217560 3416 /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 661696 9860 /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 573464 9987 /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 35360 3420 /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 14256 2573 /lib/x86_64-linux-gnu/libkeyutils.so.1.5 > qemu-syst 18362 libvirt-qemu mem REG 0,64 265712 3410 /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 43616 9991 /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1 > qemu-syst 18362 libvirt-qemu mem REG 0,64 14248 308068 /lib/x86_64-linux-gnu/libcom_err.so.2.1 > qemu-syst 18362 libvirt-qemu mem REG 0,64 199104 9985 /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1 > qemu-syst 18362 libvirt-qemu mem REG 0,64 877056 9989 /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3 > qemu-syst 18362 libvirt-qemu mem REG 0,64 55544 173467 /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.8 > qemu-syst 18362 libvirt-qemu mem REG 0,64 327024 172527 /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.8 > qemu-syst 18362 libvirt-qemu mem REG 0,64 305456 3412 /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 > qemu-syst 18362 libvirt-qemu mem REG 0,64 55136 10054 /usr/lib/x86_64-linux-gnu/libpsl.so.5.2.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 113584 10059 /usr/lib/x86_64-linux-gnu/librtmp.so.1 > qemu-syst 18362 libvirt-qemu mem REG 0,64 153352 10024 /usr/lib/x86_64-linux-gnu/libnghttp2.so.14.15.2 > qemu-syst 18362 libvirt-qemu mem REG 0,64 510408 208529 /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.5.0 > qemu-syst 18362 libvirt-qemu mem REG 0,64 25600 308756 /usr/lib/x86_64-linux-gnu/qemu/block-curl.so 143a169,177 > qemu-syst 18362 libvirt-qemu 30u IPv4 9576974 0t0 TCP b.lxd:47940->urayuli.canonical.com:http (ESTABLISHED) > qemu-syst 18362 libvirt-qemu 31u a_inode 0,13 0 10884 [eventfd] > qemu-syst 18362 libvirt-qemu 32u a_inode 0,13 0 10884 [eventfd] > qemu-syst 18362 libvirt-qemu 33u IPv4 9575416 0t0 TCP b.lxd:47942->urayuli.canonical.com:http (ESTABLISHED) > qemu-syst 18362 libvirt-qemu 35u IPv4 9576979 0t0 TCP b.lxd:47948->urayuli.canonical.com:http (ESTABLISHED) > qemu-syst 18362 libvirt-qemu 36u IPv4 9575825 0t0 TCP b.lxd:47950->urayuli.canonical.com:http (ESTABLISHED) > qemu-syst 18362 libvirt-qemu 37u IPv4 9575418 0t0 TCP b.lxd:47952->urayuli.canonical.com:http (ESTABLISHED) > qemu-syst 18362 libvirt-qemu 38u IPv4 9575826 0t0 TCP b.lxd:47954->urayuli.canonical.com:http (ESTABLISHED) > qemu-syst 18362 libvirt-qemu 39u IPv4 9577729 0t0 TCP b.lxd:47956->urayuli.canonical.com:http (ESTABLISHED)
So in theory that should be a test setup for the reported case.
P.S. I'm not even that opposed to maybe version those packages only carrying .so libs - but dependency and "when to uninstall" logic might end up complex still.
Using proposed and UCA I did some experiments in Bionic:
qemu-block-extra: 3.1+dfsg- 2ubuntu3. 2~cloud0 500 ubuntu- cloud.archive. canonical. com/ubuntu bionic- updates/ stein/main amd64 2.11+dfsg- 1ubuntu7. 19 500 archive. ubuntu. com/ubuntu bionic- proposed/ main amd64 Packages dpkg/status 2.11+dfsg- 1ubuntu7. 18 500 archive. ubuntu. com/ubuntu bionic-updates/main amd64 Packages
1:
500 http://
1:
500 http://
100 /var/lib/
1:
500 http://
I should be able to switch between those.
Also there is a trick to do all this without a complex ceph/issci setup.
cat > curldisk.xml << EOF dists/bionic- updates/ main/installer- amd64/current/ images/ netboot/ mini.iso" > ubuntu. com" port="80"/>
<disk type='network' device='disk'>
<driver name='qemu' type='raw'/>
<source protocol="http" name="ubuntu/
<host name="archive.
</source>
<target dev='vdc' bus='virtio'/>
<readonly/>
</disk>
EOF
$ virsh attach-device lateload curldisk.xml
Among many (many!) dependent libs from the system this also will late-load the qemu curl .so file.
root@b:~# diff libsloaded.pre libsloaded.post 64-linux- gnu/libnss_ dns-2.27. so 64-linux- gnu/libcrypt- 2.27.so x86_64- linux-gnu/ libsqlite3. so.0.8. 6 x86_64- linux-gnu/ libhx509. so.5.0. 0 x86_64- linux-gnu/ libheimbase. so.1.0. 0 x86_64- linux-gnu/ libwind. so.0.0. 0 x86_64- linux-gnu/ libroken. so.18.1. 0 x86_64- linux-gnu/ libhcrypto. so.4.1. 0 x86_64- linux-gnu/ libasn1. so.8.0. 0 x86_64- linux-gnu/ libkrb5. so.26.0. 0 x86_64- linux-gnu/ libheimntlm. so.0.1. 0 64-linux- gnu/libkeyutils .so.1.5 x86_64- linux-gnu/ libgssapi. so.3.0. 0 x86_64- linux-gnu/ libkrb5support. so.0.1 64-linux- gnu/libcom_ err.so. 2.1 x86_64- linux-gnu/ libk5crypto. so.3.1 x86_64- linux-gnu/ libkrb5. so.3.3 x86_64- linux-gnu/ liblber- 2.4.so. 2.10.8 x86_64- linux-gnu/ libldap_ r-2.4.so. 2.10.8 x86_64- linux-gnu/ libgssapi_ krb5.so. 2.2 x86_64- linux-gnu/ libpsl. so.5.2. 0 x86_64- linux-gnu/ librtmp. so.1 x86_64- linux-gnu/ libnghttp2. so.14.15. 2 x86_64- linux-gnu/ libcurl- gnutls. so.4.5. 0 x86_64- linux-gnu/ qemu/block- curl.so >urayuli. canonical. com:http (ESTABLISHED) >urayuli. canonical. com:http (ESTABLISHED) >urayuli. canonical. com:http (ESTABLISHED) >urayuli. canonical. com:http (ESTABLISHED) >urayuli. canonical. com:http (ESTABLISHED) >urayuli. canonical. com:http (ESTABLISHED) >urayuli. canonical. com:http (ESTABLISHED)
4a5,29
> qemu-syst 18362 libvirt-qemu mem REG 0,64 26936 2603 /lib/x86_
> qemu-syst 18362 libvirt-qemu mem REG 0,64 39208 2529 /lib/x86_
> qemu-syst 18362 libvirt-qemu mem REG 0,64 1082648 10066 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 300888 3424 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 60400 3418 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 165880 10090 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 88680 10058 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 217560 3416 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 661696 9860 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 573464 9987 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 35360 3420 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 14256 2573 /lib/x86_
> qemu-syst 18362 libvirt-qemu mem REG 0,64 265712 3410 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 43616 9991 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 14248 308068 /lib/x86_
> qemu-syst 18362 libvirt-qemu mem REG 0,64 199104 9985 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 877056 9989 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 55544 173467 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 327024 172527 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 305456 3412 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 55136 10054 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 113584 10059 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 153352 10024 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 510408 208529 /usr/lib/
> qemu-syst 18362 libvirt-qemu mem REG 0,64 25600 308756 /usr/lib/
143a169,177
> qemu-syst 18362 libvirt-qemu 30u IPv4 9576974 0t0 TCP b.lxd:47940-
> qemu-syst 18362 libvirt-qemu 31u a_inode 0,13 0 10884 [eventfd]
> qemu-syst 18362 libvirt-qemu 32u a_inode 0,13 0 10884 [eventfd]
> qemu-syst 18362 libvirt-qemu 33u IPv4 9575416 0t0 TCP b.lxd:47942-
> qemu-syst 18362 libvirt-qemu 35u IPv4 9576979 0t0 TCP b.lxd:47948-
> qemu-syst 18362 libvirt-qemu 36u IPv4 9575825 0t0 TCP b.lxd:47950-
> qemu-syst 18362 libvirt-qemu 37u IPv4 9575418 0t0 TCP b.lxd:47952-
> qemu-syst 18362 libvirt-qemu 38u IPv4 9575826 0t0 TCP b.lxd:47954-
> qemu-syst 18362 libvirt-qemu 39u IPv4 9577729 0t0 TCP b.lxd:47956-
So in theory that should be a test setup for the reported case.
P.S. I'm not even that opposed to maybe version those packages only carrying .so libs - but dependency and "when to uninstall" logic might end up complex still.