Update Ubiquiti Controller on Debian VM (Manual and Apt)

First, I’ll go over the manual method.

Go to the Ubiquiti downloads page

https://www.ui.com/download/

Select Unifi on the top navigation bar

Underneath the software section find:

UniFi Network Controller 5.13.29 for Debian/Ubuntu Linux and UniFi Cloud Key

Click the download button and accept the license terms.

Then click the copy URL button to copy the URL to your clipboard.

Next, ssh to your VM and become the root user.

Copy and Paste this command to edit the PATH variable to include folders that the installer requires to run

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

That command prevents this error from occurring:

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)

If I recall correctly the PATH variable was changed between the move from sysvinit to systemd architecture. The unifi.deb installer package expects to be run on a sysvinit system. However, it will run fine on the systemd system as long as this change is made.

Now download the file using wget.

wget https://dl.ui.com/unifi/5.13.29/unifi_sysvinit_all.deb

Then, once the file has finished downloading using the dpkg package manager with the install flag to install the debian package.

dpkg -i unifi_sysvinit_all.deb

This takes several minutes and will cause your Unifi controller to become unavailable as it restarts the unifi service.

Note that if you’re using a sysvinit version of Debian that the export command will not be necessary.

Also to check the status of the service will be using a slightly different command.

On Debian version up to and including Debian 7. Everything after is systemd.

However, you can try several if you’re not sure

First is the absolute path in a sysvinit system

/etc/init.d/unifi status
/etc/init.d/unifi start
/etc/init.d/unifi stop

You can also use the service command

service unifi status
service unifi start
service unifi stop

And on systemd systems you can use systemctl command

systemctl unifi status
systemctl unifi start
systemctl unifi stop

Here is the Ubiquiti official version where you have the package installed via apt:

https://help.ui.com/hc/en-us/articles/220066768-UniFi-How-to-Install-and-Update-via-APT-on-Debian-or-Ubuntu

When performing the steps in the official guide switch the order of steps 1 and 2.

Leave a Reply

Your email address will not be published. Required fields are marked *