# steam-arm64 **Repository Path**: shenmo7192/steam-arm64 ## Basic Information - **Project Name**: steam-arm64 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-13 - **Last Updated**: 2026-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # steam-arm64 Steam 客户端(linuxarm64)**离线安装包**的构建仓库。 上游那套 arm64 Steam 安装脚本,在安装阶段要从 Valve CDN 抓两个文件: - `steam_client_linuxarm64` —— 客户端清单 - `bins_linuxarm64_linuxarm64.zip.` —— 客户端基础包(约 110 MB) 本仓库把它们随 `.deb` 一起分发,于是**安装与首次部署都不需要网络**;另外补上了桌面项和 官方图标,装完双击图标就能启动,全程不需要 root。 产出的包:`steam`,架构 `arm64`,例如 `steam_1788652215-3_arm64.deb`。 ## 包内结构 | 路径 | 说明 | | --- | --- | | `/usr/bin/steam` | 启动器。首次运行自动完成部署,随后启动客户端 | | `/usr/bin/steam-arm64-setup` | 只部署、不启动(预装/脚本化场景) | | `/usr/lib/steam/libexec/steam-offline-setup.sh` | 部署脚本本体 | | `/usr/lib/steam/payload/steam_client_linuxarm64` | 客户端清单(Valve CDN 原件) | | `/usr/lib/steam/payload/bins_linuxarm64_linuxarm64.zip.*` | 客户端基础包(Valve CDN 原件) | | `/usr/lib/steam/libexec/steamrtarm64-symlinks.tar` | 补齐 zip 里 3 个软链接条目的 overlay | | `/usr/share/applications/steam.desktop` | 桌面项(`Exec=/usr/bin/steam %U`,无终端) | | `/usr/share/icons/hicolor/*/apps/steam.png` | 16–256px 图标,另有 `/usr/share/pixmaps/steam.png` | ## 构建 ```bash git clone https://gitee.com/shenmo7192/steam-arm64.git cd steam-arm64 ./build.sh # 产出 out/steam_<客户端版本>-<修订>_arm64.deb ``` 构建依赖:`curl`、`python3`、`dpkg-deb`、`tar`、`gzip`、`sha256sum`;装了 `desktop-file-validate` 会顺手校验桌面项。 `build.sh` 会联网下载清单与客户端包,按清单里的 sha256 校验后打包。 **载荷不进 git**:`payload/`、`pkg/`、`out/` 都在 `.gitignore` 里,仓库里只有脚本、文档和图标。 ## 安装使用 ```bash sudo apt install ./steam_<版本>_arm64.deb ``` 然后双击菜单或桌面上的 Steam 图标即可;终端里执行 `steam` 等价。 `steam` 首次运行会: 1. 按清单里的 sha256 校验随包客户端包,损坏则报错退出; 2. 解压到 `~/.local/share/Steam`(可用 `STEAMDIR` 覆盖); 3. 建立 `~/.steam/steam`、`~/.steam/sdkarm64|sdk64|sdk32` 软链接; 4. 检查 GTK2 版 `libappindicator.so.1` 与 `libvpx.so.6`,缺失只提示; 5. 启动客户端。 重复执行是安全的(幂等)。只想先部署:`steam-arm64-setup`;换目录: `STEAMDIR=/path/to/steam steam-arm64-setup`。 部署只写当前用户的家目录,**不调用 `sudo`、不改 `/usr/lib`、不装任何东西**; 装包本身交给 dpkg/apt。客户端首次启动仍会从 Steam 拉运行时与资源包(实测约 650 MB, 视客户端版本而异),登录和下载游戏当然也需要网络。 ## 依赖 `Depends` 与上游脚本 `apt-get install` 的那批库一一对应;发行版重命名的库给了备选, 例如 `libasound2t64 | libasound2`、`libgtk2.0-0t64 | libgtk2.0-0`。`libgtk2.0-0t64`、 `libnsl2` 在 Debian trixie 仓库里有,`apt` 会自动补。 **`libibus-1.0-5` 是必需项。** 少了 `libibus-1.0.so.5`,界面进程 `steamwebhelper` 会在 加载期就失败(`error while loading shared libraries: libibus-1.0.so.5`)并被反复重启, 现象是“后端正常下载运行时,但窗口一直不出来”。客户端自带目录里只有 `libSDL3.so.0` 等少数库,`libibus` 不在其中,需要系统提供(trixie 仓库里有 `libibus-1.0-5`)。 需要特别留意的是 **`libvpx6`**:Steam arm64 客户端要找 soname `libvpx.so.6`,它由 `libvpx6` 提供。Debian trixie/bookworm 官方仓库里没有 `libvpx6`(只有 `libvpx9`, `libvpx7` 只是指向 `libvpx9` 的包装包),所以这一项需要自行提供(随包分发对应的 `libvpx6_*_arm64.deb`,或放进自己的软件源)。本包按“依赖由包管理器负责”的方式声明, 不再用 sudo 去 `/usr/lib` 里造软链。 ## 两个实现细节 **载荷完整性。** 部署前用清单里记录的 sha256 校验客户端包,不一致直接退出—— 介质损坏时不会解开一个残缺的客户端。 **zip 里的软链接。** Valve 的 zip 用反斜杠命名软链接条目(`steamrtarm64\libs\libcurl.so`, 内容为链接目标),`unzip` 会把它当普通文件名而跳过。构建时用 `python3` 从同一个 zip 里 把这些条目提取成一个小 tar(`steamrtarm64-symlinks.tar`),部署时解到目标目录, 保证 `libs/libcurl.so`、`libs/libnghttp2.so`、`libs/libnghttp2.so.14` 存在。 **桌面项用绝对路径。** `Exec=/usr/bin/steam %U`:如果机器上 `/usr/local/bin/steam` 有一个同名旧包装器,用裸 `steam` 会被它抢走,双击就没反应。 ## 版本与更新到新的客户端 包版本(当前 `0.1.1`)由 `debian/changelog` 首条决定,**与 Valve 的客户端版本号无关**; `build.sh` 每次都从清单里读出实际打进去的客户端版本并打印出来(当前 `1788652215`)。 要跟进新的客户端:直接重跑 `./build.sh` 即可(它会重新下载并校验最新载荷); 需要发新版本时在 `debian/changelog` 顶部加一条 `steam (<新包版本>) ...`。 ## 目录结构 ``` . ├── build.sh # 下载 → 校验 → 组装 pkg/ → dpkg-deb 打包 ├── debian/changelog # 版本与修订来源 ├── src/ # 打进包里的静态内容 │ ├── DEBIAN/control │ └── usr/{bin,lib/steam,share/{applications,icons,pixmaps,doc}} ├── payload/ # 构建时下载的 Valve 载荷(git 忽略) ├── pkg/ # 组装出的包目录(git 忽略) └── out/ # 产出的 .deb(git 忽略) ``` ## 来源与许可 - `steam_client_linuxarm64` 与 `bins_linuxarm64_linuxarm64.zip.*` 是 Valve 的专有软件, 从官方 CDN 原样收录、未做修改,由 `build.sh` 在构建时下载,不进入本仓库。 - 图标取自 Steam 官方(`store.steampowered.com` 的 256×256 favicon),商标归 Valve。 - 本仓库的打包脚本、部署脚本、桌面项与文档:MIT,作者 shenmo ``。