You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
---
title: 版本升级
description: 版本升级指南
---
当前最新版本为: 1.5.5。在更新之前建议先查阅变更日志:< https: // github . com / halo-dev / halo / releases / tag / v1 . 5 . 5 >
## Linux
:::info
我们假设你存放运行包的路径为 `~/app` ,运行包的文件名为 `halo.jar` ,且使用了 systemd 进行进程管理,如有不同,下列命令请按需修改。
:::
1. 停止正在运行的服务
```bash
service halo stop
```
2. 备份数据以及旧的运行包(**重要**)
```bash
cp -r ~/.halo ~/.halo.archive
```
```bash
mv ~/app/halo.jar ~/app/halo.jar.archive
```
> 需要注意的是,`.halo.archive` 和 `halo.jar.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。
3. 清空 [leveldb ](./config.md#缓存 ) 缓存(如果有使用 leveldb 作为缓存策略)
```bash
rm -rf ~/.halo/.leveldb
```
4. 下载最新版本的运行包
```bash
cd ~/app && wget https://dl.halo.run/release/halo-1.5.5.jar -O halo.jar
```
:::info
如果下载速度不理想,可以[在这里](/getting-started/downloads)选择其他下载地址。
:::
5. 启动测试
```bash
java -jar halo.jar
```
:::info
如测试启动正常,请继续下一步。使用 < kbd > CTRL</ kbd > +< kbd > C</ kbd > 停止运行测试进程。
:::
6. 重启服务
```bash
service halo start
```
## Docker
:::info
我们假设您的容器是按照 [使用 Docker 部署 Halo ](/getting-started/install/docker ) 中的命令构建的。如有不同,请根据实际情况修改。
:::
1. 停止并删除当前运行中的容器
```bash
docker stop halo
```
```bash
docker rm -f halo
```
:::info
你的容器名称不一定为 `halo` ,在执行前可以先执行 `docker ps -a` 查看一下。
:::
2. 备份数据(重要)
```bash
cp -r ~/.halo ~/.halo.archive
```
> 需要注意的是,`.halo.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。
3. 清空 [leveldb ](./config.md#缓存 ) 缓存(如果有使用 leveldb 作为缓存策略)
```bash
rm -rf ~/.halo/.leveldb
```
4. 拉取最新的 Halo 镜像
```bash
docker pull halohub/halo:1.5.5
```
:::info
查看最新版本镜像:< https: // hub . docker . com / r / halohub / halo > ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
:::
5. 创建容器
```bash
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart= unless-stopped halohub/halo:1.5.5
```
- **-it: ** 开启输入功能并连接伪终端
- **-d: ** 后台运行容器
- **--name: ** 为容器指定一个名称
- **-p: ** 端口映射,格式为 `主机(宿主)端口:容器端口` ,可在 `application.yaml` 配置。
- **-v: ** 工作目录映射。形式为:-v 宿主机路径:/root/.halo, 后者不能修改。
- **--restart: ** 建议设置为 `unless-stopped` ,在 Docker 启动的时候自动启动 Halo 容器。