@梁宇轩9年前

01/28
22:32
技术笔记

Ubuntu下的自動配置腳本

 零、前言

感覺前言這個板塊毫無意義,但是卻去不掉啊。每次寫技術文章的時候似乎都有一些關事或者不關事的東西寫在前面,好像不寫就不行呢。不過要是我以後要處理這些文章的話似乎就處理前言部分就好了(笑),畢竟不正經的都在這裏,無論是字符串處理還是CSS效果都很簡單呢!

說到自動化腳本,其實出現是爲了防止重複勞動,例如只配置自己的一臺機器的話一般使用不到這些東西的,只出現一次的配置都是吃自己的腦子而已,而自動化腳本就一般出現在對着一臺機配置N次或者是對着N臺機配置1次的情況。可能有人說前面那種情況很少見吧,要是你聽到也一定要幫我反駁他哦,畢竟我就是活生生的實例啊,內存就是這個不好。

一、前期準備

首先你要有一臺電腦。推薦先在一個不會消失的地方建一個工作文件夾,用來放置要用到的東西,畢竟都在一起好管理。

這個腳本有以下功能,

1.替換軟件源,使用速度較快的軟件源來加快配置速度。

2.安裝已經下載的軟件包,並且會自動安裝依賴。

3.安裝Java Runtime Environment。

4.安裝goagent的依賴並且自動開啓。

根據需要使用的功能不同,需要的準備的東西也不同。

1.在工作文件夾下放一個用於替換的sources.list

2.準備好要安裝的軟件包,推薦放在工作文件夾下,不然就要聲明路徑了

3.可靠的網絡

4.可靠的網絡和已經解壓的goagent

二、腳本配置

這個腳本的配置就比之前的那個自動備份腳本的配置簡單地多了,畢竟沒這麼多東西要配置,也沒這麼多東西可變。

#!/bin/bash

################################
#         User Config          #
################################

# Working place
# where can find sources.list and *.deb
# Example: WORKING="/home"
WORKING=""

# if replace the sources.list
# Example: SOURCES=1
SOURCES=1

# the name(s) of deb(s) to install
# Example: DEB[1]="google-chrome-stable_current_amd64.deb"
DEB=("")

# if need to config java
# EXAMPLE: JAVA=1
JAVA=1

# the path of goagent
# You can use absolute path and relative path to working path
# Example: GOAGENT="goagent"
# Example: GOAGENT="/home/goagent"
# Note: Empty means do not config goagent
GOAGENT=""

三、腳本主體

配置部分都如此簡單了,那麼主體部分就更簡單了,也沒有用什麼複雜的東西。不過在檢查功能是否開啓上的test語句倒是與自動備份腳本不同,畢竟開啓的頻率不一樣。

################################
#         Main Program         #
#DO NOT rewrite the followings.#
################################
cd ${WORKING}

# Update sources
test ${SOURCES} -ne 0 && sudo cp sources.list /etc/apt/sources.list
sudo apt-get update

# Install downloaded application
for S in "${DEB[@]}"
do
	sudo dpkg -i ${S}
done
sudo apt-get -y -f install

# Download and install java
test ${JAVA} -ne 0 && sudo apt-get -y install openjdk-7-jre-headless

# Config goagent and run
if [ ${GOAGENT} ]; then
	# Download and install goagent dependences
	sudo DEBIAN_FRONTEND=noninteractive apt-get -y install python-dev python-greenlet python-gevent python-vte python-openssl python-crypto python-appindicator
	cp -r ${GOAGENT} ${HOME}
	sudo python ${HOME}/goagent-3.1.2/local/goagent-gtk.py
fi

四、其他配置

Ubuntu默認的軟件源速度實在是太慢了,我個人是將軟件源改爲網易提供的鏡像,配置時間馬上縮短!下面貼一下我的sources.list。

deb http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ raring-backports main restricted universe multiverse

五、尾聲

最近寫的這些自動化腳本完全讓我感受到Bash Shell的強大,但是作爲之前整天在編高級語言的我來說,還是覺得某些功能限制很奇怪,完全可以有的東西怎麼沒有呢?完全體會到那種「實現簡單功能很容易(上述),複雜一點的話就很麻煩了(錯誤處理之類的)」的感覺。不過話說回來,Linux下自帶了gcc,而且還有make,似乎可以靠這兩個東西做一個C的殼,既保證通用性又寫起來舒服、讀起來舒服呢。

順手提供一下腳本的下載地址(zip)。

博文兩天三文,速度完全上來,但是我似乎沒有更多的東西可以寫了,似乎馬上又要沉下去了。不過要是可以保持如此多的空閒時間的話,真主頁應該很快就可以出來了。繼續努力!

Ubuntu下的自動配置腳本

  1. 親身體驗:163的源包不全。
    所以我一般換成思密達或者霓虹的源~
    ====
    快來一起幫忙開發後端Orz

    回复
    1. 梁宇軒 文章作者

      嘛,沒事啦~畢竟源可以自己指定的,而且163的訪問速度也不錯。不過你也把你的source.list分享一下吧~

      回复