Eu entendo que opiniões não são incentivadas aqui, mas isso não é um pedido de opinião. Eu gostaria de explicar a situação.
Herdei um VPS com Ubuntu 14.04.6 LTS e atualmente estou enfrentando um cenário de comédia trágica.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.6 LTS
Release: 14.04
Codename: trusty
$ uname -r
5.19.2-x86_64-linode156
No passado, converti com sucesso o Ubuntu em Debian modificando o repositório e atualizando manualmente pacotes individuais com cuidado.
Gostaria de pedir sua opinião sobre isso:
- Qual é a versão mais semelhante do Debian e é realmente possível mudar o Ubuntu 14 para um Debian antigo? Pergunto porque me lembro mal, não estou pronto para dizer que tenho 100% de certeza de ter feito uma troca no passado; é apenas algo que eu me lembro
- Existe uma maneira em 2023 de atualizar o servidor para o próximo LTS do Ubuntu sem fazer o grande salto para o LTS mais recente?
Eu não recomendaria a transição entre o Ubuntu e o Debian para esse vintage devido aos diferentes sistemas de inicialização. O Ubuntu 14.04 usa o Upstart, que o Debian nunca adotou.
Você pode atualizar para um Ubuntu mais recente. Você precisa fazer uma versão LTS de cada vez, ou seja, 14.04 → 16.04 → 18.04 → 20.04 → 22.04. Isso leva tempo, mas o risco é baixo, especialmente em um servidor. A maior fonte de problemas geralmente são aplicativos de terceiros e, às vezes, interações entre pacotes no universo. Um VPS típico tem menos probabilidade de ter problemas do que um desktop típico.
Antes de começar, dê uma olhada no que o VPS está executando e tenha um plano para lidar com as dependências do software antigo. Por exemplo, se você tiver algum código PHP antigo, primeiro teste se ele funciona com versões modernas do PHP.
Preparando para a atualização
Todas as versões do Ubuntu são arquivadas no servidor de versões antigas . Portanto, a primeira coisa que você precisa fazer é editar
/etc/apt/sources.list
para substituirarchive.ubuntu.com
porold-releases.ubuntu.com
. Certifique-se também de tertrusty-updates
como fonte de pacote e assim por diante para as versões subsequentes: geralmente há algumas atualizações perto do fim da vida útil de uma versão para corrigir problemas encontrados ao atualizar para a próxima versão. Então o seu/etc/apt/sources.list
deve ficar assim:Você pode ter várias linhas em vez de uma. Você pode estar perdendo alguns de
restricted
,universe
emultiverse
: isso também é bom (e, na verdade, quanto menos você tiver, menos fontes de problemas potenciais, mas é claro que eles precisam permanecer se você tiver algum pacote instalado a partir deles).Em seguida, execute todas as atualizações pendentes para esta versão antiga com
Neste ponto, recomendo manter um histórico de suas alterações no
/etc
. Você pode fazer isso muito facilmente com o etckeeper .Se você tiver repositórios de terceiros ativados (por exemplo, PPAs), deverá desativá-los e desinstalar os pacotes correspondentes durante a atualização. Se houver algum desses repositórios, primeiro comente as linhas correspondentes em
/etc/apt/sources.list
ou/etc/apt/sources.list.d/*
. Corraetckeeper commit
para manter um registro de sua alteração. Em seguida, procure por pacotes obsoletos (pacotes obsoletos são pacotes que você não pode reinstalar a partir das fontes de pacotes atuais):Você pode usar o modo interativo do aptitude se preferir. Anote os pacotes obsoletos e desinstale-os.
Atualizando de LTS para LTS
Agora você está pronto para começar a atualizar. Edite
/etc/apt/sources.list
e substituatrusty
(14.04) porxenial
(16.04). Corraetckeeper commit
para manter um registro de sua mudança. Então corraHaverá longos períodos de tédio enquanto isso baixa e instala pacotes, com perguntas ocasionais aqui e ali.
Se houver problemas, resolva-os à medida que surgirem.
Quando a atualização estiver concluída, repita o procedimento para atualizar para
bionic
(18.04). Este ainda está nos servidores normais, e não no servidor de versões antigas no momento em que escrevo esta resposta, portanto, além de substituir porxenial
,bionic
substitua tambémold-releases.ubuntu.com
porarchive.ubuntu.com
.Em seguida, repita novamente para atualizar para
focal
(20.04) e depoisjammy
(22.04).Feito isso, se você tiver repositórios de terceiros ativados, reative-os ou procure por seus equivalentes modernos. Reinstale os aplicativos de terceiros que você removeu antes da atualização e, se relevante, atualize os que você manteve
/usr/local
ou similares. Teste se tudo funciona.Lidando com chaves e certificados expirados
Você pode ter problemas com a verificação criptográfica devido a chaves expiradas ou CAs raiz desconhecidas.
Se as fontes do pacote HTTPS não funcionarem até que você atualize para versões não antigas, atenha-se às fontes do pacote HTTP no início.
Se você receber erros do APT sobre chaves expiradas, você pode ignorá-los . Como alternativa, instalar um pacote de chaveiro de uma distribuição mais recente pode ajudar, mas não sei exatamente do que você precisa. O pacote ubuntu-keyring contém um arquivo
/usr/share/keyrings/ubuntu-archive-removed-keys.gpg
com as chaves para lançamentos antigos, além do/usr/share/keyrings/ubuntu-archive-keyring.gpg
qual possui as chaves para lançamentos atuais.