离线更新1Panel及脱离面板进行更新的一个示例(1Panel-offline-update-and-terminal-mode-update)

前言

以默认安装路径/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

本文来自:https://file.toolman.me/odc/File/OpenSource/1Panel

THE END
点赞11赞赏 分享
抢沙发
头像
提交
头像

昵称

取消
昵称表情

    暂无评论内容