离线更新 1Panel 及脱离面板进行更新的一个示例

前言

以默认安装路径/opt/为例子,有需要按需修改。

这边以Debian11 AMD64作为示例系统。

相关命令行修改自1Panel 离线安装包制作工程

  • 20230714补充

  • 默认路径不是/opt目录下的还需要用nano等编辑修改下载下来的1pctl文件里的BASE_DIR设置。

  • 例子,用sed修改/opt目录为/www目录: sed -i 's/BASE_DIR=\/opt/BASE_DIR=\/www/' ./1pctl

1. 脱离面板进行更新

1.1 前期准备

安装SQLite3

Debian系统为例,其他系统对应更改包管理器命令。

  • Debian/Ubuntu: apt-get

  • RedHat/CentOS: yum


# 更新软件包列表

apt-get update

# 安装 SQLite3,并自动回答所有提示为“是”

apt-get install sqlite3 -y

1.2 更新到最新版1panel

以下是个完整片段,直接复制到终端运行。


clear && \

echo "正在停止1panel" && \

echo && \

systemctl stop 1panel && \

cd ~ && \

osCheck=`uname -a`; if [[ $osCheck =~ 'x86_64' ]]; then architecture="amd64"; elif [[ $osCheck =~ 'arm64' ]] || [[ $osCheck =~ 'aarch64' ]]; then architecture="arm64"; elif [[ $osCheck =~ 'armv7l' ]]; then architecture="armv7"; elif [[ $osCheck =~ 'ppc64le' ]]; then architecture="ppc64le"; elif [[ $osCheck =~ 's390x' ]]; then architecture="s390x"; else echo "暂不支持的系统架构,请参阅官方文档,选择受支持的系统。"; exit 1; fi

echo && \

echo "即将升级到1panel ${architecture}架构的最新版本" && \

echo && \

INSTALL_MODE="stable" && \

