back_button

2025/04/04

8. Mudando do CentOS para o Oracle Linux

Em dezembro de 2020, o blog oficial do CentOS anunciou que o desenvolvimento do CentOS seria encerrado e que ele seria transferido para o CentOS Stream. O anúncio do fim do CentOS, que anteriormente tinha uma presença esmagadora como uma distribuição compatível com o RHEL (clone do RHEL), foi uma grande surpresa.

Quase três anos se passaram desde o anúncio do fim do CentOS em 2020, e várias alternativas ao CentOS surgiram. Neste artigo, explicaremos a situação atual do CentOS e do pós-CentOS, e como migrar para o Oracle Linux, que é um destino promissor de migração.

Fim do CentOS e CentOS Stream

Para entender a situação atual do CentOS, explicaremos uma visão geral do fim do CentOS e do novo CentOS Stream.

Anúncio do Fim de Vida do CentOS

O anúncio do fim do CentOS foi publicado no blog oficial do CentOS, “O Projeto CentOS muda o foco para o CentOS Stream.”

O conteúdo deste blog pode ser resumido da seguinte forma:

  • O CentOS 8 encerrará o suporte em 31 de dezembro de 2021
  • O CentOS 7 será suportado até 30 de junho de 2024, como de costume.
  • O CentOS fará a transição para o CentOS Stream no futuro
  • O CentOS Stream é o ramo upstream (desenvolvimento) do RHEL. Ele é posicionado de forma diferente das reconstruções tradicionais.
  • Os usuários do CentOS 8 são incentivados a migrar para o CentOS Stream, que tem menos diferenças, ou para o RHEL se estiverem preocupados em usá-lo em um ambiente de produção.

Além disso, do ponto de vista do usuário, isso pode ser expresso da seguinte forma:

  • O suporte ao CentOS terminará em breve, então você precisa considerar a migração imediatamente.
  • No momento (setembro de 2023), o suporte ao CentOS 8 terminou, e o suporte ao CentOS 7 terminará em junho de 2024. Após o fim do suporte, os pacotes de atualização não serão mais fornecidos e o repositório Yum não estará mais disponível.
  • Nenhum pacote de atualização é fornecido, aumentando os riscos de segurança
  • O CentOS Stream não é uma reconstrução do RHEL como o CentOS, mas é posicionado como uma versão de desenvolvimento. Portanto, há problemas em usá-lo em um ambiente de produção, pelo menos.

Diferenças entre CentOS e CentOS Stream

O CentOS era uma distribuição Linux compatível com o RHEL, também conhecida como um clone do RHEL. Portanto, é compatível com o RHEL e é quase idêntico no nível do código-fonte. A propósito, eu apresentei o seguinte diagrama no artigo anterior, “Você está usando o Oracle Linux? (Parte 1)“.

Por outro lado, o CentOS Stream é uma construção noturna (Nightly build) do RHEL que é lançada em uma base de lançamento contínuo (rolling release). Uma construção noturna é uma compilação gerada usando o código-fonte mais recente de um projeto de desenvolvimento e é diferente da versão oficial de lançamento.

É um pouco difícil de entender porque é diferente do que tínhamos até agora, mas o seguinte diagrama publicado pelo Projeto CentOS deve ajudar. Por exemplo, o RHEL 8 (≓ CentOS 8) foi criado ao ramificar o Fedora 28. Em seguida, 8.2 e 8.3 foram lançados nessa ordem, e erratas foram criadas para cada um. Dependendo das configurações do SO, também é possível atualizar de 8.3 para o mais recente 8.8.

Fonte: CentOS Stream é Entrega Contínua licenciado sob CC BY-SA 4.0

O CentOS Stream é um sistema de lançamento contínuo, então não há versões menores como 8.2 ou 8.3. Ele apenas tem a data de lançamento. Se você olhar a imagem ISO publicada no site espelho, ela tem uma data como 20230825. Além disso, no site espelho, 20230825 e latest são os mesmos, e o conteúdo de latest é sempre atualizado.

Além disso, ao olhar para o nível de pacotes individuais, não há garantia de que o CentOS Stream e o RHEL sejam idênticos. Como as mudanças são feitas primeiro no CentOS Stream, ao comparar as versões mais recentes, o CentOS Stream é mais novo e pode ser considerado uma versão que ainda não foi testada em produção.

