Upgrading Virtualmin and Webmin

I was running Debian 7 and due to the Letsencrypt root certificates expiring I finally decided to upgrade the server. So I upgraded from Debian 7->8, then 8->9, then 9->10, then I started upgrading from 10->11, and did an apt upgrade, but when I went to do apt dist-upgrade, I saw that it was going to remove 17.4 GB of disk space. So, I’m assuming it was going to remove all of the files for all of my virtual hosts because that’s the only thing that would be that large. Now I’m left with a system where some of the packages are Debian 10 and some are Debian 11.

I currently have the following installed:

Webmin version 1.840
Virtualmin version 5.07

So I opened the Virtualmin install.sh file to figure out how to add the GPG signing keys, added the keys, and added the following to my apt sources:

deb http://software.virtualmin.com/vm/6/gpl/apt virtualmin-buster main
deb http://software.virtualmin.com/vm/6/gpl/apt virtualmin-universal main

However, when I try to upgrade Virtualmin, I still get:

After this operation, 17.4 GB disk space will be freed.

Is there any way to update Webmin/Virtualmin at this point, or am I basically looking at just doing a fresh install on another server? Or would waiting until Debian 11 is supported by Virtualmin be a viable option?

That’s a lot of upgrades all at once!

This is your most pressing problem:

That’s a serious issue, and maybe much more complicated than upgrading some Virtualmin packages.

And, once you do get to Virtualmin, you’re going to need to be more specific here:

What do you mean by “upgrade Virtualmin”? What specifically are you doing to upgrade Virtualmin? Upgrading the webmin-virtual-server module should do nothing but install the new version of that module. What are you actually running to have it say 17.4GB of space will be freed?

Probably, but you shouldn’t be focused on Webmin/Virtualmin until you have a functional Debian system. If you’d asked before you started I would have said, “stop at Debian 10, because 11 is not yet supported”. But, it’s mostly harmless to go on up to 11 if you already have a functional Virtualmin system. It’s not as safe or simple as going to a supported distro, but it won’t be a disaster.

But, the fact that you’re system is in between 10 and 11 is potentially a disaster. I don’t know what to recommend, as you haven’t provided any details about what errors showed up on your way to this state or which packages are “stuck”. (And, this may not be an area I’m super helpful in. I’ve only done a few dozen Debian upgrades myself and never to 11.)

Thanks for the quick reply. I agree that having a system with packages from multiple versions is probably my biggest problem.

Anyway, I was updating webmin/virtualmin with apt:

# apt dist-upgrade 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  alsa-topology-conf alsa-ucm-conf apt-show-versions at-spi2-core dconf-gsettings-backend dconf-service default-mysql-server galera-4 glib-networking glib-networking-common glib-networking-services gsettings-desktop-schemas
  gstreamer1.0-libav gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-x i965-va-driver ibverbs-providers intel-media-va-driver ipxe-qemu liba52-0.7.4 libaa1 libaacs0 libaio1
  libapt-inst2.0 libapt-pkg-perl libapt-pkg5.0 libasound2 libasound2-data libass9 libasyncns0 libatk-bridge2.0-0 libatspi2.0-0 libavc1394-0 libavcodec58 libavfilter7 libavformat58 libavutil56 libbdplus0 libblas3
  libbluetooth3 libbluray2 libbrlapi0.6 libbrlapi0.8 libbs2b0 libcaca0 libcacard0 libcapstone3 libcapstone4 libcdio19 libcdparanoia0 libcgi-fast-perl libcgi-pm-perl libchromaprint1 libcodec2-0.9 libcolord2 libdaxctl1
  libdconf1 libdevel-globaldestruction-perl libdv4 libdvdread8 libdw1 libepoxy0 libexecs0 libfcgi-perl libfdt1 libflac8 libflite1 libgbm1 libgdk-pixbuf-xlib-2.0-0 libgdk-pixbuf2.0-0 libgfortran5 libgme0 libgsm1
  libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libgtk-3-bin libgtk-3-common libgudev-1.0-0 libhtml-template-perl libibverbs1 libiec61883-0 libigdgmm11 libjack-jackd2-0 libjson-glib-1.0-0
  libjson-glib-1.0-common liblapack3 liblilv-0-0 libmfx1 libmp3lame0 libmpeg2-4 libmpg123-0 libmysofa1 libndctl6 libnettle6 libnl-route-3-200 libnorm1 libogg0 libopencore-amrnb0 libopencore-amrwb0 libopenmpt0 libopus0
  liborc-0.4-0 libpcsclite1 libperl5.28 libpgm-5.3-0 libpmem1 libpocketsphinx3 libpostproc55 libproxy1v5 libpulse0 libpython2-dev libpython2-stdlib libpython2.7 libpython2.7-dev librabbitmq4 libraw1394-11 librdmacm1
  libreadline5 libreadline7 librest-0.7-0 librubberband2 libruby2.5 libsamplerate0 libsane libserd-0-0 libshine3 libshout3 libsidplay1v5 libslirp0 libsnappy1v5 libsndfile1 libsnmp30 libsord-0-0 libsoup-gnome2.4-1
  libsoup2.4-1 libsoxr0 libspeex1 libsphinxbase3 libspice-server1 libsratom-0-0 libsrt1.4-gnutls libssh-gcrypt-4 libswresample3 libswscale5 libtag1v5 libtag1v5-vanilla libtheora0 libtwolame0 libudfread0 liburing1
  libusbredirparser1 libv4l-0 libv4lconvert0 libva-drm2 libva-x11-2 libva2 libvde0 libvdeplug2 libvdpau-va-gl1 libvdpau1 libvidstab1.1 libvirglrenderer0 libvirglrenderer1 libvisual-0.4-0 libvorbis0a libvorbisenc2
  libvorbisfile3 libvpx6 libvte-2.91-0 libvte-2.91-common libwavpack1 libwayland-cursor0 libwayland-egl1 libwayland-server0 libx264-160 libxencall1 libxendevicemodel1 libxenevtchn1 libxenforeignmemory1 libxengnttab1
  libxenhypfs1 libxenmisc4.11 libxenmisc4.14 libxenstore3.0 libxentoolcore1 libxentoollog1 libxkbcommon0 libxvidcore4 libyajl2 libzmq5 libzvbi-common libzvbi0 mariadb-server-10.5 mariadb-server-core-10.5 mesa-va-drivers
  mesa-vdpau-drivers ocl-icd-libopencl1 ovmf perl-modules-5.28 pocketsphinx-en-us python-pkg-resources python-setuptools python-six python2 python2-dev python2-minimal python2.7-dev qemu-system-common qemu-system-data
  qemu-system-gui qemu-system-x86 qemu-utils rsync ruby-did-you-mean ruby2.5-doc seabios socat va-driver-all vde-switch vde-wirefilter vde2 vdeplug vdpau-driver-all
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  galera-3 libgc1c2 libpython-dev libpython-stdlib mailman mariadb-client-10.3 mariadb-client-core-10.3 mariadb-server-10.3 mariadb-server-core-10.3 mysql-utilities python python-apt python-chardet python-debian
  python-debianbts python-dev python-dnspython python-httplib2 python-minimal python-mysql.connector python-mysqldb python-pbr python-pycurl python-pysimplesoap python-reportbug python-stevedore python-support
  python-virtualenv python-virtualenv-clone qemu-kvm ruby2.5 virtualenv-clone
