Skip to content

Actualizando a Ubuntu 22.04

Por mor dun scriptiño Python que requería unha dependencia que requería… acabei decatándome de que tiña o servidor aínda en Ubuntu 20.04 (Groovy Gorilla), fóra de soporte.

Tan fóra de soporte estaba que nom che vos había ruta direita para actualizar á última versión de soporte a longo prazo, Ubuntu 22.10 (Jammy Jellyfish). De feito a primeira tentativa que fixen, hai uns días, tiroume o servidor abaixo sen poder entrar e tiven que restaurar un respaldo. Xa hoxe con máis tempo argallei outro modo de actualizar, que deixo aquí por se a alguén lle for útil.

En primeiro lugar tiven que modificar as rutas en /etc/apt/sources.list a estas:

deb http://old-releases.ubuntu.com/ubuntu/ groovy main universe restricted multiverse
deb http://old-releases.ubuntu.com/ubuntu/ groovy-security main universe restricted multiverse
deb http://old-releases.ubuntu.com/ubuntu/ groovy-updates main universe restricted multiverse
deb http://old-releases.ubuntu.com/ubuntu/ groovy-backports main restricted universe multiverse

Que indican os paquetes nos repositorios para releases vellas. Unha vez feito e corrido sudo apt update e sudo apt upgrade e sudo apt dist-upgrade podemos pasar ao seguinte paso.

Normalmente correríase sudo do-release-upgrade pero iso tenta chegar á última dispoñíbel e imaxino que foi iso o que ma tirou abaixo. En troques, decidín virme exactamente á última LTS, que era abondo. Fun a este listado oficial e localicei a 22.04 (jammy) e a súa liña da UpgradeTool:

UpgradeTool: http://archive.ubuntu.com/ubuntu/dists/jammy-updates/main/dist-upgrader-all/current/jammy.tar.gz

Bastou logo seguir os pasos aquí indicados para baixala e executala:

# Downloads the upgrader
wget http://archive.ubuntu.com/ubuntu/dists/jammy-updates/main/dist-upgrader-all/current/jammy.tar.gz
# Extract it into a new directory
mkdir upgrader
tar -xaf jammy.tar.gz -C upgrader
cd upgrader
# Run the executable
./jammy

Durante o proceso deume algún erro con Apache (que non sei porque o tiña, se eu uso Nginx, así que o arranxei desinstalándoo) e con algo chamado usrmerge. Este queixábase de que tiña uns binarios duplicados ciscados por aí. Borrei os que non estaban en cartafoles de alternative e acabou por ir.

Aí xa comprobei, con risco e nervos, que podía reiniciar o servidor e non quedaba fóra como a outra vez. Primeiro fito acadado.

Mais falláronme o Python e o Pip cuns erros estranos de actualización mal feita, e tiven que purgar e borrar as instalacións un par de veces por todas partes até que as din reinstalado e funcionaron.

Logo, reaxustar Nginx para funcionar con PHP 8.1, que antes tiña o 7.4 e reconfigurar axeitadamente o novo php.ini, activando mysqli e subindo os límites de cargas e timeouts. E aproveitei xa que estaba para actualizar phpMyAdmin. E para actualizar FoundryVTT.

Rexurdiron logo máis problemas con paquetes Python que arranxei reinstalando primeiro con sudo -H pip install -U --ignore-installed XXX, logo quitando con sudo -H pip uninstall XXX e finalmente instalando como paquetes de apt (por exemplo python3-netifaces e python3-yaml). Outro éxito.

Ah, porque si, desde o comezo estaba sen DNS. Fun tirando metendo a pincho nameserver 8.8.8.8 en /etc/resolv.conf, pero o problema era que Ubuntu polo camiño deixou de usar a config en /etc/network/interfaces.d para basearse en systemd-resolved, que a ten en /etc/netplan, e por iso non me collia os DNS axeitados.

Probei con cousas tipo engadir a /etc/netplan/00-installer-config.yaml o seguinte:

network:
  ethernets:
    ens3:
      dhcp4: true
  version: 2

Pero seguía sen ir, e finalmente a solución foi instalar resolvconf con apt e logo correr sudo dpkg-reconfigure resolvconf. Iso pareceu xerar o /etc/resolv.conf cos valores correctos. Ou talvez foi correr sudo netplan apply? Xa nin sei.

Buf! Por esta noite, ata aquí. Un ano de estos debería borrar todo e comezar con un Ubuntu fresquiño de cero, pero xa chegará. Polo de agora todo parece ir como antes: penso que xa é momento de facer un novo respaldo.