Repositórios atualizados para Centos 6.9

Quando falamos de sistemas operacionais Linux mais antigos, pode ser complicado instalar softwares e aplicativos, já que muitas vezes os repositórios oficiais não estão mais disponíveis. Isso pode ser um desafio especialmente difícil quando se trata de sistemas proprietários desenvolvidos em cima dessas versões antigas, como o CentOS 6.9. Se quisermos atualizar o sistema operacional, seria necessário reescrever uma grande parte do código-fonte original, o que não é uma tarefa simples. Mas não se preocupe, existem algumas alternativas para instalar softwares nesses sistemas operacionais mais antigos, mesmo sem acesso aos repositórios ativos.

Compilação a partir do código-fonte:

Uma opção viável é compilar o código-fonte diretamente. Embora isso demande um pouco mais de conhecimento técnico e possa ser um processo demorado, é uma maneira de adaptar o software ao seu sistema específico e garantir compatibilidade. Ao compilar a partir do código-fonte, você pode contornar a falta de repositórios ativos e ter acesso aos recursos mais recentes dos softwares.

Antes de iniciar qualquer atualização ou instalação de novos softwares, é essencial identificar as dependências específicas do sistema desenvolvido. Isso envolve mapear quais bibliotecas, pacotes e comandos em shell são usados pelo sistema. Com essa lista em mãos, será possível avaliar a compatibilidade dessas dependências com versões mais recentes do sistema operacional. Depois disto, busque como baixá-los nos sites dos fabricantes dos softwares preferencialmente que custumam manter  disponíveis até versões mais antigas.

No nosso exemplo, faremos o upgra de do SSH. Eu colocaria até os prints e mais detalhes aqui, se o Ruindows não tivesse reiniciado para efetuar Updates e fazer com que eu perdesse minha sessão SSH e o histórico.

# Passo 1: Instalar as ferramentas de desenvolvimento

sudo yum groupinstall "Development Tools"

# Passo 2: Instalar as dependências necessárias

sudo yum install zlib-devel openssl-devel

# Passo 3: Fazer uma cópia de backup do arquivo de configuração do SSH

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Passo 4: Baixar o pacote de código-fonte do OpenSSH

wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

# Passo 5: Extrair o pacote de código-fonte

tar -xzf openssh-9.0p1.tar.gz

# Passo 6: Acessar o diretório do código-fonte do OpenSSH

cd openssh-9.0p1/

# Passo 7: Instalar as dependências adicionais

sudo yum install pam-devel libselinux-devel

# Passo 8: Configurar a compilação do OpenSSH

./configure --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh

# Passo 9: Compilar o código-fonte

make

# Passo 10: Instalar o novo SSH

sudo make install

# Passo 11: Verificar a versão do SSH instalada

ssh -V

Utilizando repositórios de terceiros:

Outra possibilidade é recorrer a repositórios de terceiros. Mesmo que os repositórios oficiais não estejam mais disponíveis, é provável que a comunidade mantenha alguns repositórios funcionando para sistemas Linux mais antigos. Esses repositórios podem oferecer uma variedade de softwares e aplicativos atualizados que não estão mais disponíveis nos repositórios oficiais. No entanto, é importante tomar cuidado ao utilizar repositórios de terceiros e verificar sua confiabilidade e segurança antes de realizar as instalações. É fundamental evitar problemas de segurança ou incompatibilidades.

# Passo 1: Removendo repositórios antigos

Liste todos os repositórios atualmente configurados e exclua as configurações do CentOS e do epel posteriormente:

[root@server ~]# ls /etc/yum.repos.d/

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Vault.repo  epel.repo


[root@server ~]# rm /etc/yum.repos.d/CentOS*.repo

[root@server ~]# rm /etc/yum.repos.d/epel.repo

# Passo 2: Criar uma configuração de repositório do CentOS com urls atualizadas

Versões antigas do CentOS são arquivadas no https://vault.centos.org/ - vamos criar uma nova configuração de repositório usando este servidor. Além disso, definimos metadata_expire para nunca porque as fontes não mudam mais (fim de vida).

Abra o arquivo de repositórios conforme abaixo:

vim /etc/yum.repos.d/CentOS.repo

Apague todo o conteúdo e insira o conteúdo abaixo com os novos repositórios.

[base]

name=CentOS-6.10 - Base

baseurl=http://vault.centos.org/6.10/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=1

metadata_expire=never


#released updates

[updates]

name=CentOS-6.10 - Updates

baseurl=http://vault.centos.org/6.10/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=1

metadata_expire=never


# additional packages that may be useful

[extras]

name=CentOS-6.10 - Extras

baseurl=http://vault.centos.org/6.10/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=1

metadata_expire=never


# additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-6.10 - CentOSPlus

baseurl=http://vault.centos.org/6.10/centosplus/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=0

metadata_expire=never


#contrib - packages by Centos Users

[contrib]

name=CentOS-6.10 - Contrib

baseurl=http://vault.centos.org/6.10/contrib/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=0

metadata_expire=never

# Passo 3: Adicionar configuração de repositório Extra Packages for Enterprise Linux (EPEL)

Esta etapa é opcional:

Edite o arquivo epel.repo

vim /etc/yum.repos.d/epel.repo

Apague todo o conteúdo e insira o conteúdo abaixo com os novos repositórios.

[epel]

name=Extra Packages for Enterprise Linux 6 - $basearch

baseurl=https://archives.fedoraproject.org/pub/archive/epel/6/$basearch

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

metadata_expire=never


[epel-debuginfo]

name=Extra Packages for Enterprise Linux 6 - $basearch - Debug

baseurl=https://archives.fedoraproject.org/pub/archive/epel/6/$basearch/debug

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

gpgcheck=1

metadata_expire=never


[epel-source]

name=Extra Packages for Enterprise Linux 6 - $basearch - Source

baseurl=https://archives.fedoraproject.org/pub/archive/epel/6/SRPMS

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

gpgcheck=1

metadata_expire=never

# Passo 4: Carregar novas fontes de pacotes

Remova todos os metadados disponíveis no momento:

yum clean all

Agora digite yum check-update para carregar uma nova lista de todos os pacotes disponíveis e verificar se sua instalação local tem todas as atualizações disponíveis. Depois, você pode instalar pacotes como de costume usando yum install.

Essas são algumas opções para superar a falta de repositórios ativos e permitir a instalação de softwares em sistemas operacionais mais antigos. No caso de hoje utilizamos como exemplo o Centos6.9, mas isso pode ser efetuado em qualquer sistema Linux, respeitando os repositórios com softwares compatíveis.

Com essas alternativas, é possível manter seus sistemas com uma vida útil um pouco mais longa enquanto você programa a migração para um sistema mais atualizado e com suporte ainda válido. 

Fontes:
How to upgrade OpenSSH on Centos - Stack Overflow
CentOS 6 - Atualizar URL do repositório após o fim da vida útil (EOL) | GCore GmbH