Espero que você entenda que, embora o CentOS e o CentOS Stream sejam funcionalmente semelhantes, suas posições são bastante diferentes. É por isso que causou tanto alvoroço ao redor do mundo. As diferenças entre o CentOS e o CentOS Stream são descritas em detalhes no “Blog do Engenheiro Akahato da Red Hat: A Relação Entre Fedora/CentOS Stream/CentOS/RHEL“. Dê uma olhada se estiver interessado.

Período de suporte para cada distribuição Linux

Este artigo apresenta o período de suporte para distribuições Linux baseadas no RHEL. A única versão do CentOS atualmente suportada é o CentOS 7, que será suportado até 30 de junho de 2024. Não há CentOS 9. Portanto, se você está usando o CentOS atualmente, precisará migrar para uma das outras distribuições Linux.

Versão Fim do suporte(*1)
CentOS 72024/06/30
CentOS 82021/12/31
CentOS Stream 82024/05/31
CentOS Stream 9Indeciso (programado para ser o mesmo que o RHEL 9)
Red Hat Enterprise Linux 72024/06/30
Red Hat Enterprise Linux 82029/05/31
Red Hat Enterprise Linux 92032/05/31
Oracle Linux 72024/12
Oracle Linux 82029/07
Oracle Linux 92032/06

*1: O fim do suporte para o Oracle Linux é o fim do Suporte Premier. O Suporte Estendido e o Suporte Sustentado serão fornecidos por um período mais longo.

Opções de migração do CentOS

Vamos considerar as distribuições Linux que são candidatas à migração do CentOS. Considerando a facilidade de migração, a série RHEL é a melhor, e as principais opções são as seguintes:

  • CentOS Stream
  • Red Hat Enterprise Linux
  • Oracle Linux
  • AlmaLinux
  • Rocky Linux
  • MIRACLE LINUX
  • Amazon Linux

AlmaLinux e Rocky Linux são distribuições Linux que nasceram da reação ao fim do CentOS. Ambos são patrocinados por grandes empresas e também são oferecidos na nuvem pública.

Qual você escolhe depende de fatores como seu propósito e orçamento, então é difícil dizer qual é incondicionalmente melhor. A tabela a seguir compara-os do ponto de vista do uso empresarial. Para uso empresarial, fatores importantes incluem a duração do período de suporte, se há ou não suporte pago disponível, se há ou não hardware suportado disponível, se os pacotes comerciais são suportados e o custo.

Distribuição Licença/Assinatura Suporte pago Método de Migração Contras e pontos negativos
CentOS StreamNão necessárioNenhumSubstituição de repositórioParece ser altamente estável, mas é preciso ter cuidado. Não é compatível com o RHEL tradicional, então não há hardware suportado e os pacotes comerciais não são suportados. Você consegue convencer seu chefe ou clientes?
Red Hat Enterprise LinuxNecessárioPode serFerramentas de migração disponíveisLíder da indústria, mas requer assinatura e Acordo Empresarial da Red Hat
Oracle LinuxNão necessário, mas alguns recursos estão disponíveis apenas para usuários de suporte pagoPode serFerramentas de migração disponíveisTem um longo histórico e é usado para aplicações críticas como o Exadata. Não é bem conhecido entre os usuários de produtos Oracle.
AlmaLinux/Rocky LinuxNão necessárioSuporte pago disponível (incluindo suporte de terceiros)Ferramentas de migração disponíveisÉ uma nova distribuição, então você precisa observá-la.
Amazon LinuxNão necessárioPode serSem ferramentas fornecidas pelo fornecedorPode ser usado localmente e tem alta compatibilidade com AWS. Como é baseado no Fedora, a compatibilidade não é alta e o período de suporte é curto, cerca de 5 anos.
MIRACLE LINUXNão necessárioPode serFerramentas de migração disponíveisEmbora tenha um longo histórico, não é bem conhecido entre os fornecedores domésticos.

Mudança do CentOS para o Oracle Linux usando ferramentas de migração

O Oracle Linux fornece um script centos2ol.sh que muda o CentOS para o Oracle Linux no local. Desta vez, usaremos este script para mudar o CentOS 8 para o Oracle Linux 8. O procedimento para mudar para o CentOS 7 é quase o mesmo.

A Oracle lançou vários documentos, então nesta coluna entraremos em alguns detalhes sobre alguns deles enquanto destacamos os pontos principais.

Para executar o script de migração:

Os passos para executar o script de migração são os seguintes. Os passos preparatórios de 1 a 3 exigem vários comandos. No entanto, os passos de migração 4 e 5 podem ser realizados com um número mínimo de comandos.

  1. Verificar as restrições
  2. Backup do sistema (omitido no texto)
  3. Preparação do CentOS de origem
  4. Execução do script de migração
  5. Verificação pós-migração

