Linux - Bash をソースビルドでインストール!

Updated:


※この記事は9年以上前に投稿されたもので、情報が古い可能性があります。

こんにちは。

Bash(Bourne-again shell) の最新版をソースをビルドしてインストールする方法についての記録です。

0. 前提条件Permalink

  • Linux Mint 17.1(64bit) での作業を想定しているが、他のディストリビューションでも同様。
  • Bash 4.3.33 をインストールする。
  • Bash 4.3 に 1 から 33 までのパッチを適用する方法でインストールを行う。
  • 作業はパッケージでインストールされた Bash の元で行う。
  • パッケージでインストールされている Bash は削除せず残しておく。

1. Bash バージョンの確認Permalink

現状のパッケージでインストールされている Bash のバージョンを確認してみる。

$ bash --version
GNU bash, バージョン 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

2. アーカイブファイルのダウンロード&展開Permalink

4.3.33 は 4.3 にパッチを 33 回適用したものであるので、パッチファイルは 33 個ある。

$ mkdir bash_tmp
$ cd bash_tmp
$ wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
$ wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-{001..033}
$ tar zxvf bash-4.3.tar.gz

3. パッチの適用Permalink

1つずつパッチを適用してもよいが、手間なので以下のように一度に適用する。

$ cd bash-4.3
$ find ../bash43-??? -exec /bin/sh -c 'patch -p0 < {}' \;

4. ビルド&インストールPermalink

$ ./configure
$ make
$ sudo make install

5. ログインシェルの変更Permalink

まず、現在のログインシェルを確認する。

$ echo $SHELL
/bin/bash

次に、”/etc/shells” に先ほどインストールした /usr/local/bin/bash を追記する。(root 権限で)

File: /etc/shells

1
2
3
4
5
6
7
8
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bind/bash
/bin/rbash
/usr/bin/tmux
/bin/zsh
/usr/local/bin/bash

そして、ログインシェルを変更する。

$ chsh
パスワード: 
hoge のログインシェルを変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
        ログインシェル [/bin/bash]: /usr/local/bin/bash

再ログイン後、ログインシェルを確認する。

$ echo $SHELL
/usr/local/bin/bash

6. Bash バージョン確認Permalink

Bash のバージョンを確認みる。

$ bash --version
GNU bash, バージョン 4.3.33(1)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

“.bashrc” や “.profile” 等の設定ファイル記述によっては、今までと挙動(プロンプト等)が異なるかも知れない。その際は設定ファイルを確認する。

さらに、各種動作に異常が無いかも確認しておくとよいだろう。

6. 参考サイトPermalink


Bash に脆弱性が発見され最新版に更新する必要性が発生した際には、今回の方法でインストールすればよいでしょう。

以上。





 

Sponsored Link

 

Comments