本文python腳本實現自動化安裝是源碼安裝。實現任意版本安裝,默認版本是1.13.11,也可以更改默認版本,手動配置安裝目錄。
環境:Ubuntu16.04,python3以上版本,Ubuntu自帶python3.5.
下面是完整的代碼實現:
#導入 os,sys模塊
import os,sys
#檢查用戶是否是root
if os.getuid() != 0:
print("當前用戶不是root,請以root身份執行腳本")
sys.exit(1)
# 版本號的選擇
# http://nginx.org/download/nginx-1.13.11.tar.gz
def_var = '1.13.11'
var = input('請輸入版本(默認{}):'.format(def_var))
var = var or def_var
# 安裝目錄的配置
def_path = '/usr/local/nginx'
path = input('請輸入安裝目錄(默認{}):'.format(def_path))
path = path or def_path
# 如果存在同名文件先刪除
if os.path.exists('nginx-{}.tar.gz'.format(var)):
os.remove('nginx-{}.tar.gz'.format(var))
# 下載源碼包
url = 'http://nginx.org/download/nginx-{}.tar.gz'
cmd = 'wget ' + url.format(var)
res = os.system(cmd)
if res != 0:
print('下載失敗')
sys.exit(1)
# 解壓
cmd = 'tar -zxf nginx-{}.tar.gz'.format(var)
if os.system(cmd) != 0:
print('解壓失敗')
sys.exit(1)
# 安裝依賴
cmd = 'apt install -y gcc make libpcre3-dev zlib1g-dev openssl libssl-dev'
if os.system(cmd) != 0:
print('安裝依賴失敗')
sys.exit(1)
# 配置
cmd='cd nginx-{} && ./configure --prefix=/usr/local/nginx --with-http_ssl_module'.format(var)
if os.system(cmd) != 0:
print('配置失敗')
sys.exit(1)
# 編譯
cmd='cd nginx-{} && make && make install'.format(var)
if os.system(cmd) != 0:
print('編譯失敗')
sys.exit(1)
print('安裝成功')