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 7 | 2024/06/30 |
CentOS 8 | 2021/12/31 |
CentOS Stream 8 | 2024/05/31 |
CentOS Stream 9 | Indeciso (programado para ser o mesmo que o RHEL 9) |
Red Hat Enterprise Linux 7 | 2024/06/30 |
Red Hat Enterprise Linux 8 | 2029/05/31 |
Red Hat Enterprise Linux 9 | 2032/05/31 |
Oracle Linux 7 | 2024/12 |
Oracle Linux 8 | 2029/07 |
Oracle Linux 9 | 2032/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 Stream | Não necessário | Nenhum | Substituição de repositório | Parece 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 Linux | Necessário | Pode ser | Ferramentas de migração disponíveis | Líder da indústria, mas requer assinatura e Acordo Empresarial da Red Hat |
Oracle Linux | Não necessário, mas alguns recursos estão disponíveis apenas para usuários de suporte pago | Pode ser | Ferramentas de migração disponíveis | Tem 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 Linux | Não necessário | Suporte pago disponível (incluindo suporte de terceiros) | Ferramentas de migração disponíveis | É uma nova distribuição, então você precisa observá-la. |
Amazon Linux | Não necessário | Pode ser | Sem ferramentas fornecidas pelo fornecedor | Pode 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 LINUX | Não necessário | Pode ser | Ferramentas de migração disponíveis | Embora 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.
- Mudando do CentOS 8 para o Oracle Linux 8
- Mudando do CentOS Linux para o Oracle Linux
- Github: Mudança do CentOS/Rocky Linux para o Oracle Linux
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.
- Verificar as restrições
- Backup do sistema (omitido no texto)
- Preparação do CentOS de origem
- Execução do script de migração
- 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.”
- A origem é CentOS 6, 7, 8 ou Rocky Linux 8, 9
- Acesso aos repositórios Yum do CentOS e do Oracle Linux, diretamente ou via proxy
- A instância não está registrada em uma ferramenta de gerenciamento de pacotes de terceiros, como o Spacewalk.
- 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. - 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.
- 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.
- /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.
- /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
- 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
- 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
- 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
- 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
- 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.