Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have 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」にでも置いて、スーパーユーザーで実行するようにするといいでせう。

digitarhythm
いろいろ作っています。 フルスタックフレームワーク「ViewllerJS」 https://www.digitarhythm.net/viewllerjs ブラウザでWebゲーム開発「enforceIDE」 https://www.prominence.tv/enforceIDE WebブラウザでProcessing「InstaProc」 https://processing.fun/
http://www.digitarhythm.net
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away