Proxmox Package Repositories for non-subscription installs

proxmox-logo-150x150-2415287If you ran across my previous post about disabling the Proxmox no subscription pop-up, you might also be wondering why you get an alert on the console regarding the scheduled update job.  The reason that this shows up is that the apt-get update job returns an error code for one of the Proxmox Enterprise repos.

The fix is relatively simple, just reconfigure your sources.list.d contents to not have the pve-enterprise repo, but instead to have the pve-no-subscription repos enabled instead.  The wiki has a nice article on the various package repos used for Proxmox.

Please note that the entry for the pve-no-subscription repo merges the sources.list and the sources.list.d file into one.

Disable subscription pop-up in Proxmox v.5.1-3

proxmox-logo-150x150-4148157If you have just installed the most recent release of the virtualization platform Proxmox, you might have noticed the that steps to disable the subscription pop-up dialog have changed, well, other than actually purchasing a subscription, I suppose.  I have chosen to not purchase a subscription for the same reason I don’t have one for VMware’s vSphere Hypervisor, I am not running this in a production setting that requires paid support or premium features. The following steps will disable the subscription pop-up.

Backup the javascript file

The pop-up contents, and whether or not are displayed, are controlled by a function in a javascript file.  The first step should always be to make a backup, just in case Murphy rings your doorbell.

root@pve:~# cd /usr/share/pve-manager/js/
root@pve:/usr/share/pve-manager/js# cp -p pvemanagerlib.js pvemanagerlib.js_backup

Edit the javascript file

Open the pvemanagerlib.js file in your favorite editor.  If this is a vanilla, unmodified installation, skip to line 850.  If this is not the first time that you have edited the file, search for the first occurrence of the following snippet, which will be in the function that we need to alter:

gettext('No valid subscription')

The text of the check for the function should be altered so that the conditional for the check reads as follows:


if (data.status !== 'Active') {


if (false) {


As I stated in the original paragraph, the specifics apply to v. 5.1-3 and that the location of the file has changed from previous versions.  A good way to find the file is to use the locate command, which you will have to install first:

root@pve:~# apt-get update
Ign:1 stretch InRelease
Get:2 stretch/updates InRelease [94.3 kB]
Get:3 stretch Release [118 kB]
Get:4 stretch Release.gpg [2,434 B]
Get:5 stretch/updates/main amd64 Packages [374 kB]
Get:6 stretch/main amd64 Packages [7,122 kB]
Get:7 stretch/updates/main Translation-en [165 kB]
Get:8 stretch/updates/contrib amd64 Packages [1,776 B]
Get:9 stretch/updates/contrib Translation-en [1,759 B]

<.. snip ..>

root@pve:~# apt-get install mlocate
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 85 not upgraded.
Need to get 96.5 kB of archives.
After this operation, 495 kB of additional disk space will be used.
Get:1 stretch/main amd64 mlocate amd64 0.26-2 [96.5 kB]
Fetched 96.5 kB in 0s (315 kB/s)
Selecting previously unselected package mlocate.
(Reading database ... 40185 files and directories currently installed.)
Preparing to unpack .../mlocate_0.26-2_amd64.deb ...
Unpacking mlocate (0.26-2) ...
Setting up mlocate (0.26-2) ...
update-alternatives: using /usr/bin/mlocate to provide /usr/bin/locate (locate) in auto mode
Adding group `mlocate' (GID 115) ...
Processing triggers for man-db ( ...
root@pve:~# updatedb
root@pve:~# locate pvemanagerlib.js

As you can see the mlocate package makes finding the file so much easier.