Verificar as restrições

As limitações da ferramenta de migração são as seguintes. Por enquanto, você só precisa estar ciente dessas limitações, e nós as verificaremos na próxima seção, “Preparação do CentOS de origem.”

  1. A origem é CentOS 6, 7, 8 ou Rocky Linux 8, 9
  2. Acesso aos repositórios Yum do CentOS e do Oracle Linux, diretamente ou via proxy
  3. A instância não está registrada em uma ferramenta de gerenciamento de pacotes de terceiros, como o Spacewalk.
  4. Se você instalou pacotes de fontes além do repositório oficial do CentOS, eles podem ser compatíveis, mas não garantimos que funcionarão. Alguns softwares /etc/oracle-release podem causar problemas se estiverem instalados.
  5. Se alguns módulos do kernel estiverem instalados, como produtos antivírus comerciais ou drivers de hardware, eles podem não funcionar após a mudança.
  6. O script de migração habilita apenas os repositórios base, como base, updates e BaseOS. Se você instalou pacotes de outros repositórios, pode precisar habilitar repositórios adicionais.
  7. /var/cache tem pelo menos 5GB de espaço livre

Preparando o CentOS de origem

Aqui, garantiremos que não estamos violando nenhuma restrição do script.

Observe que os passos preparatórios exigem privilégios de administrador, então você deve colocar sudo antes do comando ou usar su para executá-lo como usuário root. Omiti o sudo para enfatizar a simplicidade da aparência. Além disso, o CentOS 8 recomenda o dnf em vez do yum, mas mantive o yum porque é compatível.

1. Verificar a versão do CentOS

Faça login na origem e verifique a versão do CentOS. Se for 8, como mostrado abaixo, não há problema.

# cat /etc/centos-release
CentOS Linux release 8.3.2011

2. Verificar a conexão com o repositório Yum do CentOS

Verifique se você pode se conectar ao repositório Yum do CentOS. O CentOS 8 não tem mais um repositório no site espelho, então, se você não conseguir se conectar, receberá o seguinte erro:

# yum check-update
CentOS Linux 8 - AppStream                       51  B/s |  38  B     00:00
Erro: Falha ao baixar os metadados do repositório 'appstream': Não é possível preparar a lista de espelhos interna: Nenhum URL na lista de espelhos

Se ocorrer um erro, altere o repositório que você está apontando executando o seguinte comando:

# sed -i -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http:\/\/mirror/baseurl=http:\/\/vault/g' /etc/yum.repos.d/CentOS-*repo

Se o repositório estiver disponível, os metadados do repositório serão baixados e os pacotes atualizáveis serão exibidos como abaixo.

# yum check-update
CentOS Linux 8 - AppStream                       16 MB/s | 8.4 MB     00:00
CentOS Linux 8 - BaseOS                         9.2 MB/s | 4.6 MB     00:00
CentOS Linux 8 - Extras                          46 kB/s |  10 kB     00:00

NetworkManager.x86_64         1:1.32.10-4.el8       baseos
NetworkManager-libnm.x86_64   1:1.32.10-4.el8       baseos

3. Verificar se não há pacotes problemáticos

Verifique os kernels e pacotes instalados fora dos repositórios base (anaconda, base, baseos, updates, AppStream, etc.). Os kernels são particularmente problemáticos, então remova o kernel centosplus se estiver presente.

Exibe o kernel instalado. O nome do repositório de onde ele foi instalado é exibido à extrema direita. Este exemplo está bem.

# yum list installed kernel
kernel.x86_64                 4.18.0-240.el8        @anaconda

Para verificar não apenas o kernel, mas também pacotes instalados fora do repositório base, use o seguinte comando. Se houver pacotes instalados de repositórios de terceiros como o EPEL, os pacotes relevantes serão exibidos. No entanto, pacotes do espaço do usuário raramente são um problema.

# rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep -v "CentOS"

4. Verificar o repositório base

Verifique se os repositórios base estão habilitados. Se estiverem desabilitados, habilite-os.

# yum repolist
repo id                nome do repositório
appstream              CentOS Linux 8 - AppStream
baseos                 CentOS Linux 8 - BaseOS
extras                 CentOS Linux 8 - Extras

Se algum repositório estiver desabilitado, habilite-o.

# dnf config-manager --enable BaseOS AppStream extras

Além disso, se a seguinte mensagem começando com “Este sistema está” for exibida no início, o sistema está registrado no Spacewalk, etc. O script de migração não pode ser usado, então remova-o do gerenciamento ou desista de usar o script.

