从软件包安装

在 Ubuntu 24.04 上通过 lavik.dev 的签名 APT 仓库安装 Lavik 0.1.0-beta.1,选择 Minimal 或 Standard,并通过 systemd 启动持久化单机服务。

准备工作

使用 AMD64 或 ARM64 架构的 Ubuntu 24.04(noble),要求 Linux 6.1 或更高版本并启用 io_uring。此仓库暂不支持其他 Ubuntu 或 Debian 版本,请勿在源配置中替换为其他发行版代号。服务命令需要主机由 systemd 启动;如需 Docker,请参阅 Docker 安装指南。

至少为初始数据文件预留 1 GiB 磁盘空间,并为日志及数据增长保留空间。默认服务仅监听 127.0.0.1:6379,使用两个工作线程,配置的内存预算为 512 MiB,只有手动启用后才会启动。请先停止占用该端口的 Redis 或 Lavik 服务,或在启动前修改 Lavik 端口。

添加仓库并安装 Minimal

以具有 sudo 权限的用户运行以下命令。仓库由 aptly 管理,通过 lavik.dev 的 HTTPS 提供服务。APT 使用专属密钥验证签名元数据和软件包校验和。Debian 版本号 0.1.0~beta.1-1 表示上游 0.1.0-beta.1、打包修订版 1;波浪号使预发布版本的排序低于最终 0.1.0 版本。

install.sh

Linux · bash
# Ubuntu 24.04 (noble), AMD64 or ARM64
(
set -eu
. /etc/os-release
[ "$ID" = ubuntu ] && [ "$VERSION_ID" = 24.04 ] || { echo "Ubuntu 24.04 required"; exit 1; }
case "$(dpkg --print-architecture)" in amd64|arm64) ;; *) echo "Unsupported architecture"; exit 1 ;; esac
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -d -m 0755 /etc/apt/keyrings
key_file=$(mktemp)
trap 'rm -f "$key_file"' EXIT
curl --fail --location https://lavik.dev/apt/lavik-archive-keyring.asc \
  -o "$key_file"
sudo install -m 0644 "$key_file" /etc/apt/keyrings/lavik.asc
cat <<EOF_SOURCE | sudo tee /etc/apt/sources.list.d/lavik.sources
Types: deb
URIs: https://lavik.dev/apt
Suites: noble
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/lavik.asc
EOF_SOURCE
sudo apt-get update
sudo apt-get install -y 'lavik=0.1.0~beta.1-1'
lavik --version
)

lavik 软件包对应 Minimal:使用内核 TCP 和 io_uring,不含 SPDK/DPDK。它将 lavik、lavik-meta 和 lavik-ctl 安装到 /usr/bin,可在任意目录直接运行。lavik --version 应输出 lavik 0.1.0-beta.1。软件包附带单机服务,不会自动初始化 Meta 集群。

仓库签名密钥指纹:CB38 CDB9 9DC0 5B6A 4E7F 6A9E E3CC E7BD 0D92 E252。密钥通过 Signed-By 仅关联此软件源,无需全局 apt-key 导入或 trusted=yes。

选择 Standard

如果需要支持 SPDK/DPDK 的二进制文件,在添加相同仓库后安装 lavik-standard,而非 lavik。两种软件包提供相同命令,因此不能共存。Standard 在 AMD64 上要求 x86-64-v2,在 ARM64 上要求 ARMv8-A 和 CRC32。APT 会安装其 libnuma 和 libuuid 运行时依赖。

standard.sh

Linux · bash
# Alternative to Minimal; do not install both variants together.
sudo apt-get install 'lavik-standard=0.1.0~beta.1-1'
lavik --version

安装 Standard 不会自动启用 SPDK:附带服务仍使用内核 TCP 和 io_uring。SPDK 需要另外配置大页、设备归属和启动参数。已有服务切换软件包前,请备份数据库、停止服务并安排维护窗口,确认 APT 的移除提示。

Standard 与 SPDK 配置 →

启动并连接 Lavik

服务以专用 lavik 用户运行。首次启动会预分配 /var/lib/lavik/data,已有数据不会被截断。等待服务启动后,PING 返回 PONG,SET 返回 OK,GET 返回 lavik。

start.sh

Linux · bash
sudo systemctl enable --now lavik
sudo systemctl status lavik --no-pager
sudo apt-get install -y redis-tools
redis-cli -h 127.0.0.1 -p 6379 PING
redis-cli -h 127.0.0.1 -p 6379 SET hello lavik
redis-cli -h 127.0.0.1 -p 6379 GET hello

默认监听不设密码,但仅限本机访问。远程开放前,请配置认证、TLS 和网络访问控制。高级服务参数可通过 lavik --help 查看,并在 systemd 覆盖配置中设置相应启动命令;软件包默认值用于本地起步。

配置与管理服务

使用 sudo 编辑 /etc/default/lavik,可设置 LAVIK_BIND、LAVIK_PORT、LAVIK_THREADS 和 LAVIK_DATA_SIZE,然后重启服务。LAVIK_DATA_SIZE 仅控制首次分配,修改它不会扩大或缩小已有数据库文件。/usr/lib/lavik/start 中的 512 MiB 内存设置是入门配置;更大负载请使用 systemd ExecStart 覆盖,而不要直接修改软件包脚本。

manage.sh

Linux · bash
sudo journalctl -u lavik -n 50 --no-pager
sudo systemctl restart lavik
redis-cli -h 127.0.0.1 -p 6379 GET hello
# Stop the server without removing its package or data.
sudo systemctl stop lavik

数据位于 /var/lib/lavik,文件日志位于 /var/log/lavik。Debian 的配置文件机制会保留 /etc/default/lavik 中的修改。升级正在运行的服务可能触发重启,请先备份并安排维护窗口。apt-get remove 或 apt-get purge 会停止并移除软件包,但会保留数据库、日志和服务用户。删除这些数据目录是独立的破坏性操作。

管理主从集群 →

故障排查

出现 NO_PUBKEY 或签名错误时,请检查密钥下载及 Signed-By 路径,不要禁用签名验证。“Unable to locate package” 通常表示源未成功添加或 apt-get update 失败。启动失败时,请检查 journalctl 和 /var/log/lavik,并排查端口冲突、磁盘空间、数据目录归属以及内核是否允许 io_uring。若容器中 PID 1 不是 systemd,请使用专用 Docker 镜像,而非 systemctl。

使用 Docker 安装 →