mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

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

[ pc_tips, サーバ構築 ] [ Linux, bash ]

こんにちは。

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

0. 前提条件

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

1. Bash バージョンの確認

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

1
2
3
4
5
6
7
$ 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. アーカイブファイルのダウンロード&展開

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

1
2
3
4
5
$ 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. パッチの適用

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

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

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

1
2
3
$ ./configure
$ make
$ sudo make install

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

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

1
2
$ echo $SHELL
/bin/bash

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

/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

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

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

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

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

6. Bash バージョン確認

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

1
2
3
4
5
6
7
$ 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. 参考サイト


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

以上。

Comments