warum wird Bash nicht über Yum aktualisiert?

warum wird Bash nicht über Yum aktualisiert?

Ich versuche, Bash auf CentOS 7 zu aktualisieren. Für mein Projekt brauche ich mindestens 4.4 und die Standard-Shell darauf ist 4.2. Es handelt sich um einen Produktionsserver, daher möchte ich buchstäblich nur eine neue Version von Bash als Standard-Shell und das war’s. Ich möchte nicht zu viel herumspielen oder sonst etwas aktualisieren.

Wie auch immer, läuft:

yum update bash

kehrt zurück

No packages marked for update

Der Befehl:

yum repolist all

zeigt, dass das CentOS 7-Update-Repository aktiviert ist (allerdings nicht CentOS 7.*-Basis/Updates).

Das Ergebnis ist dieser Befehl:

 yum  --enablerepo=updates update bash

tut nichts.

Ich kann meine CentOS-Base.repo-Datei freigeben, wenn es hilft. Was mache ich falsch?

Antwort1

Der Sinn von Distributionen wie RedHat (und damit auch CentOS) besteht darin, dass sie stabil sind; sie verfügen nicht über die neueste Version jeder Software, sondern über eine einheitliche Version. Für CentOS7 ist die aktuelle Version bash-4.2.46-33.el7. RedHat portiert Sicherheitsfixes zurück, aber möglicherweise keine Funktionserweiterungen, da diese Kompatibilitätsprobleme verursachen können.

Wenn Sie eine andere Version benötigen, müssen Sie diese möglicherweise aus dem Quellcode kompilieren und an einem nicht standardmäßigen Ort ablegen (z. B. $HOME/bin/bash). Überschreiben Sie sie nicht /bin/bash, da das Betriebssystem sie jederzeit durch ersetzen kann yum update.

Im Vergleich dazu hat RedHat 8 (CentOS8) Bash 4.4 und Debian 10 hat Bash 5.0

Antwort2

Falls die implizite Frage lautete, wie ich Bash auf 4.4 aktualisieren kann:

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

Antwort3

Bash 4.2.46 ist die aktuelle Version für CentOS 7 und RHEL 7. Bash 4.4.19 ist die aktuelle Version für CentOS 8 und RHEL 8. BASH 4.4 ist nicht in den Repos für CentOS 7 und RHEL 7, weshalb yumkein Update darauf erfolgt.

Um 4.4 zu erhalten, müssen Sie es aus dem Quellcode an einem anderen Speicherort als /binbeispielsweise erstellen /home/bash, den Speicherort der bashBinärdatei in /etc/shells eintragen (nur als Root, wenn Sie ihn für andere Benutzer ändern möchten) und dann chsh -s /path/to/new/bashIhre Anmelde-Shell auf Bash 4.4 ändern.

Wenn Sie Skripte nur mit der neueren Version von Bash ausführen möchten, ändern Sie nach dem Erstellen den Shebang in den Skripten wie folgt:

#!/path/to/new/bash

Und sie werden mit der neueren Version laufen.

verwandte Informationen