# yum repolist
...
Este sistema está recebendo atualizações do servidor Red Hat Satellite ou Spacewalk
repo id                       nome do repositório

5. Atualizações de pacotes

Atualize os pacotes para a versão mais recente. Embora a atualização para a versão mais recente não seja obrigatória, ela será atualizada quando você executar o script de migração, então o resultado será o mesmo no final.

# yum update -y

6. Verificar o espaço livre em disco

Verifique se /var/cache tem pelo menos 5GB de espaço livre.

# df -h /var/cache
Sistema de arquivos            Tamanho  Usado  Disp  Uso% Montado em
/dev/mapper/cl_centos8-root    47G    1.7G   46G    4% /

7. Desabilitar atualizações automáticas de pacotes

Se as atualizações automáticas de pacotes estiverem ativadas enquanto o script de migração estiver em execução, elas não funcionarão corretamente, então devem ser desabilitadas. O CentOS tem dois tipos de atualizações automáticas de pacotes:

  • yum-cron (CentOS 7) ou dnf-automatic (CentOS 8)
  • Packagekit embutido no ambiente de desktop

Se você não tiver o desktop instalado, verifique o yum-cron ou dnf-automatic. Se tiver o desktop instalado, você deve verificar ambos.

7-1. Desabilitar dnf-automatic

Verifique se o dnf-automatic está instalado. Se nada for exibido como abaixo, passe para “7-2. Desabilitar Packagekit”.

# rpm -qa | grep dnf-automatic
★Se nada for exibido, não está instalado

Quando instalado, verifique as configurações do temporizador. No exemplo a seguir, os downloads automáticos (dnf-automatic-download.timer) estão habilitados.

# systemctl list-unit-files --type=timer | grep dnf-auto
dnf-automatic-download.timer   habilitado
dnf-automatic-install.timer    desabilitado
dnf-automatic-notifyonly.timer desabilitado
dnf-automatic.timer            desabilitado

Se algum deles estiver habilitado, desabilite todos.

# systemctl disable dnf-automatic-download.timer --now
7-2. Desabilitar Packagekit

Se você tiver um ambiente GUI instalado, verifique o Packagekit.

# systemctl status packagekit

Quando diz “active (running)” como mostrado na marca ★, ele está em execução. Se o serviço Packagekit em si não existir, dirá “Unit packagekit.service could not be found.” Isso não é relevante neste caso.

● packagekit.service - Daemon PackageKit
   Loaded: carregado (/usr/lib/systemd/system/packagekit.service; estático; predefinição do fornecedor: desabilitado)
   Active: ★ativo (em execução)★ desde Ter 15 Ago 2023 09:31:27 GMT; 59s atrás
 Main PID: 21960 (packagekitd)
    Tasks: 3
   CGroup: /system.slice/packagekit.service
           └─21960 /usr/libexec/packagekitd

15 Dez 09:31:26 centos7 systemd[1]: Iniciando Daemon PackageKit...
15 Dez 09:31:27 centos7 PackageKit[21960]: início do daemon
15 Dez 09:31:27 centos7 systemd[1]: Daemon PackageKit iniciado.

Quando o Packagekit estiver em execução, pare o serviço e desative a inicialização automática.

# systemctl disable packagekit --now

8. Baixar o script de migração

Baixe o script de migração. Se você precisar de um proxy para acessar a Internet, especifique o servidor proxy nas opções --proxy ou variáveis de ambiente https_proxy.

# curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh

Verifique as opções disponíveis.

# bash centos2ol.sh -h
Uso: centos2ol.sh [OPÇÕES]

OPÇÕES
-h
        Exibir esta ajuda e sair
-k
        Não instalar o kernel UEK e desabilitar repositórios UEK
-r
        Reinstalar todos os RPMs do CentOS com RPMs do Oracle Linux
        Nota: Isso não é necessário para suporte
-V
        Verificar informações do RPM antes e depois da mudança

Executando os Scripts de Migração

Agora que tudo está pronto, execute o script de migração para mudar para o Oracle Linux. O tempo que leva para executar depende do número de pacotes instalados, da velocidade da linha e do desempenho da máquina. No ambiente que testei, levou de 10 a 60 minutos.

# bash centos2ol.sh

Se o script for executado com sucesso, a seguinte mensagem será exibida:

Sincronização bem-sucedida.
Atualizando o carregador de inicialização GRUB2.
Gerando arquivo de configuração do grub ...
concluído
Mudando o kernel de inicialização padrão para o UEK.
Removendo o cache do yum
Mudança concluída.
A Oracle recomenda reiniciar este sistema.

