apt-get install 範例
「完整範例」。
資料夾結構
./
├── app
│ ├── php
│ │ ├── bin
│ │ │ ├── apt-install.sh
│ │ │ ├── clean.sh
│ │ │ ├── configure.sh
│ │ │ ├── help.sh
│ │ │ └── install.sh
│ │ ├── etc
│ │ │ └── package.list
│ │ └── Makefile
│ └── vim
│ ├── bin
│ │ ├── apt-install.sh
│ │ ├── clean.sh
│ │ ├── configure.sh
│ │ ├── help.sh
│ │ └── install.sh
│ ├── etc
│ │ └── package.list
│ └── Makefile
├── bin
│ ├── apt-install.sh
│ ├── clean.sh
│ ├── help.sh
│ └── install.sh
├── Makefile
└── README.md
8 directories, 20 files
Makefile
撰寫「Makefile」內容如下
THE_MAKEFILE_FILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
THE_BASE_DIR_PATH := $(abspath $(dir $(THE_MAKEFILE_FILE_PATH)))
THE_BIN_DIR_PATH := $(THE_BASE_DIR_PATH)/bin
PATH := $(THE_BIN_DIR_PATH):$(PATH)
default: help
.PHONY: default
help:
@help.sh
.PHONY: help
install:
@install.sh
.PHONY: install
apt-install:
@apt-install.sh
.PHONY: apt-install
clean:
@clean.sh
.PHONY: clean
Shell Script
「bin/install.sh」內容如下
#!/usr/bin/env bash
THE_BASE_DIR_PATH=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
THE_BIN_DIR_PATH=$THE_BASE_DIR_PATH/../bin
THE_APP_DIR_PATH=$THE_BASE_DIR_PATH/../app
for APP_DIR_PATH in $THE_APP_DIR_PATH/* ; do
THE_INSTALL_SCRIPT=$APP_DIR_PATH/bin/install.sh
if [ -f $THE_INSTALL_SCRIPT ]; then
$THE_INSTALL_SCRIPT
fi
done
「bin/apt-install.sh」內容如下
#!/usr/bin/env bash
THE_BASE_DIR_PATH=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
THE_BIN_DIR_PATH=$THE_BASE_DIR_PATH/../bin
THE_APP_DIR_PATH=$THE_BASE_DIR_PATH/../app
THE_TMP_DIR_PATH=$THE_BASE_DIR_PATH/../tmp
mkdir $THE_TMP_DIR_PATH -p
# package list (all)
THE_PACKAGE_LIST_FILE_PATH=$THE_TMP_DIR_PATH/package.list
# remove package list (all)
rm $THE_PACKAGE_LIST_FILE_PATH -f
for APP_DIR_PATH in $THE_APP_DIR_PATH/* ; do
EACH_PACKAGE_LIST_FILE_PATH=$APP_DIR_PATH/etc/package.list
if [ -f $EACH_PACKAGE_LIST_FILE_PATH ]; then
EACH_PACKAGE_LIST=$(cat $EACH_PACKAGE_LIST_FILE_PATH)
echo $EACH_PACKAGE_LIST >> $THE_PACKAGE_LIST_FILE_PATH
fi
done
sudo apt-get install $(cat $THE_PACKAGE_LIST_FILE_PATH) -y
執行指令
執行
$ make
顯示
Usage: make [command]
Ex:
$ make
$ make help
$ make install
$ make apt-install
$ make clean
執行
$ make install
就會安裝所有的套件,並且執行相關的設定動作。
執行
$ make apt-install
只會安裝所有的套件。
執行
$ make clean
會刪除所有的tmp資料夾