apt-getで一括インストール

  • 4
    Like
  • 4
    Comment
More than 1 year has passed since last update.

ファイルに羅列したパッケージを一括インストール(bash編)

※githubに置きました → https://github.com/digitarhythm/apt-install
※「spitiko」でインストール出来ます。

おそらく車輪の再発明だが、備忘録として書いておく。
下記のようなbashスクリプトをパスの通ったところに「apt-install」みたいな名前で置いておく。

#!/bin/bash
#=====================================================
# apt-get install at once from package list file
#=====================================================
TARGET="$@"

#if [ -z ${TARGET} ]; then
if [ "${#}" -eq 0 ]; then
    echo "Usage:"
    echo "apt-install [package name | package list file]"
    exit
fi

if [ -f ${1} ]; then
    for line in `cat ${1}`
    do
        if [ -n "${line}" ]; then
            ret=`dpkg -l ${line} | egrep "i\s*?${line}"`
            if [ -z "${ret}" ]; then
                sudo apt-get install ${line} -y
            fi
        fi
    done
else
    for i in `seq 1 ${#}`; do
        sudo apt-get install ${1} -y
        shift
    done
fi

で、「require.txt」とかのファイルに、

git
php5-cli
php5-cgi
imagemagick

とか書いて、
$ apt-install ./require.txt
などと実行すると、入ってないものだけがインストールされる。
パッケージ名を指定するとそのままそのパッケージがインストールされる。
指定した名前がファイルかどうかで判断してるが、ファイルであるほうが優先される。
でも、ファイル名をなにかのパッケージ名と同じにしないようにしておくほうが後々のトラブルを防げるとは思う。
中で「sudo」をしてるので、自分のアカウントではパスワードが必要ないようにするとそのアカウントではそのまま使えます。
セキュリティがぁ〜という人は、sudoを外して「/usr/local/sbin」にでも置いて、スーパーユーザーで実行するようにするといいでせう。