2021-06-22

分析宝塔在Arm盒子上的安装过程,编译调试依赖包,将宝塔面板安装速度从100+分钟降低到5分钟

5分钟在ARM盒子上安装完宝塔面板,不得不说的秘密?

各种ARM电视盒子刷了Linux/Ubuntu/Centos/Debian/UOS是真香,盒子大部分有1-4G的RAM,尤其是4G版本的,跑起数据库和PHP也是很香,LNMP更是顺畅.
在Linux系统上安装LNMP最简单直接的方法是用宝塔面板来一键安装.
但是在ARM盒子上安装宝塔面板简直慢的要命,宝塔面板本身就需要1个多小时,再安装LNMP往往需要几个小时,实在是慢的惊人.

宝塔加速包

进入正文前,循例先肝效果,干货放前面

  • 5分钟内在Arm64盒子的Linux系统上安装完成宝塔面板
  • LNMP安装加速30%以上
  • 安装脚本是官网下载

宝塔安装在Arm上为什么这么慢

经过调试、跟踪宝塔面板的安装过程,下图是宝塔安装的基本步骤

宝塔面板安装流程

安装python 3.7

这一步并不是通过apt-get或者dnf来安装,安装脚本会自动到宝塔的服务器上去下载python3.7对应的编译好的包,
如果没有就下载源代码,重新编译整个python
很不幸的是宝塔面板并没有aarch64的预编译包,因此每次安装都会重新编译整个python.

安装python libs

这一步是pip install 一些依赖库,有些库实在是编译的巨慢,而且pip install多线程貌似还不能用

编译依赖包

宝塔面板为了更加简单、方便、可靠,很多包是自行重新编译的,如curl/openssl等等。
Arm64还是前妻的孩子,服务器上没有对应的预编译包,对应的包都需要完全重新编译,这个也是漫长的过程。

对于LNMP依赖的每个具体组件,如Nginx其安装的基本步骤
宝塔组件安装步骤

可以看到耗时的是编译依赖包和组件本身

加速包的实现

针对宝塔面板的安装实现,使用如下直接方式来加速其安装:

  • 打包保存预编译的python3.7,安装时直接解压使用,类比其从服务器下载
  • 提取保存pip libs的whl文件,安装时直接安装耗时的whl文件
  • 将依赖包编译成.deb包,安装时直接apt-get install方式直接使用
  • 将每个组件的常见依赖包编译成.deb包,安装时直接使用以加速LNMP等各种组件

针对每个组件本身的编译,如nginx,目前尚未做优化,其安装脚本实现较为零散,以待后续持续优化。

其中目前编译好的deb包如下

版本安装路径
curl7.747.74/usr/local/curl_2/usr/local/curl_2/lib
curl7.707.70/usr/local/curl/usr/local/curl/lib
openssl1021.0.2/usr/local/openssl/usr/local/openssl/lib
openssl1111.1.1/usr/local/openssl111/usr/local/openssl111/lib
lua5.15.1.5/usr/local//usr/local/lib
luajit2.1/usr/local//usr/local/lib
luasocket2.5.8/usr/local//usr/local/lib
lua-cjson2.1/usr/local//usr/local/lib
freetype2.9.1/usr/local/freetype/usr/local/freetype/lib
icu4c60.3/usr/local/icu//usr/local/icu/lib
libiconv1.14/usr/local/libiconv//usr/local/libiconv/lib
onig6.9.6/usr/local/onig/usr/local/onig/lib
rpcsvc-proto1.4/usr/local/rpcgen/usr/local/rpcgen/lib
mhash0.9.9/usr/local//usr/local/lib
mcrypt2.5.8/usr/local//usr/local/lib
libsodium1.0.18/usr/local/libsodium//usr/local/libsodium//lib
libmcrypt2.5.8/usr/local//usr/local/lib

加速包的效果

通过这些预编译的包,整个安装过程得到极大加速

  • 5分钟内在Arm64盒子的Linux系统上安装完成宝塔面板
  • 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

几分钟后,宝塔安装完成!!!

加速包的获取

两个途径哦,一个是网盘

链接: https://pan.baidu.com/s/1pGLi-EP0wWJeh4OgKWVc7g
提取码: 395h

另外一个是gitee下载

git clone https://gitee.com/pdusb/pdusb-fast-btpanel.git
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值