How to update Pi-hole to the latest version
Pi-hole is a fantastic product for your home network that allows ad blocking at the network level. I thought that it is updated in the same way as all other parts of the system; using the sudo apt-get update and then sudo apt-get upgrade. But when I logged into my Pi-hole web interface yesterday, I saw a red message saying Pi-hole Version v4.3.1 (Update available!). So how do I update my Pi-hole? In this tutorial, you’ll learn how to update Pi-hole software to the latest version.
Let’s begin
Updating Pi-hole software to the latest version is a really easy process. To do this, we will use the console command pihole -up. Now, step by step guide.
Log into your Raspberry Pi’s (or whatever you use as a Pi-hole) console.
If your Raspberry Pi is configured to start a graphical desktop when it boots, or if you just prefer to use one, then look for a program called “LXTerminal”.
You can connect to your Raspberry Pi from another computer over the network with SSH using the command
ssh pi@192.168.2.1in Terminal. Make sure you replace192.168.2.1with actual IP address of your Raspberry Pi.
Type the following command to check if there is an update of Pi-hole:
pihole -v
Pi-hole version is v4.3.1 (Latest: v4.3.2) AdminLTE version is v4.3 (Latest: v4.3) FTL version is v4.3.1 (Latest: v4.3.1)
In my case, the AdminLTE and FTL is up to date, but the Pi-hole itself is out of date. There is an update v4.3.2.
Type the following command to start the Pi-hole update process:
During the update process, there will be a short period where Pi-hole will not be available.
Nothing in the Pi-hole update process will change your Pi-hole configuration files, unless you have edited any of the files that tell you not to edit them.
pihole -up
[i] Checking for updates...
[i] Pi-hole Core: update available
[i] Web Interface: up to date
[i] FTL: up to date
[i] Pi-hole core files out of date, updating local repo.
[✓] Check for existing repository in /etc/.pihole
[✓] Update repo in /etc/.pihole
[i] If you had made any changes in '/etc/.pihole/', they have been stashed using 'git stash'
[✓] Root user check
.;;,.
.ccccc:,.
:cccclll:. ..,,
:ccccclll. ;ooodc
'ccll:;ll .oooodc
.;cll.;;looo:.
.. ','.
.',,,,,,'.
.',,,,,,,,,,.
.',,,,,,,,,,,,....
....''',,,,,,,'.......
......... .... .........
.......... ..........
.......... ..........
......... .... .........
........,,,,,,,'......
....',,,,,,,,,,,,.
.',,,,,,,,,'.
.',,,,,,'.
..'''.
[i] Existing PHP installation detected : PHP version 7.3.9-1~deb10u1
[i] Performing unattended setup, no whiptail dialogs will be displayed
[✓] Disk space check
[✓] Update local cache of available packages
[✓] Checking apt-get for upgraded packages... up to date!
[i] Installer Dependency checks...
[✓] Checking for apt-utils
[✓] Checking for dialog
[✓] Checking for debconf
[✓] Checking for dhcpcd5
[✓] Checking for git
[✓] Checking for iproute2
[✓] Checking for whiptail
[i] Performing reconfiguration, skipping download of local repos
[✓] Resetting repository within /etc/.pihole...
[✓] Resetting repository within /var/www/html/admin...
[i] Main Dependency checks...
[✓] Checking for cron
[✓] Checking for curl
[✓] Checking for dnsutils
[✓] Checking for iputils-ping
[✓] Checking for lsof
[✓] Checking for netcat
[✓] Checking for psmisc
[✓] Checking for sudo
[✓] Checking for unzip
[✓] Checking for wget
[✓] Checking for idn2
[✓] Checking for sqlite3
[✓] Checking for libcap2-bin
[✓] Checking for dns-root-data
[✓] Checking for resolvconf
[✓] Checking for libcap2
[✓] Checking for lighttpd
[✓] Checking for php7.3-common
[✓] Checking for php7.3-cgi
[✓] Checking for php7.3-sqlite3
[✓] Enabling lighttpd service to start on reboot...
[i] FTL Checks...
[✓] Detected ARM-hf architecture (armv6 or lower) Using ARM binary
[i] Checking for existing FTL binary...
[i] Latest FTL Binary already installed (v4.3.1). Confirming Checksum...
[i] Checksum correct. No need to download!
[✓] Checking for user 'pihole'
[✓] Installing scripts from /etc/.pihole
[i] Installing configs from /etc/.pihole...
[i] Existing dnsmasq.conf found... it is not a Pi-hole file, leaving alone!
[✓] Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf
[i] Installing blocking page...
[✓] Creating directory for blocking page, and copying files
[✗] Backing up index.lighttpd.html
No default index.lighttpd.html file found... not backing up
[✓] Installing sudoer file
[✓] Installing latest Cron script
[✓] Installing latest logrotate script
[i] Backing up /etc/dnsmasq.conf to /etc/dnsmasq.conf.old
[✓] man pages installed and database updated
[i] Testing if systemd-resolved is enabled
[i] Systemd-resolved is not enabled
[✓] Restarting lighttpd service...
[✓] Enabling lighttpd service to start on reboot...
[i] Restarting services...
[✓] Enabling pihole-FTL service to start on reboot...
[✓] Restarting pihole-FTL service...
[✓] Deleting existing list cache
[i] Pi-hole blocking is enabled
[✗] DNS resolution is currently unavailable
[✓] DNS resolution is now available
[i] Neutrino emissions detected...
[✓] Pulling blocklist source list into range
[i] Target: raw.githubusercontent.com (hosts)
[✓] Status: Retrieval successful
[i] Target: mirror1.malwaredomains.com (justdomains)
[✓] Status: Retrieval successful
[i] Target: sysctl.org (hosts)
[✓] Status: Retrieval successful
[i] Target: zeustracker.abuse.ch (blocklist.php?download=domainblocklist)
[✓] Status: Retrieval successful
[i] Target: s3.amazonaws.com (simple_tracking.txt)
[✓] Status: Retrieval successful
[i] Target: s3.amazonaws.com (simple_ad.txt)
[✓] Status: Retrieval successful
[i] Target: hosts-file.net (ad_servers.txt)
[✓] Status: Retrieval successful
[✓] Consolidating blocklists
[✓] Extracting domains from blocklists
[i] Number of domains being pulled in by gravity: 138226
[✓] Removing duplicate domains
[i] Number of unique domains trapped in the Event Horizon: 115995
[i] Nothing to whitelist!
[i] Number of regex filters: 0
[✓] Parsing domains into hosts format
[✓] Cleaning up stray matter
[✓] Force-reloading DNS service
[✓] DNS service is running
[✓] Pi-hole blocking is Enabled
[i] The install log is located at: /etc/pihole/install.log
Update Complete!
Current Pi-hole version is v4.3.2
Current AdminLTE version is v4.3
Current FTL version is v4.3.1
Finally, you can retype the command pihole -v to verify that you have the latest version of Pi-hole already installed.
pihole -v
Pi-hole version is v4.3.2 (Latest: v4.3.2) AdminLTE version is v4.3 (Latest: v4.3) FTL version is v4.3.1 (Latest: v4.3.1)
Conclusion
That’s it, you’re done. Now you have updated your Pi-hole software. So simple isn’t it?
I hope this article has helped you learn how to update Pi-hole software to the latest version. If this article has helped you then please leave a comment ![]()
Thanks for reading!
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.