[{"data":1,"prerenderedAt":733},["ShallowReactive",2],{"art-ubuntu-26-04-lts-what-changes-when-to-upgrade-en":3},{"id":4,"title":5,"author":6,"body":7,"date":717,"description":718,"extension":719,"image":720,"meta":721,"navigation":722,"pareja":723,"path":724,"seo":725,"stem":726,"tags":727,"__hash__":732},"blogEn\u002Fen\u002Fblog\u002Fubuntu-26-04-lts-what-changes-when-to-upgrade.md","Ubuntu 26.04 LTS Resolute Raccoon: what changes on your server and when to upgrade (or not)","Paco Cubel",{"type":8,"value":9,"toc":700},"minimark",[10,15,37,41,48,192,195,225,244,248,251,256,259,294,297,339,346,350,353,357,360,364,375,379,418,422,463,473,477,480,581,588,598,630,633,637,650,656,662,676,682,686,689,696],[11,12,14],"h2",{"id":13},"the-short-version","The short version",[16,17,18,19,23,24,27,28,31,32,36],"p",{},"Ubuntu 26.04 LTS \"Resolute Raccoon\" went out on ",[20,21,22],"strong",{},"April 23, 2026",". It ships Linux kernel 7.0, systemd 259, standard support until ",[20,25,26],{},"April 2031"," and, with Ubuntu Pro, until ",[20,29,30],{},"April 2036",". This is the baseline we'll be running on new servers for the next five years, so it's worth understanding what's changed before hitting ",[33,34,35],"code",{},"do-release-upgrade",".",[11,38,40],{"id":39},"whats-new-if-youre-coming-from-2404","What's new if you're coming from 24.04",[16,42,43,44,47],{},"These are the versions shipped in the official 26.04 repos. I checked them on ",[33,45,46],{},"packages.ubuntu.com\u002Fresolute\u002F",":",[49,50,51,64],"table",{},[52,53,54],"thead",{},[55,56,57,61],"tr",{},[58,59,60],"th",{},"Package",[58,62,63],{},"Version in 26.04 LTS",[65,66,67,78,88,98,108,118,128,138,148,158,168,182],"tbody",{},[55,68,69,73],{},[70,71,72],"td",{},"Linux kernel",[70,74,75],{},[20,76,77],{},"7.0",[55,79,80,83],{},[70,81,82],{},"systemd",[70,84,85],{},[20,86,87],{},"259.5",[55,89,90,93],{},[70,91,92],{},"Python",[70,94,95],{},[20,96,97],{},"3.14",[55,99,100,103],{},[70,101,102],{},"OpenSSH server",[70,104,105],{},[20,106,107],{},"10.2p1",[55,109,110,113],{},[70,111,112],{},"OpenSSL",[70,114,115],{},[20,116,117],{},"3.5",[55,119,120,123],{},[70,121,122],{},"Nginx",[70,124,125],{},[20,126,127],{},"1.28",[55,129,130,133],{},[70,131,132],{},"Apache",[70,134,135],{},[20,136,137],{},"2.4.x",[55,139,140,143],{},[70,141,142],{},"MariaDB",[70,144,145],{},[20,146,147],{},"11.8",[55,149,150,153],{},[70,151,152],{},"PostgreSQL",[70,154,155],{},[20,156,157],{},"18",[55,159,160,163],{},[70,161,162],{},"PHP",[70,164,165],{},[20,166,167],{},"8.5",[55,169,170,177],{},[70,171,172,173,176],{},"Docker (",[33,174,175],{},"docker.io",")",[70,178,179],{},[20,180,181],{},"29.1",[55,183,184,187],{},[70,185,186],{},"GNOME Shell",[70,188,189],{},[20,190,191],{},"50.1",[16,193,194],{},"Three changes actually move the needle for operations:",[196,197,198,209,219],"ul",{},[199,200,201,204,205,208],"li",{},[20,202,203],{},"Kernel 7.0"," (released April 12, eleven days before Ubuntu itself). Improvements in ",[33,206,207],{},"io_uring",", memory management and newer hardware support (Intel Xe3, NPUs, 200\u002F400 GbE NICs). Most web servers won't notice the difference; if you run I\u002FO-heavy workloads (large databases, queues), you will.",[199,210,211,214,215,218],{},[20,212,213],{},"systemd 259",". The headline: ",[20,216,217],{},"cgroup v1 support is gone"," (it was removed back in systemd 258). If your server depends on legacy hierarchy setups, head to the \"What breaks\" section below.",[199,220,221,224],{},[20,222,223],{},"OpenSSH 10",". Changes to default algorithms, DSA finally retired, post-quantum key exchange tightened. If you still have very old clients connecting over SSH, validate first.",[16,226,227,228,231,232,235,236,239,240,243],{},"Canonical also bakes in native support for ",[20,229,230],{},"NVIDIA CUDA and AMD ROCm",", ",[20,233,234],{},"NVIDIA DOCA-OFED"," and ",[20,237,238],{},"TPM-backed full-disk encryption",", plus ",[20,241,242],{},"Livepatch for ARM servers",". If your client runs a small VPS, none of that matters; if you manage GPU servers for AI workloads, it's a major upgrade.",[11,245,247],{"id":246},"what-breaks-and-who-it-affects","What breaks (and who it affects)",[16,249,250],{},"A Ubuntu LTS upgrade is never \"click update, walk away\". These are the friction points we actually see in the wild:",[252,253,255],"h3",{"id":254},"_1-cgroup-v1-is-gone-old-docker-and-misconfigured-lxc","1. cgroup v1 is gone → old Docker and misconfigured LXC",[16,257,258],{},"systemd 259 no longer mounts the legacy cgroup hierarchy. That affects:",[196,260,261,267,280],{},[199,262,263,266],{},[20,264,265],{},"Docker older than 20.10"," (July 2020). In practice: anywhere the daemon hasn't been updated in years.",[199,268,269,272,273,276,277,36],{},[20,270,271],{},"Very old LXC\u002FLXD"," configured with ",[33,274,275],{},"lxc.cgroup.*"," instead of ",[33,278,279],{},"lxc.cgroup2.*",[199,281,282,283,231,286,289,290,293],{},"Custom scripts that write to ",[33,284,285],{},"\u002Fsys\u002Ffs\u002Fcgroup\u002Fmemory\u002F",[33,287,288],{},"\u002Fsys\u002Ffs\u002Fcgroup\u002Fcpu\u002F"," and so on (the v1 paths) rather than ",[33,291,292],{},"\u002Fsys\u002Ffs\u002Fcgroup\u002F\u003Cunit>"," (the unified v2 path).",[16,295,296],{},"If you're not sure, on the current server:",[298,299,304],"pre",{"className":300,"code":301,"language":302,"meta":303,"style":303},"language-bash shiki shiki-themes github-light github-dark","mount | grep cgroup\n# If you see \"cgroup2 on \u002Fsys\u002Ffs\u002Fcgroup\", you're already on v2.\n# If you see many lines with \"cgroup on \u002Fsys\u002Ffs\u002Fcgroup\u002F...\", you're still on v1.\n","bash","",[33,305,306,326,333],{"__ignoreMap":303},[307,308,311,315,319,322],"span",{"class":309,"line":310},"line",1,[307,312,314],{"class":313},"sScJk","mount",[307,316,318],{"class":317},"szBVR"," |",[307,320,321],{"class":313}," grep",[307,323,325],{"class":324},"sZZnC"," cgroup\n",[307,327,329],{"class":309,"line":328},2,[307,330,332],{"class":331},"sJ8bj","# If you see \"cgroup2 on \u002Fsys\u002Ffs\u002Fcgroup\", you're already on v2.\n",[307,334,336],{"class":309,"line":335},3,[307,337,338],{"class":331},"# If you see many lines with \"cgroup on \u002Fsys\u002Ffs\u002Fcgroup\u002F...\", you're still on v1.\n",[16,340,341,342,345],{},"There's a temporary escape hatch (",[33,343,344],{},"SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1"," on the kernel command line), but it's a stopgap, not a long-term plan.",[252,347,349],{"id":348},"_2-python-314-by-default","2. Python 3.14 by default",[16,351,352],{},"Python 3.14 brings real changes: optional GIL (experimental \"no-GIL\" mode), interpreter performance gains and overdue deprecations. If your application drags dependencies stuck on Python 3.10 or 3.11, test thoroughly before upgrading.",[252,354,356],{"id":355},"_3-openssl-35-and-openssh-10","3. OpenSSL 3.5 and OpenSSH 10",[16,358,359],{},"Anything still linked against OpenSSL 1.1 has been unsupported for years, but it does still show up occasionally. OpenSSH 10 also tightens default algorithms: if you depend on very old machines connecting in, check that their clients can still negotiate something acceptable in 2026.",[252,361,363],{"id":362},"_4-legacy-packages-retired","4. Legacy packages retired",[16,365,366,367,370,371,374],{},"Each LTS leaves behind packages no longer maintained. The practical move is to run ",[33,368,369],{},"do-release-upgrade -d"," on a ",[20,372,373],{},"clone of the server"," and read the \"obsolete packages\" summary before touching production.",[11,376,378],{"id":377},"when-to-upgrade-now","When to upgrade now",[196,380,381,388,395,402,409],{},[199,382,383,384,387],{},"Your server runs ",[20,385,386],{},"22.04 LTS"," and standard support is about to expire (April 2027). Jumping straight to 26.04 buys you another 5 quiet years without stopping at 24.04.",[199,389,390,391,394],{},"You're ",[20,392,393],{},"provisioning a new VPS"," or reinstalling a compromised one. There's no reason to start with 24.04 at this point.",[199,396,397,398,401],{},"You need ",[20,399,400],{},"recent hardware"," (newer GPUs, NPUs, 200 GbE NICs) that older releases only support via external repos.",[199,403,404,405,408],{},"You want to lock in the ",[20,406,407],{},"Pro support window until 2036"," from the start of the cycle, not halfway through.",[199,410,411,412,417],{},"The ",[20,413,414,416],{},[33,415,207],{}," and memory"," improvements in kernel 7.0 matter for your demanding database workloads.",[11,419,421],{"id":420},"when-to-wait","When to wait",[196,423,424,431,442,449,456],{},[199,425,426,427,430],{},"Your project is ",[20,428,429],{},"frozen in production"," and only takes critical patches. If 24.04 holds out until 2029, there's no urgency.",[199,432,433,434,437,438,441],{},"You're running ",[20,435,436],{},"old Docker (\u003C 20.10)"," or ",[20,439,440],{},"scripts that depend on cgroup v1"," and can't refactor them in the short term.",[199,443,444,445,448],{},"Your application drags ",[20,446,447],{},"dependencies pinned to Python 3.11 or earlier"," with no updated alternative.",[199,450,451,452,455],{},"You rely on ",[20,453,454],{},"third-party PPAs"," that haven't published packages for 26.04 yet. The big ones (Ondrej PHP, official MariaDB, Postgres APT) usually take a few weeks to catch up.",[199,457,458,459,462],{},"The server ",[20,460,461],{},"earns money every day"," and you'd rather wait for 26.04.1 (typically out in July\u002FAugust, which clears up the loose ends of the initial X.04).",[16,464,465,466,472],{},"If in doubt, ",[20,467,468,469],{},"wait for ",[33,470,471],{},"26.04.1",". That point usually marks the moment the broader ecosystem (official Docker, Nginx PPA, PHP-FPM PPAs) is fully on board.",[11,474,476],{"id":475},"painless-migration-checklist","Painless migration checklist",[16,478,479],{},"This is the procedure we follow at Atenea when migrating a client VPS to a new LTS. It works and fits in a working day for a typical server.",[481,482,483,504,510,522,531,540,546,559,569,575],"ol",{},[199,484,485,488,489,492,493,496,497,500,501,36],{},[20,486,487],{},"Inventory the current server",". ",[33,490,491],{},"dpkg -l",", enabled services (",[33,494,495],{},"systemctl list-unit-files --state=enabled","), active PPAs (",[33,498,499],{},"ls \u002Fetc\u002Fapt\u002Fsources.list.d\u002F","), cron jobs, custom scripts under ",[33,502,503],{},"\u002Fusr\u002Flocal\u002Fbin\u002F",[199,505,506,509],{},[20,507,508],{},"Full VPS snapshot"," in the provider's panel before touching anything. That's your \"undo\" button if things go sideways.",[199,511,512,515,516,521],{},[20,513,514],{},"Independent backup"," (3-2-1 rule — ",[517,518,520],"a",{"href":519},"\u002Fen\u002Fblog\u002Flinux-server-backups-2026\u002F","more details here"," if you want them). The provider snapshot doesn't count as an off-site backup.",[199,523,524,527,528,530],{},[20,525,526],{},"Clone the VPS"," to a temporary machine and run ",[33,529,35],{}," there first. It's the only honest way to find out what breaks before touching production.",[199,532,533,539],{},[20,534,535,536],{},"Check ",[33,537,538],{},"journalctl -p err"," after the first boot in the clone. Any service throwing new errors will throw them in production too.",[199,541,542,545],{},[20,543,544],{},"Validate critical services"," one by one: nginx\u002Fapache respond, PHP-FPM serves a page, MariaDB accepts connections, OpenSSH negotiates with your usual keys, Let's Encrypt certificates still work.",[199,547,548,488,551,554,555,558],{},[20,549,550],{},"Check cgroup",[33,552,553],{},"mount | grep cgroup"," should show ",[33,556,557],{},"cgroup2",". If your stack uses Docker, confirm the installed version is ≥ 20.10.",[199,560,561,564,565,568],{},[20,562,563],{},"Update PPAs and external repos"," to their ",[33,566,567],{},"resolute"," packages. If one still doesn't have a package, decide whether to wait or disable it.",[199,570,571,574],{},[20,572,573],{},"Maintenance window"," announced to the client. Real production migration using the tested method. Usually 30-60 minutes for a typical VPS.",[199,576,577,580],{},[20,578,579],{},"Monitor for 24-48 hours afterwards",". Most problems don't show up at boot — they appear on the next overnight cron job or the first traffic spike.",[11,582,584,585,587],{"id":583},"will-do-release-upgrade-take-you-to-2404-or-2604-and-why-it-matters","Will ",[33,586,35],{}," take you to 24.04 or 26.04 (and why it matters)",[16,589,590,591,593,594,597],{},"By default, ",[33,592,35],{}," offers the latest ",[20,595,596],{},"stable LTS",", but the behaviour shifts between releases:",[196,599,600,614,623],{},[199,601,602,603,606,607,610,611,613],{},"If you're on ",[20,604,605],{},"22.04",", it will offer you ",[20,608,609],{},"24.04"," first. To reach 26.04 you have to go through 24.04, or use ",[33,612,369],{}," with the development option until 26.04 becomes the stable target.",[199,615,602,616,618,619,622],{},[20,617,609],{},", you'll be able to jump straight to ",[20,620,621],{},"26.04"," once Ubuntu flags the upgrade path as stable (typically with 26.04.1).",[199,624,625,626,629],{},"If you're on a ",[20,627,628],{},"non-LTS"," (24.10, 25.04, 25.10), you'll have to step through them linearly.",[16,631,632],{},"There's no safe shortcut to skip two LTS versions in one go. If anyone tells you otherwise, be sceptical.",[11,634,636],{"id":635},"frequently-asked-questions","Frequently asked questions",[16,638,639,645,646,649],{},[20,640,641,642,644],{},"Is ",[33,643,35],{}," safe to run directly on production if everything is fine?","\nTechnically yes; in practice, not recommended. Anything depending on the server (connected clients, cron, queues, long-running jobs) can get caught mid-way. If the site is commercial, ",[20,647,648],{},"migrate in an announced window",", not on a busy day.",[16,651,652,655],{},[20,653,654],{},"What if I'd rather \"wait for 26.04.1\"?","\nThat's a perfectly reasonable stance. 26.04.1 usually ships in July\u002FAugust and consolidates the patches accumulated in the first three months. For critical servers with no urgency, that wait is cheap insurance.",[16,657,658,661],{},[20,659,660],{},"Does Ubuntu Pro until 2036 cost money?","\nIt's free for personal use (up to 5 machines) and paid for businesses. If you manage production servers for clients, the per-machine cost easily pays for itself the first time it prevents a security incident.",[16,663,664,667,668,671,672,675],{},[20,665,666],{},"Does the cgroup v1 thing affect me if I only run nginx and PHP-FPM?","\nAlmost certainly ",[20,669,670],{},"no",". nginx, PHP-FPM, MariaDB, Postgres, Redis and the whole typical web stack have been on cgroup v2 for years without issues. The risk is concentrated in old Docker, inherited LXC containers and custom scripts that touch ",[33,673,674],{},"\u002Fsys\u002Ffs\u002Fcgroup\u002F"," directly.",[16,677,678,681],{},[20,679,680],{},"What about my favourite PPA (Ondrej PHP, official MariaDB, etc.) if it doesn't ship for 26.04 yet?","\nTypically a matter of weeks. Two options in the meantime: use the packages from the official Ubuntu repository (PHP 8.5 is there, MariaDB 11.8 too) or wait it out.",[11,683,685],{"id":684},"wrapping-up","Wrapping up",[16,687,688],{},"26.04 LTS isn't a revolution — it's a consolidation: kernel 7.0, systemd 259 free of the cgroup v1 baggage, modern crypto libraries and support through 2036 with Pro. For brand new servers, it's already the default choice. For production servers, the sensible path is: clone, test, validate, wait for 26.04.1 and migrate within an announced window.",[16,690,691,692,36],{},"If you've got a VPS on 20.04 or 22.04 that's due for an upgrade and you'd rather skip the clone-and-late-night-cutover routine, we can do it for you with no downtime and a clear rollback plan. ",[517,693,695],{"href":694},"\u002Fen\u002Fcontacto\u002F","Tell us what you're running and we'll point you to the right starting line",[697,698,699],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":303,"searchDepth":328,"depth":328,"links":701},[702,703,704,710,711,712,713,715,716],{"id":13,"depth":328,"text":14},{"id":39,"depth":328,"text":40},{"id":246,"depth":328,"text":247,"children":705},[706,707,708,709],{"id":254,"depth":335,"text":255},{"id":348,"depth":335,"text":349},{"id":355,"depth":335,"text":356},{"id":362,"depth":335,"text":363},{"id":377,"depth":328,"text":378},{"id":420,"depth":328,"text":421},{"id":475,"depth":328,"text":476},{"id":583,"depth":328,"text":714},"Will do-release-upgrade take you to 24.04 or 26.04 (and why it matters)",{"id":635,"depth":328,"text":636},{"id":684,"depth":328,"text":685},"2026-05-14","Ubuntu 26.04 LTS has been out since April 23, 2026. Here's what it actually ships, what it breaks, when it's worth upgrading now and when waiting is the smarter call.","md","\u002Fog\u002Fog-default.png",{},true,"ubuntu-26-04-lts-que-cambia-y-cuando-migrar","\u002Fen\u002Fblog\u002Fubuntu-26-04-lts-what-changes-when-to-upgrade",{"title":5,"description":718},"en\u002Fblog\u002Fubuntu-26-04-lts-what-changes-when-to-upgrade",[728,729,730,731],"Servers","Linux","Ubuntu","Migrations","XYYsk8gZg_gobK5OWZyatgWmFCw8p7KBW6zIFlvWt74",1778944558483]