VERSION=$(curl -s https://resource.fit2cloud.com/1panel/package/${INSTALL_MODE}/latest) && \

package_file_name="1panel-${VERSION}-linux-${architecture}.tar.gz" && \

package_download_url="https://resource.fit2cloud.com/1panel/package/${INSTALL_MODE}/${VERSION}/release/${package_file_name}" && \

echo && \

echo "安装包下载连接:${package_download_url}"&& \

echo && \

echo "正在下载1panel ${architecture}架构${VERSION}版本安装包" && \

echo && \

curl -LOk -o ${package_file_name} ${package_download_url} && \

echo && \

echo "正在升级到1panel ${architecture}架构的${VERSION}版本" && \

echo && \

tar zxvf ${package_file_name} && \

cd 1panel-${VERSION}-linux-${architecture} && \

cp ./1panel /usr/local/bin && chmod +x /usr/local/bin/1panel && \

cp ./1pctl /usr/local/bin && chmod +x /usr/local/bin/1pctl && \

systemctl restart 1panel && \

echo && \

echo "正在清理升级到1panel ${architecture}架构 ${VERSION}版本的残留文件" && \

echo && \

cd ~ && \

rm -rf 1panel-${VERSION}-linux-${architecture}.tar.gz && \

rm -rf 1panel-${VERSION}-linux-${architecture} && \

echo && \

echo "升级到1panel ${architecture}架构 ${VERSION}版本相关命令已执行完毕"

1.3 修改面板显示版本

  • 备份旧数据库

# 将原始数据库文件备份为 .bak 文件

cp /opt/1panel/db/1Panel.db /opt/1panel/db/1Panel.db.bak

  • 打开数据库文件

# 打开 SQLite3 数据库

sqlite3 /opt/1panel/db/1Panel.db

  • 修改版本信息,按需修改v1.3.6

UPDATE settings

SET value = 'v1.3.6'

WHERE key = 'SystemVersion';

  • 退出修改

.exit

  • 重启面板应用更改

# 重新启动 1panel 服务

systemctl restart 1panel

2. 离线更新

2.1 准备离线文件

创建离线文件存放文件夹


# 创建目录

mkdir -p 1p-offline-update

2.1.1 准备1panel安装包

设置架构版本


architecture="amd64"

  • x86_64架构,对应架构版本amd64

  • arm64架构,对应架构版本arm64

  • armv7l架构,对应架构版本armv7

  • ppc64le架构,对应架构版本ppc64le

  • s390x架构,对应架构版本s390x

以下是个完整片段,直接复制到终端运行。


INSTALL_MODE="stable" && \

VERSION=$(curl -s https://resource.fit2cloud.com/1panel/package/${INSTALL_MODE}/latest) && \

package_file_name="1panel-${VERSION}-linux-${architecture}.tar.gz" && \

package_download_url="https://resource.fit2cloud.com/1panel/package/${INSTALL_MODE}/${VERSION}/release/${package_file_name}" && \

echo && \

echo "安装包下载连接:${package_download_url}"&& \

echo && \

echo "正在下载1panel ${architecture}架构${VERSION}版本安装包" && \

echo && \

curl -Lk -o 1p-offline-update/1panel-latest.tar.gz ${package_download_url}

2.1.2 准备SQLite3安装包

在在线环境中下载SQLite3二进制包:

  • 在浏览器中打开 :https://packages.debian.org/bullseye/sqlite3

  • 在页面上找到适合你系统架构的二进制包(例如,amd64i386等)。

  • 点击二进制包名称,然后在页面中找到列表中的一个下载链接。

  • 在弹出的下载对话框中选择一个目标位置,然后下载该二进制包(.deb文件)。

例子:

终端方式


# 使用wget命令下载SQLite3的.deb文件,并将其保存到1p-offline-update目录下

wget -O 1p-offline-update/sqlite3.deb http://ftp.cn.debian.org/debian/pool/main/s/sqlite3/sqlite3_3.34.1-3_amd64.deb

关于依赖:

要求

  • libc6 (>= 2.29), libreadline8 (>= 6.0), zlib1g (>= 1:1.2.0), libsqlite3-0 (= 3.34.1-3)

Debian11已经自带,无需额外安装依赖,有需求的注意下载相关依赖。

2.2 拷贝文件到离线机器

通过scpsftp、存储设备拷贝等方式将所需的文件放到需要离线安装1Panel的机器上。

2.3 更新到最新版1panel

本地无网络机器上文件准备就绪,假如所需文件放在/root/1p-offline-update下。

然后开始正式更新。


# 进入 /root/1p-offline-update 目录

cd /root/1p-offline-update

# 解压缩 1panel-latest.tar.gz 文件

tar zxvf 1panel-latest.tar.gz

这里需要按需修改为实际文件夹


# 进入 1panel-v1.3.6-linux-amd64 目录

cd 1panel-v1.3.6-linux-amd64

更新文件


# 将 1panel 可执行文件复制到 /usr/local/bin 目录,并赋予执行权限

cp ./1panel /usr/local/bin && chmod +x /usr/local/bin/1panel

# 将 1pctl 可执行文件复制到 /usr/local/bin 目录,并赋予执行权限

cp ./1pctl /usr/local/bin && chmod +x /usr/local/bin/1pctl

# 重新启动 1panel 服务

systemctl restart 1panel

更新完成

2.4 安装SQLite3


# 进入 /root/1p-offline-update 目录

cd /root/1p-offline-update

# 安装 SQLite3 的 .deb 文件

dpkg -i sqlite3.deb

2.5 修改面板显示版本

  • 备份旧数据库

# 将原始数据库文件备份为 .bak 文件

cp /opt/1panel/db/1Panel.db /opt/1panel/db/1Panel.db.bak

  • 打开数据库文件

# 打开 SQLite3 数据库

sqlite3 /opt/1panel/db/1Panel.db

  • 修改版本信息,按需修改v1.3.6

UPDATE settings

SET value = 'v1.3.6'

WHERE key = 'SystemVersion';

  • 退出修改

.exit

  • 重启面板应用更改

# 重新启动 1panel 服务

systemctl restart 1panel

1 个赞