紅帽系列的 linux軟件管理分為三類:1. rpm 安裝軟件。2. yum 安裝軟件。3. 源碼包編譯安裝。前面兩種會在相關專題給出詳細講解。源碼包的編譯安裝是非常關鍵的,我們知道linux的相關版本非常多,相關的編譯器,解釋器也有很多,很多還有最小系統,嵌入式系統等等。同一功能的軟件如果只有編譯好的軟件包,在其它linux的平台上,可能並不能正常安裝運行,在此情況下,源碼包編譯安裝出現了。所以本文的重點是以nginx為例,給出源碼包編譯安裝的詳細過程,同時帶你手工編寫自動化運行腳本。
准備工作:nginx源碼包,官網地址:http://nginx.org/en/download.html
可以看一下:長下面的這樣子:
一、編譯安裝nginx源碼包。
1. 用xshell將下載的nginx源碼包放到/root目錄下面。當然你虛擬機可以上網,在虛擬機中用wget下載也是可以的。建議不要這樣做,因為虛擬機上網一般比較慢。
2. 安裝依賴的軟件包工具 zlib-devel pcre-devel,這里用yum安裝這兩個包。
rpm -qa | grep zlib-devel
rpm -qa | grep pcre-devel #檢查這兩個包是否已經安裝了。
這里用yum 安裝這兩個軟件包,yum安裝非常好的一點就是,你只要將包名知道就可以了,不需要包的版本信息及依賴包,而rpm安裝,需要包的全名,包括版本信息,后綴名還需要自己安裝先關的依賴包等,不是很方便。
yum install zlib-devel # yum 安裝這個軟件包。當然了,后面可以帶上-y,不需要最后確認安裝。
yum install pcre-devel -y
3. 指定nginx的運行用戶。
useradd -s /sbin/nologin -M nginx
useradd 添加用戶。
-s /sbin/nologin 指定用戶運行的shell。
-M 不再home目錄下創建該用戶的目錄。
4. 解包,配置,編譯,安裝nginx
解包:tar zxf nginx-1.11.2.tar.gz -C /usr/src
配置:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
編譯: make -j 4
安裝:make install
二、編寫nginx啟動腳本:
1. 系統的腳本服務,一般放在這個目錄下面:/etc/init.d中,我們也放到這里。
2. 編寫nginx啟動的腳本。
vim nginx 在文件nginx中編寫如下腳本:

# description: nginx-server nginx=/usr/local/nginx/sbin/nginx case "$1" in start) netstat -anlpt | grep nginx if [ $? -eq 0 ] then echo " the nginx-server is already running" else echo " ther nginx-server is starting to run" $nginx fi ;; stop) netstat -anlpt | grep nginx if [ $? -eq 0 ] then $nginx -s stop if [ $? -eq 0 ] then echo " the nginx-server is stopped " else echo " failed to stop the nginx-server" fi else echo " the nginx-server has stopped you needn't to stop it " fi ;; restart) $nginx -s reload if [ $? -eq 0 ] then echo "the nginx-server is restarting " else echo " the nginx-server failed to restart" fi ;; status) netstat -anlpt | grep nginx if [ $? -eq 0 ] then echo " the nginx-server is running " else echo " the nginx-server is not running ,please try again" fi ;; status) netstat -anlpt | grep nginx if [ $? -eq 0 ] then echo " the nginx-server is running " else echo " the nginx-server is not running ,please try again" fi ;; *) echo "please enter { start|stop|status|restart}" ;; esac
3. 給腳本添加權限,並將nginx服務添加到系統服務中:
給腳本添加權限:chmod +x nginx
將nginx服務添加到系統服務中: chkconfig –add nginx
查看nginx的運行級別: chkconfig –list nginx
4. 啟動腳本,進行測試:
說明:有時候會出現這種錯誤:
上面的報個小錯,當restart時,用lsof –i:80檢查一下:發現是剛才的nginx在占用着端口,說明restart中實現該功能的函數有點弱:可以考慮用stop 和 start來替換掉。
聲明:本文為博主原創,轉載必須注明出處:
http://www.cnblogs.com/jasmine-Jobs/p/5847825.html