不能只拷一个脚本就装,必须同步获取 panel.tar.gz、初始化脚本、public.sh 和本地依赖元数据,缺一不可;否则必然卡在 wget 失败、gevent 安装失败或 /etc/init.d/bt 不存在。

直接说结论:不能只拷一个脚本就装,必须同步获取 panel.tar.gz(或 LinuxPanel-*.zip)、初始化脚本、public.sh 和本地依赖元数据,缺一不可;否则必然卡在 wget 失败、gevent 安装失败或 /etc/init.d/bt 不存在。
离线安装前必须校验的三个硬性条件
宝塔离线部署不是“下载即用”,而是对环境有强约束:
- 系统版本和架构必须与外网打包机完全一致——
cat /etc/os-release和uname -m要逐字匹配,CentOS 7 x86_64 打的包不能装到 CentOS 7 aarch64 上,会报package xxx is intended for a different architecture - Python 版本要合规但不必手动装:v7.7+ 离线包自带精简 Python 运行时,但 CentOS 7 必须能调用
python2.7,Ubuntu 22.04 要求系统有python3.10或更高(离线包不覆盖系统 python) -
/www目录所在磁盘剩余空间 ≥3GB——解压panel.tar.gz+ 写入 SQLite 数据库 + 日志目录会占满 2.5GB 以上
预下载环节:只下官网指定链接,别信第三方“免编译版”
所有资源必须来自宝塔官网文档页明确列出的地址,格式固定:
- CentOS 7 离线脚本:
wget -O install-centos_7.0.sh http://download.bt.cn/install/install-centos_7.0.sh - Ubuntu 20.04 离线脚本:
wget -O install-ubuntu_20.04.sh http://download.bt.cn/install/install-ubuntu_20.04.sh - 对应
panel.tar.gz文件必须同页面提供,名称如panel-7.9.0.tar.gz,且与脚本后缀中的版本号一致 - 立即执行
sha256sum install-centos_7.0.sh核对官网公示的哈希值,不一致说明镜像被篡改或已失效
依赖缺失时如何让 yum localinstall 成功
直接 yum localinstall *.rpm 必然报 Failed dependencies,因为宝塔 RPM 显式依赖 epel-release、policycoreutils-python 等非基础包,而这些不在你抓取的 rpm 目录里。
- 先用联网机器构建完整本地源:
createrepo /tmp/bt-offline/rpm(确保 rpm 目录含repodata子目录) - 把整个
/tmp/bt-offline目录拷进内网后,在内网机上配置 repo 文件:/etc/yum.repos.d/bt-offline.repo,内容为:[bt-offline] name=BT Offline Repo baseurl=file:///tmp/bt-offline/rpm enabled=1 gpgcheck=0
- 再运行
yum install -y bt-panel,yum 会自动解析repodata并补全依赖链
修改 install.sh 脚本跳过所有外网检测
官方离线脚本默认仍会尝试 curl 检测官网连通性,不加参数就执行会卡住。
- 必须加
--force启动:sudo bash install-centos_7.0.sh --force - 如果提示
Permission denied,检查/www是否被 SELinux 锁定:setenforce 0临时关闭(CentOS) - 若中途卡在
installing gevent,说明panel.tar.gz没和脚本放同一目录,脚本找不到源文件,直接退出 - 安装完成后,服务不一定自动启动,手动执行:
/etc/init.d/bt start,然后/etc/init.d/bt status确认运行状态
最常被忽略的是 repodata 目录和 panel.tar.gz 的共存关系——它们不是可选附件,是安装逻辑的刚性输入。少一个,脚本就退化成半截残废。


















