跳到主要内容

Linux 安装包

CortexFS 为源码安装器支持的 Linux 发行版提供原生包元数据:Arch、Debian/Ubuntu、 Fedora/RHEL 与 openSUSE/SLES。安装包包含发布二进制文件、systemd 单元、运行目录、MIT 许可证以及规范文档。 发布产物同时包含 cortexfs-channel 以支持多平台 IM bridge;安装后需按 通道文档 配置。 可选打包适配器还包括官方 Agent SDK 角色二进制 (cortexfs-agent-architect、cortexfs-agent-executor、 cortexfs-agent-product-manager)以及一次性 cortexfs-futureagi 评估器。它们不是额外的 /ctx 根。 源码安装器与 RPM spec 都会构建 -p cortexfs-agents,与 Debian、Arch、tar 负载一致。

使用宿主机原生打包工具从检出目录构建安装包:

./packaging/build.sh --format deb
./packaging/build.sh --format rpm
./packaging/build.sh --format arch
./packaging/build.sh --format tar

--format all 会在当前主机上构建全部可用格式。Debian、Arch 与 tar 格式会执行一次 统一构建。RPM 使用原生 spec 并从源码归档重建,这样才能满足 Fedora/RHEL 的构建服务 路径。

使用系统原生包管理器安装生成的包。文件名使用 Cargo.toml 中的 workspace 版本 (当前为 0.1.21):

# Debian 或 Ubuntu
sudo apt install ./dist/cortexfs_*_amd64.deb

# Fedora、RHEL 兼容系统,或具有 RPM 工具链的 openSUSE/SLES
sudo dnf install ./dist/cortexfs-*-*.rpm

# Arch Linux
sudo pacman -U ./dist/cortexfs-*-x86_64.pkg.tar.zst

tarball 是面向无原生包管理器环境的可移植文件系统负载;请先确认内容后仅解压到 /:

tar -tzf dist/cortexfs-*-linux-x86_64.tar.gz
sudo tar -C / -xzf dist/cortexfs-*-linux-x86_64.tar.gz

默认输出目录是 dist/。安装器会创建配置与存储父目录,但在卸载时不删除它们。 首次安装会启用 cortexfs.service 和 cortexfs-terminal-broker.socket 但不启动挂载; 请在确认主机的 FUSE 与 bubblewrap 设置后再启动:

sudo systemctl start cortexfs.service
ctx doctor

安装包不会创建新的 /ctx ABI 入口或第二套配置存储。agent 控制 socket 仍是现有的 cortexfs-agent@.socket 实例。终端会话使用 root 所有、socket 激活的 broker, 包升级只在新文件安装完成后重启已运行的挂载服务。

Hosted CLI egress 使用 passt 包提供的 /usr/bin/pasta 以及 /dev/net/tun。 Arch PKGBUILD 与 Arch 源码安装器软件包计划包含 passt。Debian 与 RPM 包元数据 目前没有 Depend/Require 它。缺少 pasta 或 tun 时,即使 policy 允许 network:default connect,显式 hosted 命令仍保持 --unshare-net。无命令的 tsh 路径从不启用 pasta。

打包的 systemd 单元钉死硬 cgroup 上限,避免单个 agent 耗尽主机。 cortexfs.service 使用 MemoryMax=512M、CPUQuota=100%、TasksMax=64。 cortexfs-agent@.service 使用 MemoryMax=512M、CPUQuota=100%、TasksMax=128。 单元设置 MemoryAccounting= 与 TasksAccounting=;不单独写 CPUAccounting=, 因为设置 CPUQuota= 时 systemd 已经打开 CPU accounting。交互式 ctx agent start 终端不同:systemd-run --user 仍通过 support::quota 传入 CPUAccounting=yes,以及 MemoryMax=1G、CPUQuota=200%、TasksMax=256。

首次安装之后,主机更新使用同一套原生包后端:

ctx update --ref main # 解析并检查不可变计划
ctx update --ref main --yes # 构建、安装、验证或回滚

成功的 ref 更新会记录跟踪 ref,之后的计划可以省略 --ref。本地钉死提交用 --source /clean/git/checkout。更新器保留配置、存储、密钥和未活动单元状态; 包所有权安装仅在精确的当前包可用于回滚时才会应用。 活动单元发现会匹配精确的 cortexfs.service 挂载单元,以及 cortexfs-agent@executor.service 这类带连字符的实例名。事务前未活动的单元保持未活动。

ctx update 必须以普通用户运行,并具备 sudo、flock 和控制终端(/dev/tty)。 它拒绝以 root 运行。已安装 helper 是 /usr/lib/cortexfs/update-linux;当该路径就是 正在运行的脚本时,它必须是 root 所有、非符号链接、且不可被组/其他人写。 apply 会从钉死检出中 source scripts/install-linux.sh,因此 helper 不需要第二份 打包的安装器副本。预检仍要求 FUSE 与 bubblewrap 0.10+ 才开始构建。Hosted CLI pasta egress 还需要 /usr/bin/pasta 与 /dev/net/tun;这两项目前不是 Debian 或 RPM 包依赖。

对于仅源代码部署且缺少原生打包构建环境,仍可使用现有安装脚本:

curl -fsSL https://raw.githubusercontent.com/LIghtJUNction/cortexfs/main/scripts/install.sh | sh