Estou tentando atualizar o bash no CentOS 7 - preciso de pelo menos 4.4 para meu projeto e o shell padrão é 4.2. É um servidor de produção, então eu literalmente só quero uma nova versão do bash como shell padrão e pronto; Não quero mexer muito ou atualizar mais nada.
De qualquer forma, executando:
yum update bash
retorna
No packages marked for update
O comando:
yum repolist all
mostra que o repositório de atualizações do CentOS 7 está habilitado (embora não o CentOS 7.* base/updates).
Como resultado, este comando:
yum --enablerepo=updates update bash
faz nada.
Posso compartilhar meu arquivo CentOS-Base.repo, se ajudar. O que estou fazendo de errado?
Responder1
O objetivo de distribuições como RedHat (e, portanto, CentOS) é que ela é estável; não possui a versão mais recente de todos os softwares, possui uma versão consistente. Para CentOS7 a versão atual é bash-4.2.46-33.el7
. O RedHat fará backport de correções de segurança, mas não poderá fazer backport de aprimoramentos de funcionalidade porque podem causar problemas de compatibilidade.
Se você precisar de uma versão diferente, talvez seja necessário compilá-la a partir do código-fonte e colocá-la em um local não padrão (por exemplo, $HOME/bin/bash
). Não substitua /bin/bash
porque o sistema operacional pode substituí-lo a qualquer momento através do yum update
.
Em comparação, RedHat 8 (CentOS8) possui bash 4.4 e Debian 10 possui bash 5.0
Responder2
Caso a pergunta implícita fosse, como posso atualizar o bash para 4.4:
wget http://ftp.gnu.org/gnu/bash/bash-4.4.18.tar.gz
tar xf bash-4.4.18.tar.gz
cd bash-4.4.18/
./configure
make
make install
sh
bash -version
Responder3
Bash 4.2.46 é a versão atual para CentOS 7 e RHEL 7. Bash 4.4.19 é a versão atual para CentOS 8 e RHEL 8. BASH 4.4 não está nos repositórios para CentOS 7 e RHEL 7 e é por isso que yum
não atualiza para isso.
Para obter o 4.4, você terá que construí-lo a partir do código-fonte em um local diferente /bin
de /home/bash
, colocar o local no bash
binário em /etc/shells (como root somente se você quiser alterá-lo para outros usuários) e então usar chsh -s /path/to/new/bash
para alterar seu shell de login para Bash 4.4.
Se você deseja apenas executar scripts com a versão mais recente do bash, após compilá-lo, altere o shebang nos scripts para:
#!/path/to/new/bash
E eles funcionarão com a versão mais recente.