CentOS 7でbashを更新しようとしています。私のプロジェクトには少なくとも4.4が必要で、デフォルトのシェルは4.2です。本番サーバーなので、私は新しいバージョンのbashをデフォルトのシェルとして使用したいと思います。あまりにも多くを台無しにしたり、他のものを更新したくない。
とにかく、以下を実行してください。
yum update bash
返品
No packages marked for update
注文する:
yum repolist all
CentOS 7アップデートリポジトリが有効になっていることを示します(CentOS 7。*デフォルト/アップデートではありません)。
その結果、このコマンドは次のようになります。
yum --enablerepo=updates update bash
何もしませんでした。
もしそうなら、CentOS-Base.repoファイルを共有してください。私は何が間違っていましたか?
答え1
RedHat(およびCentOS)などのディストリビューションのポイントは、すべてのソフトウェアの最新バージョンではなく、一貫したバージョンがあることです。 CentOS7の場合、現在のバージョンはですbash-4.2.46-33.el7
。 RedHat はセキュリティ修正をバックポートしますが、機能強化により互換性の問題が発生する可能性があるため、バックポートしないことがあります。
他のバージョンが必要な場合は、ソースでコンパイルして非標準の場所(たとえば$HOME/bin/bash
、./bin/bash
オペレーティングシステムをいつでも渡すことができるため、上書きしないでくださいyum update
。
これに対して、RedHat 8(CentOS8)にはbash 4.4があり、Debian 10にはbash 5.0があります。
答え2
暗黙の質問がbashを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
答え3
Bash 4.2.46はCentOS 7とRHEL 7の最新バージョンです。 Bash 4.4.19はCentOS 8とRHEL 8の最新バージョンです。 BASH 4.4はCentOS 7とRHEL 7のリポジトリにはないため、yum
アップデートはありません。
4.4を取得するには、etcではなくソースからビルドする必要があります。その場所を/ etc / shellsのバイナリに入れて/bin
(他のユーザーをrootに変更したい場合のみ)、ログインシェルをBashに変更を使用します。 4.4。/home/bash
bash
chsh -s /path/to/new/bash
最新バージョンのbashを使用してスクリプトを実行するには、ビルド後のスクリプトのshebangを次のように変更します。
#!/path/to/new/bash
彼らは最新バージョンを実行します。