アプリケーションインストールシェルスクリプトを記述する方法


39

シェルスクリプトを作成してアプリケーションのリストをインストールする方法を知っている人はいますか?新しいシステムをセットアップするたびに、各アプリケーションを手動でインストールしなければならないのは苦痛です。

編集: それでも私に尋ねますDo you want to continue [Y/n]?。スクリプトを入力する方法yや、入力を求めない方法はありますか?


2
以前は、それを行う「yes」というプログラムがありました。(STDOUTに連続して 'y'を書き込みました。)
ネイサンオスマン

回答:


39

スクリプトは次のようになります。

#!/bin/sh
apt-get update  # To get the latest package lists
apt-get install <package name> -y
#etc.

それをinstall_my_apps.shのように保存し、ファイルのプロパティを変更して実行可能にし、コマンドラインからrootとして実行します。

編集:-y告げるapt-getプロンプトあなたにないとだけインストールでの取得します)


実行可能にする方法 私はそれを次のように実行すると思います: sudo ./install_my_apps.sh
jumpnett

実行可能にする必要があるかどうかはわかりません(私はPythonの男です。BASHにはあまり興味がありません)。ただし、必要な場合は、で実行可能にすることができますchmod +x ./install_my_apps.sh
マイケルクレンショー

または、それを右クリックして、「プロパティ」を選択します。「権限」タブに移動し、「プログラムとファイルの実行を許可する」というチェックボックスをチェック開いたウィンドウで
jfoucher

6
これがCWである理由はわかりませんが、とにかく編集して-yフラグを立てました。注:より明確に見せたい場合は、--yesまたはの--assume-yes代わりに使用できます-y
ウマン

20

質問によると、最も簡単なスクリプトは次のとおりです。

#!/bin/sh
LIST_OF_APPS="a b c d e"

aptitude update
aptitude install -y $LIST_OF_APPS

ただし、を入力することもできますaptitude update && aptitude install -y a b c d e。したがって、ここで重要な点があなたの質問に欠けている可能性があります。さらにいくつかの要件がある場合は、それらを説明するとよいでしょう。


1
apt-getは、必要に応じてここでaptitudeのドロップイン置換として機能することに注意してください。「aptitude」の両方のインスタンスを「apt-get」に置き換えるだけです。
マイケルクレンショー

12

ファイル、example.listにアプリのリストを作成し、実行するだけです

cat example.list | xargs sudo apt-get -y install

これはすごい。パッケージのリストをaptにフィードする方法をこれまで知りませんでした!
-Thufir

xargsのは、単に引数としてそれらを追加することによって、任意のコマンドにパイプラインをフィード
Xerus

2

次のスクリプトを選択します。 vim install

#!/bin/bash
apt-get update  # To get the latest package lists
apt-get install $1 -y

次に、上記のスクリプトを実行可能にする必要がありますchmod +x install。それを使用するには、次のように入力します./install <package_name>。例:./install clang


1
ファイルにリストされているすべてのプログラムが必要でした。この方法では、プログラムの名前をコマンドライン引数として入力する必要があるため、実際には利点はありません。
ジャンプネット

1
@jumpnett Lol、私はリストポイントを逃しました。私はカフェインが不足し始めており、それは示しています。ごめんなさい 答えを更新する場合があります。
NlightNFotis

さらにupdate、すべてのプログラムをインストールするたびに実行されるため、時間がかかります。そして、それが必要sudoです。
ゴーティエ

これは非常に不必要です。あなたにも置くかもしれないalias install='sudo apt-get install -y'あなたに.bash_aliases
Xerus

-1
#!/bin/bash

set -eu -o pipefail # fail on error , debug all lines

sudo -n true
test $? -eq 0 || exit 1 "you should have sudo priveledge to run this script"

echo installing the must-have pre-requisites
while read -r p ; do sudo apt-get install -y $p ; done < <(cat << "EOF"
    perl
    zip unzip
    exuberant-ctags
    mutt
    libxml-atom-perl
    postgresql-9.6
    libdbd-pgsql
    curl
    wget
    libwww-curl-perl
EOF
)

echo installing the nice-to-have pre-requisites
echo you have 5 seconds to proceed ...
echo or
echo hit Ctrl+C to quit
echo -e "\n"
sleep 6

sudo apt-get install -y tig

1
説明は喜ば追加し、すべてのこれらのタイプミス修正
Xerus

あなたの意見ではどの行が説明が必要ですか?!
ヨルダンゲオルギエフ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.