分析寶塔在Arm盒子上的安裝過程,編譯調(diào)試依賴包,將寶塔面板安裝速度從100+分鐘降低到5分鐘
5分鐘在ARM盒子上安裝完寶塔面板,不得不說的秘密?
各種ARM電視盒子刷了Linux/Ubuntu/Centos/Debian/UOS是真香,盒子大部分有1-4G的RAM,尤其是4G版本的,跑起數(shù)據(jù)庫和PHP也是很香,LNMP更是順暢.
在Linux系統(tǒng)上安裝LNMP最簡(jiǎn)單直接的方法是用寶塔面板來一鍵安裝.
但是在ARM盒子上安裝寶塔面板簡(jiǎn)直慢的要命,寶塔面板本身就需要1個(gè)多小時(shí),再安裝LNMP往往需要幾個(gè)小時(shí),實(shí)在是慢的驚人.
進(jìn)入正文前荞估,循例先肝效果光涂,干貨放前面
- 5分鐘內(nèi)在Arm64盒子的Linux系統(tǒng)上安裝完成寶塔面板
- LNMP安裝加速30%以上
- 安裝腳本是官網(wǎng)下載
寶塔安裝在Arm上為什么這么慢
經(jīng)過調(diào)試独郎、跟蹤寶塔面板的安裝過程,下圖是寶塔安裝的基本步驟
安裝python 3.7
這一步并不是通過apt-get或者dnf來安裝,安裝腳本會(huì)自動(dòng)到寶塔的服務(wù)器上去下載python3.7對(duì)應(yīng)的編譯好的包,
如果沒有就下載源代碼,重新編譯整個(gè)python 忠聚。
很不幸的是寶塔面板并沒有aarch64的預(yù)編譯包,因此每次安裝都會(huì)重新編譯整個(gè)python.
安裝python libs
這一步是pip install 一些依賴庫,有些庫實(shí)在是編譯的巨慢,而且pip install多線程貌似還不能用
編譯依賴包
寶塔面板為了更加簡(jiǎn)單挠日、方便逮京、可靠缘眶,很多包是自行重新編譯的嘱根,如curl/openssl等等。
Arm64還是前妻的孩子巷懈,服務(wù)器上沒有對(duì)應(yīng)的預(yù)編譯包,對(duì)應(yīng)的包都需要完全重新編譯该抒,這個(gè)也是漫長(zhǎng)的過程。
對(duì)于LNMP依賴的每個(gè)具體組件,如Nginx其安裝的基本步驟
可以看到耗時(shí)的是編譯依賴包和組件本身
加速包的實(shí)現(xiàn)
針對(duì)寶塔面板的安裝實(shí)現(xiàn),使用如下直接方式來加速其安裝:
- 打包保存預(yù)編譯的python3.7,安裝時(shí)直接解壓使用,類比其從服務(wù)器下載
- 提取保存pip libs的whl文件,安裝時(shí)直接安裝耗時(shí)的whl文件
- 將依賴包編譯成.deb包,安裝時(shí)直接apt-get install方式直接使用
- 將每個(gè)組件的常見依賴包編譯成.deb包,安裝時(shí)直接使用以加速LNMP等各種組件
針對(duì)每個(gè)組件本身的編譯,如nginx,目前尚未做優(yōu)化顶燕,其安裝腳本實(shí)現(xiàn)較為零散,以待后續(xù)持續(xù)優(yōu)化凑保。
其中目前編譯好的deb包如下
包 | 版本 | 安裝路徑 | 庫 |
---|---|---|---|
curl7.74 | 7.74 | /usr/local/curl_2 | /usr/local/curl_2/lib |
curl7.70 | 7.70 | /usr/local/curl | /usr/local/curl/lib |
openssl102 | 1.0.2 | /usr/local/openssl | /usr/local/openssl/lib |
openssl111 | 1.1.1 | /usr/local/openssl111 | /usr/local/openssl111/lib |
lua5.1 | 5.1.5 | /usr/local/ | /usr/local/lib |
luajit | 2.1 | /usr/local/ | /usr/local/lib |
luasocket | 2.5.8 | /usr/local/ | /usr/local/lib |
lua-cjson | 2.1 | /usr/local/ | /usr/local/lib |
freetype | 2.9.1 | /usr/local/freetype | /usr/local/freetype/lib |
icu4c | 60.3 | /usr/local/icu/ | /usr/local/icu/lib |
libiconv | 1.14 | /usr/local/libiconv/ | /usr/local/libiconv/lib |
onig | 6.9.6 | /usr/local/onig | /usr/local/onig/lib |
rpcsvc-proto | 1.4 | /usr/local/rpcgen | /usr/local/rpcgen/lib |
mhash | 0.9.9 | /usr/local/ | /usr/local/lib |
mcrypt | 2.5.8 | /usr/local/ | /usr/local/lib |
libsodium | 1.0.18 | /usr/local/libsodium/ | /usr/local/libsodium//lib |
libmcrypt | 2.5.8 | /usr/local/ | /usr/local/lib |
加速包的效果
通過這些預(yù)編譯的包,整個(gè)安裝過程得到極大加速
- 5分鐘內(nèi)在Arm64盒子的Linux系統(tǒng)上安裝完成寶塔面板
- LNMP安裝加速30%以上
加速包的使用
git clone https://gitee.com/pdusb/pdusb-fast-btpanel.git .
su -
./pdbolt-inst-bt-acel.sh
bash /tmp/btp/pdbolt-bt-install/install.sh
幾分鐘后,寶塔安裝完成!!!
加速包的獲取
兩個(gè)途徑哦,一個(gè)是網(wǎng)盤
鏈接: https://pan.baidu.com/s/1pGLi-EP0wWJeh4OgKWVc7g
提取碼: 395h
另外一個(gè)是gitee下載
git clone https://gitee.com/pdusb/pdusb-fast-btpanel.git