The following NEW packages will be installed:
  galera-4 ipp-usb libb-hooks-endofscope-perl libbrlapi0.8 libcapstone4 libclone-perl libdaxctl1 libgc1 libmodule-implementation-perl libnamespace-clean-perl libndctl6 libpackage-stash-perl libpackage-stash-xs-perl libpmem1
  libpoppler-glib8 libpoppler102 libsane1 libslirp0 libsnmp40 libsub-identify-perl libvariable-magic-perl libxenhypfs1 libxenmisc4.14 mariadb-client-10.5 mariadb-client-core-10.5 mariadb-server-10.5 mariadb-server-core-10.5
  python3-pbr python3-stevedore python3-virtualenv-clone python3-virtualenvwrapper ruby-rubygems ruby2.7 ruby2.7-doc
The following packages will be upgraded:
  default-mysql-client default-mysql-server libhttp-message-perl libmoo-perl libpython2-dev libpython2-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libsane libsane-common libtype-tiny-perl
  python-six python2 python2-dev python2-minimal python2.7 python2.7-dev python2.7-minimal python3-chardet python3-six qemu-system-gui qemu-system-x86 ri ruby rubygems-integration sane-utils usermin virtualenvwrapper w3m
  webmin webmin-virtual-server webmin-virtual-server-theme webmin-virtualmin-awstats webmin-virtualmin-htpasswd webmin-virtualmin-mailman
37 upgraded, 34 newly installed, 32 to remove and 0 not upgraded.
Need to get 82.9 MB/94.7 MB of archives.
After this operation, 17.4 GB disk space will be freed.
Do you want to continue? [Y/n] 

I don’t see any evidence your domains will be removed, but I also can’t see how what’s being removed could free up 17.4GB of space. There is a database upgrade, which is something you should not take lightly (I would recommend backups at every new version…e.g. from 7 to 8, back’em up, from 8 to 9, back’em up, from 9 to 10 back-em up), because that’s the mostly likely place for the upgrade to get hairy. You can probably just run the upgrade command on your databases and expect it to work, but things can go wrong.

Though, with that said, you’ve already skipped over the most risky of the upgrades, I think. 10.3 to 10.5 is pretty small, I think.

So, I don’t know what’s going on with that large “will be freed” value, but I don’t think it’s anything to do with Virtualmin or Webmin or your accounts/domains and I doubt it’s anything serious (it may be that it’s going to remove a bunch of old packages that are cached from the previous version(s)).

If it were me, I’d do a safety backup as it is now, and then just let it rip and see how it goes. You’re going to have to fix some stuff, no matter how well it goes.

It doesn’t look like anything is particularly broken, to me. I think the package manager knows what it’s doing, so maybe just let it keep going.

Though again, for anyone reading this and thinking of embarking on the same journey…skipping through a bunch of different major versions all at once is much more risky than jumping one major version every year or two, and jumping to a version unsupported by Virtualmin is also higher risk than sticking with 10 for now. We don’t expect problems with 11, but we don’t know because we haven’t had time to do a lot of testing. You’re signing up to be a guinea pig.

Thank you for taking the time to write such a great reply.