Upgrades and repositories

Upgrades and repositories

Last updated
Set up necessary APT repositories upon fresh Proxmox VE install without any subscription license. Explainer on apt, apt-get, upgrade, dist-upgrade and full-upgrade.

Proxmox VE ships preset with software package repositories   access to which is subject to subscription. Unless you have one, this would leave you without upgrades. Rather than following the elaborate manual editing of files   after every new install, you can achieve the same with the following:

Tip

You are welcome to give a try to a ready-made tool for streamlining Proxmox setups with no subscription.

No-subscription repositories

First, we populate a variable ($VERSION_CODENAME) with current Debian codename:

source /etc/os-release

As a result, the following will universally work on e.g. PVE 8 or 9 alike:

cat > /etc/apt/sources.list.d/pve.list \
<<< "deb http://download.proxmox.com/debian/pve $VERSION_CODENAME pve-no-subscription"

If using Ceph, also:

cat > /etc/apt/sources.list.d/ceph.list \
<<< "deb http://download.proxmox.com/debian/ceph-squid $VERSION_CODENAME no-subscription"

Caution

Ceph codename needs to be correctly set, such as ceph-squid at the end of the URL above. Adjust accordingly.

This respects the Debian way   of setting custom APT data sources, i.e. not changing the /etc/apt/sources.list file itself.   It removes pre-existing (non-Debian) lists first, then determines current system’s VERSION_CODENAME from /etc/os-release information,   which are then used to correctly populate the separate pve.list and ceph.list files.

Note

The above describes the long-standing .list format which will continue to work on Debian 13 (PVE 9), but you may want to make use of the newer .sources format, in which case simply follow the above with an additional command:

apt modernize-sources

Update and upgrade

The Proxmox way is simply:

apt update && apt -y full-upgrade

The update merely synchronises the package index by fetching it from the specified remote sources. It is the upgrade that installs actual packages.

Notes

upgrade or full-upgrade (dist-upgrade)

The difference between regular upgrade (as commonly used with plain Debian installs) and full-upgrade lies in the additional possibility of some packages getting REMOVED during full-upgrade which Proxmox, unlike Debian, may need during their regular release cycle. Failing to use full-upgrade instead of upgrade could result in partially upgraded system, or in case of present bugs,   inoperable system, remedy of which lies in the eventual use of full-upgrade.

The options of full-upgrade and dist-upgrade are equivalent, the latter becoming obsolete. You would have found dist-upgrade in older official Proxmox docs which still also mention apt-get.

apt or apt-get

Interestingly, the apt and apt-get are a bit different still, with the latter being a lower level utility.

Default apt behaviour follows that of apt-get with --with-new-pkgs switch:

Allow installing new packages when used in conjunction with upgrade. This is useful if the update of an installed package requires new dependencies to be installed. Instead of holding the package back upgrade will upgrade the package and install the new dependencies. Note that upgrade with this option will never remove packages, only allow adding new ones. Configuration Item: APT::Get::Upgrade-Allow-New.

Furthermore, apt (unlike apt-get) will NOT keep .deb package files in /var/cache/apt/archives after installation, this corresponds to APT::Keep-Downloaded-Packages NOT set.

pveupdate and pveupgrade

These are just Proxmox wrappers that essentially tuck in update   and dist-upgrade   with further elaborate actions tossed in, such as subscription information updates or ACME certificate renewals.


Manual pages:  aptapt-get
Post is also available as reStructuredText in a GitHub Gist.
Excuse limited formatting, absent referencing and missing media content.
Your feedback is welcome in the main GitHub repository.