Siga a mensagem para reiniciar o sistema.

# systemctl reboot

Verificação pós-migração

Após a reinicialização, verifique como está seu sistema.

  1. /etc/oracle-release foi adicionado e /etc/centos-release foi removido.
$ ls -l /etc/*-release
-rw-r--r--. 1 root root  32  7 Ago 00:03 /etc/oracle-release
-rw-r--r--. 1 root root 489  7 Ago 00:03 /etc/os-release
-rw-r--r--. 1 root root  45  7 Ago 00:03 /etc/redhat-release
lrwxrwxrwx. 1 root root  14  7 Ago 00:03 /etc/system-release -> oracle-release
  1. Antes da migração, a versão era CentOS 8.3, mas agora é o Oracle Linux 8.8 mais recente. Se você migrar usando o script de migração, ele se tornará a versão mais recente.
$ cat /etc/oracle-release
Oracle Linux Server release 8.8
  1. O kernel padrão é o UEK, não o RHCK. Se você não quiser usar o UEK, especifique centos2ol.sh -k ao executar o script da seguinte forma:
$ uname -r
5.4.17-2136.322.6.2.el8uek.x86_64
  1. Verifique se algum pacote do CentOS permaneceu. Os seguintes kernels são exibidos. Eles não estão em uso, então podem ser excluídos.
$ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep CentOS | sort -n
kernel-4.18.0-240.el8   CentOS
kernel-core-4.18.0-240.el8      CentOS
kernel-modules-4.18.0-240.el8   CentOS
  1. Vamos dar um passo adiante e exibir a lista de pacotes relacionados ao kernel. Podemos ver que o kernel anterior do CentOS e o RHCK e UEK mais recentes para o Oracle Linux estão instalados.
# rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep kernel- | sort -n
kernel-4.18.0-240.el8   CentOS
kernel-4.18.0-477.21.1.el8_8    Oracle America
kernel-core-4.18.0-240.el8      CentOS
kernel-core-4.18.0-477.21.1.el8_8       Oracle America
kernel-modules-4.18.0-240.el8   CentOS
kernel-modules-4.18.0-477.21.1.el8_8    Oracle America
kernel-tools-4.18.0-477.21.1.el8_8      Oracle America
kernel-tools-libs-4.18.0-477.21.1.el8_8 Oracle America
kernel-uek-5.4.17-2136.322.6.2.el8uek   Oracle America
  1. Verifique os repositórios habilitados, você verá que eles foram substituídos pelos do Oracle Linux.
yum repolist
repo id           nome do repositório
ol8_UEKR6         Último Lançamento do Kernel Empresarial Inquebrável 6 para Oracle Linux 8 (x86_64)
ol8_appstream     Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest Oracle Linux 8 BaseOS Mais Recente (x86_64)

Conclusão

Ao usar o script de migração, você pode ver que é muito fácil mudar do CentOS para o Oracle Linux. A parte mais trabalhosa é o trabalho de verificação preliminar. Além disso, embora não tenha sido explicado no texto principal, certifique-se de fazer um backup antes de executá-lo.

Resumo

  • O suporte ao CentOS está terminando em breve, então você precisa migrar rapidamente.
  • O Oracle Linux é um alvo provável de migração
  • O script de migração centos2ol.sh facilita a mudança do CentOS para o Oracle Linux.
  • O tempo de migração é de cerca de 10 a 60 minutos por servidor. Depende do número de pacotes instalados, do desempenho do servidor e da velocidade da linha.
  • O script tem algumas limitações, como ser capaz de se conectar a repositórios da internet.

A indústria de clones do RHEL está em turbulência desde o final de 2020, mas em 2023, há outro alvoroço. A Red Hat anteriormente liberava o código-fonte do RHEL, mas anunciou que ele não será mais tornado público no futuro (veja o link abaixo). Em resposta, alguns fornecedores anunciaram contramedidas. A Oracle não apenas desenvolve o Oracle Linux há muitos anos, mas também o Solaris, então você pode se sentir seguro nesta área.

Publickey!: “Oracle, SUSE e CIQ, o principal patrocinador do Rocky Linux, estabelecem a ‘Associação de Linux Empresarial Aberto’ para lançar um Linux compatível com o RHEL com bugs”

Publickey!: “Red Hat critica fornecedores de SO clones, dizendo ‘se você apenas reconstrói o código sem adicionar valor, é uma ameaça ao código aberto'”