{"id":151462,"date":"2026-06-21T14:35:41","date_gmt":"2026-06-21T14:35:41","guid":{"rendered":"\/tutorials\/?p=151462"},"modified":"2026-06-21T08:31:45","modified_gmt":"2026-06-21T08:31:45","slug":"how-to-update-ubuntu","status":"publish","type":"post","link":"\/tutorials\/how-to-update-ubuntu","title":{"rendered":"How to update Ubuntu on a VPS"},"content":{"rendered":"<p>Learning how to update Ubuntu on a VPS is one of the first steps after setting up your server. Updates patch security holes, fix software bugs, and keep your packages compatible with the latest libraries. Servers that fall behind are easier targets for attackers and more likely to break when you install new software.<\/p><p>To update Ubuntu, you&rsquo;ll run a few <code>apt<\/code> commands through the terminal. You can also set up automatic security updates so patches apply even when you&rsquo;re not logged in.<\/p><p>Updating packages is different from upgrading to a new Ubuntu release (like moving from 22.04 to 24.04). A release upgrade replaces system-level files and is a separate process.<\/p><p>You&rsquo;ll need SSH or terminal access to your server to run these commands.<\/p><p>Here are the commands in order. On a production server, create a snapshot or backup before running <code>apt upgrade<\/code>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\napt list --upgradable\nsudo apt upgrade\nsudo apt autoremove\ncat \/var\/run\/reboot-required\nsudo reboot<\/pre><h2 class=\"wp-block-heading\" id=\"h-1-connect-to-your-ubuntu-server\">1. Connect to your Ubuntu server<\/h2><p>Connect to your Ubuntu server by running the ssh command from a terminal on your local computer:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ssh username@your_server_ip<\/pre><p>Replace <code>username<\/code> with your actual user (often <strong>root<\/strong> on a fresh server) and <code>your_server_ip<\/code> with the server&rsquo;s IP address.<\/p><p>Hostinger users can find their VPS IP address and login details in hPanel under the <strong>VPS<\/strong> section. From there, connect using Terminal on macOS and Linux, Windows Terminal or PuTTY on Windows, or any other SSH client.<\/p><p>If this is your first time working with a remote server, <a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-set-up-vps\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-set-up-vps\" rel=\"follow\">set up a VPS<\/a> before starting the update process. A few <a data-wpel-link=\"internal\" href=\"\/tutorials\/basic-ssh-commands\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/basic-ssh-commands\" rel=\"follow\">basic SSH commands,<\/a> such as <code>ls<\/code>, <code>cd<\/code>, and <code>pwd<\/code>, will help you navigate the server.<\/p><p>For a more secure login, you can <a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-set-up-ssh-keys\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-set-up-ssh-keys\" rel=\"follow\">set up SSH keys<\/a> instead of using a password every time.<\/p><figure class=\"wp-block-image size-large\"><a class=\"hgr-tutorials-cta hgr-tutorials-cta-vps-hosting\" href=\"\/vps-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-77934\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-2-check-your-current-ubuntu-version\">2. Check your current Ubuntu version<\/h2><p>Use <code>lsb_release -a<\/code> or <code>hostnamectl<\/code> to check which Ubuntu version your server is running before you start updating.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">lsb_release -a<\/pre><p>This prints the distributor, description, release number, and codename. The <strong>Release<\/strong> line shows your version number, like <strong>24.04<\/strong>, and <strong>Codename<\/strong> shows the name, like <strong>noble<\/strong>.<\/p><p>You can also use:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">hostnamectl<\/pre><p>The <strong>Operating System<\/strong> line in the output confirms your Ubuntu version and shows the kernel version and system architecture.<\/p><p>Knowing your version matters because some packages and updates are specific to each release. If neither command works on your system, you can <a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-check-ubuntu-version\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-check-ubuntu-version\" rel=\"follow\">check your Ubuntu version<\/a> using other tools, such as <code>\/etc\/os-release<\/code>.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-refresh-the-package-list\">3. Refresh the package list<\/h2><p><code>sudo apt update<\/code> refreshes your server&rsquo;s local list of available packages from Ubuntu&rsquo;s repositories:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update<\/pre><p>This command does not install anything. It only downloads the latest package information so your server knows what can be upgraded and where to get it.<\/p><p>At the end of the output, a line like <strong>8 packages can be upgraded<\/strong> tells you updates are ready. If it says <strong>All packages are up to date<\/strong>, there&rsquo;s nothing to install.<\/p><p>Run this command before every upgrade. Without a fresh list, <code>apt upgrade<\/code> may skip updates or try to download versions that no longer exist.<\/p><h2 class=\"wp-block-heading\" id=\"h-4-check-available-package-upgrades\">4. Check available package upgrades<\/h2><p><code>apt list --upgradable<\/code> shows every package that has a newer version available:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apt list --upgradable<\/pre><p>The output lists each package name, its current version, and the version it will upgrade to. If you don&rsquo;t recognize most of the names, that&rsquo;s normal. Most are system libraries or background dependencies.<\/p><p>On a production VPS, check this list before upgrading so you know whether a database, web server, or language runtime is about to change.<\/p><p>If you want to skip a specific package for now, hold it with <code>sudo apt-mark hold package_name<\/code> and upgrade the rest.<\/p><p>\n\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Pro Tip<\/h4>\n                    <p> Create a snapshot or backup before upgrading, especially on a production server. If an update causes problems, a snapshot gives you a faster recovery path than troubleshooting live. Hostinger users can create a VPS snapshot from hPanel. <\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-5-upgrade-installed-packages\">5. Upgrade installed packages<\/h2><p><code>sudo apt upgrade<\/code> installs all available package updates on your Ubuntu server:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt upgrade<\/pre><p>APT shows a summary of what it plans to change. Type <strong>Y<\/strong> and press <strong>Enter<\/strong> to confirm.<\/p><p>This command installs newer versions of your current packages. It adds new dependencies if a package needs them, but it won&rsquo;t remove anything already installed.<\/p><p>Some running services (like Nginx or MySQL) may restart automatically after their packages update. On a production server, plan upgrades during low-traffic hours.<\/p><p>If an update needs to remove a package to solve a dependency conflict, <code>apt upgrade<\/code> skips it. This often happens during kernel or major library updates. For those situations, use:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&#60419;sudo apt full-upgrade<\/pre><p>\n\n\n\n    <p class=\"warning\">\n        <strong>Warning!<\/strong> <b><code>full-upgrade<\/code><\/b> can remove packages to solve dependency problems. Review the summary carefully before confirming, and check that APT isn't removing something you rely on.    <\/p>\n    \n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-6-remove-unused-packages\">6. Remove unused packages<\/h2><p><code>sudo apt autoremove<\/code> deletes packages that were installed as dependencies but are no longer needed:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt autoremove<\/pre><p>After upgrades, old dependency versions (like outdated kernel images or replaced library packages) often stay behind. <code>autoremove<\/code> finds and removes them.<\/p><h2 class=\"wp-block-heading\" id=\"h-7-reboot-the-vps-if-required\">7. Reboot the VPS if required<\/h2><p>Check whether your server needs a reboot by looking for the file <code>\/var\/run\/reboot-required<\/code>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cat \/var\/run\/reboot-required<\/pre><p>If the file exists, the output reads <code>*** System restart required ***<\/code>. If nothing prints, no reboot is needed. Kernel and system library updates are the most common reason this file appears.<\/p><p>This file is created by post-install hooks in certain packages. On minimal or custom Ubuntu images, the hooks may not be present, so a reboot could still be needed even when the file doesn&rsquo;t appear. If you just updated the kernel, reboot regardless.<\/p><p>To see which packages triggered the reboot notice:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cat \/var\/run\/reboot-required.pkgs<\/pre><p>When you&rsquo;re ready, reboot with:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo reboot<\/pre><p>Your SSH session will disconnect. Wait a minute or two, then reconnect.<\/p><p>\n\n\n\n<div><p class=\"important\"><strong>Important!<\/strong> Save any work and let your team know before rebooting a production VPS. Running services stop during the restart, so plan reboots during a maintenance window. <\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-8-confirm-ubuntu-is-updated\">8. Confirm Ubuntu is updated<\/h2><p>Verify that your server is fully updated by running <code>sudo apt update<\/code> again and checking for leftover upgrades:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\napt list --upgradable<\/pre><p><code>apt list --upgradable<\/code> should return nothing below the <strong>Listing&hellip; Done<\/strong> line. That means all available packages are current.<\/p><p>To confirm the kernel version after a reboot:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">uname -r<\/pre><p>The version number should match the latest kernel that was installed. You can also re-run <code>lsb_release -a<\/code> to verify your Ubuntu release. Package updates don&rsquo;t change the release number. Only <code>do-release-upgrade<\/code> moves you to a new Ubuntu version like 24.04 or 26.04.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-enable-automatic-security-updates-on-ubuntu\">How to enable automatic security updates on Ubuntu<\/h2><p>Install the <code>unattended-upgrades<\/code> package to apply security patches automatically between manual update sessions.<\/p><p>Many Ubuntu Server installs already have it. Check by running:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dpkg -s unattended-upgrades | grep Status<\/pre><p>If the output shows <strong>install ok installed<\/strong>, the package is already there. If not, install it:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install unattended-upgrades<\/pre><p>Then enable it:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo dpkg-reconfigure unattended-upgrades<\/pre><p>A prompt asks whether to automatically download and install stable updates. Select <strong>Yes<\/strong>.<\/p><p>This creates the settings file at <strong>\/etc\/apt\/apt.conf.d\/20auto-upgrades<\/strong>, which tells APT to check for and apply security updates daily. By default, only packages from Ubuntu&rsquo;s <code>-security<\/code> repository are included.<\/p><p>To change what gets updated, block specific packages, or set <a data-wpel-link=\"external\" href=\"https:\/\/ubuntu.com\/server\/docs\/how-to\/software\/automatic-updates\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><\/a><a data-wpel-link=\"external\" href=\"https:\/\/ubuntu.com\/server\/docs\/how-to\/software\/automatic-updates\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">automatic reboot rules<\/a>, edit <strong>\/etc\/apt\/apt.conf.d\/50unattended-upgrades<\/strong>.<\/p><p>Automatic updates don&rsquo;t replace manual check-ins. Log in regularly to check for pending reboots, failed updates in <strong>\/var\/log\/unattended-upgrades\/<\/strong>, and whether your services are running as expected.<\/p><h2 class=\"wp-block-heading\" id=\"h-common-ubuntu-update-errors\">Common Ubuntu update errors<\/h2><p>Most update problems come down to five issues: locked package files, interrupted updates, broken dependencies, missing repositories, and package configuration prompts.<\/p><p><strong>Locked APT process.<\/strong> You see an error like <strong>Could not get lock \/var\/lib\/dpkg\/lock-frontend<\/strong>. This means another package manager process is still running. Check what&rsquo;s using the lock:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo lsof \/var\/lib\/dpkg\/lock-frontend<\/pre><p>Wait for the existing process to finish. If the process crashed and left a stale lock, remove it only after confirming nothing is running:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo rm \/var\/lib\/dpkg\/lock-frontend\nsudo dpkg --configure -a<\/pre><p><strong>Interrupted update.<\/strong> An SSH drop or power loss mid-update can leave packages half-installed. Fix it with:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo dpkg --configure -a<\/pre><p>This finishes setting up any packages that were left in a broken state.<\/p><p><strong>Broken dependencies.<\/strong> When packages need other packages that aren&rsquo;t installed, run:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt --fix-broken install<\/pre><p>APT downloads the missing packages and reconfigures everything so the dependencies match.<\/p><p><strong>Missing repository.<\/strong> If <code>apt update<\/code> shows errors about a repository it can&rsquo;t reach, check your sources list in <strong>\/etc\/apt\/sources.list<\/strong> and the files in <strong>\/etc\/apt\/sources.list.d\/<\/strong>. Remove or fix any entries pointing to repositories that no longer exist.<\/p><p><strong>Package configuration prompts.<\/strong> Sometimes an update asks whether to keep your current config file or replace it with the package&rsquo;s new version. On a VPS where you&rsquo;ve customized config files, choose to <strong>keep the local version<\/strong> unless you know the new file is needed.<\/p><p>If you&rsquo;re new to the terminal, brushing up on common <a data-wpel-link=\"internal\" href=\"\/tutorials\/linux-commands\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/linux-commands\" rel=\"follow\">Linux commands<\/a> like <code>grep<\/code>, <code>cat<\/code>, and <code>ps<\/code> can speed up troubleshooting.<\/p><h2 class=\"wp-block-heading\" id=\"h-keep-your-ubuntu-vps-secure-after-updating\">Keep your Ubuntu VPS secure after updating<\/h2><p>Updating packages is one way to keep a VPS safe. A maintenance routine also covers SSH security, firewalls, monitoring, and backups.<\/p><p>Start by locking down SSH access. Disable root login, change the default SSH port, and switch to key-based login. Applying <a data-wpel-link=\"internal\" href=\"\/tutorials\/vps-security\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/vps-security\" rel=\"follow\">VPS security best practices<\/a> alongside regular updates closes the most common attack paths.<\/p><p>Next, <a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-configure-firewall-on-ubuntu-using-ufw\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/tutorials\/how-to-configure-firewall-on-ubuntu-using-ufw\" rel=\"follow\">configure a firewall on Ubuntu<\/a> using UFW (Uncomplicated Firewall) to control which traffic reaches your server. UFW is built into Ubuntu and can be set up with just a few commands.<\/p><p>Set a weekly schedule: update packages, check for pending reboots, review firewall rules, and test your backups. Writing it down keeps things consistent.<\/p><p>If you&rsquo;re on Hostinger <a data-wpel-link=\"internal\" href=\"\/vps-hosting\" rel=\"follow\"><\/a><a data-wpel-link=\"internal\" href=\"\/vps-hosting\" rel=\"follow\">VPS hosting<\/a>, you already have DDoS protection and snapshot support built in, so your maintenance routine has a safety net from the start.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\">\n<figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a38c2a1e0865\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a38c2a1e0865\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2026\/06\/1781965778409-0.png\" alt=\"Hostinger VPS hosting landing page\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learning how to update Ubuntu on a VPS is one of the first steps after setting up your server. Updates [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/tutorials\/how-to-update-ubuntu\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":624,"featured_media":151465,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to update Ubuntu on a VPS","rank_math_description":"Learn how to update Ubuntu on a VPS using apt commands, check available upgrades, reboot safely, and enable automatic security updates.","rank_math_focus_keyword":"how to update ubuntu","footnotes":""},"categories":[22648,22644],"tags":[],"class_list":["post-151462","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-managing-monitoring-and-security","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-update-ubuntu","default":1},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-update-ubuntu","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-update-ubuntu","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-update-ubuntu","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-update-ubuntu","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-update-ubuntu","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-update-ubuntu","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-update-ubuntu","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/151462","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/users\/624"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/comments?post=151462"}],"version-history":[{"count":3,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/151462\/revisions"}],"predecessor-version":[{"id":151467,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/151462\/revisions\/151467"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/media\/151465"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/media?parent=151462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/categories?post=151462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/tags?post=151462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}