ソースからのソフトウェアのインストールを支援する installer.sh

普通 linux とかで ソフトをインストールするときは、パッケージマネージャを使えばいいです。

ただ、何かの事情で使えないことがあったりします。そもそも管理されてなかったり、あっても欲しいバージョンでなかったり、管理者権限を持ってなかったり。そのような場合、多くはソースからインストールをすることになると思います。

ソフトをソースからインストールする場合、その手順はほとんどいつも同じなはずです。つまり、例えば tarball をダウンロードして展開して ./configure && make && make install をする、といった具合です。一回ならまだいいですけど、何回も繰り返すようになるとだるいです。何回も繰り返すことがたまにあったので、あんまり労力をかけずに自動化できるようにしてみました。

Feature

  • いくつかの変数と一つの関数を定義するだけでインストールを自動化できる
  • 実行時には特有な外部プログラムを必要としない。普通にシェルスクリプトが実行できる環境であればスクリプト一つでインストールが完了する
  • ArchLinuxPKGBUILD に強い影響を受けている

Usage

installer_sh から installer.sh をコピーして、いくつかの変数を書き換えます。例えば、 python3.3 のインストーラ は、冒頭が以下のようになります。

pkgname=python3
pkgver=3.3.0
_pkgname=Python
pkgdesc="Programming language"
url="http://www.python.org"
source="$url/ftp/python/$pkgver/$_pkgname-$pkgver.tar.bz2"

_prefix=$HOME/.local

main(){
    cd $srcdir/$_pkgname-$pkgver && \
        ./configure --prefix=$_prefix && \
        make && \
        make install
}

冒頭をこんな感じに記述した installer.sh を保存します。 $ ./installer.sh install と実行することで、 $source のファイルをダウンロード、展開し、 main() を実行するまでを自動でしてくれます。