fix(deploy): apt 安装 Assimp 不再写死 libassimp6

Debian 11 / Ubuntu 22.04 的库包是 libassimp5,Debian 12+ 才是 libassimp6;
写死库名会让 apt 报 'no installation candidate',自动安装直接失败。
改为只装 assimp-utils(它按发行版依赖对应的库版本)。
This commit is contained in:
opendance
2026-09-16 02:56:50 +08:00
parent da03777995
commit afed67e175
5 changed files with 9 additions and 7 deletions
+1 -1
View File
@@ -65,7 +65,7 @@ export function resolveAssimpBinary(bin: string): AssimpLocation {
/** 各发行版的安装命令(部署脚本与错误信息共用同一份文案) */
export const ASSIMP_INSTALL_COMMANDS: ReadonlyArray<{ distro: string; command: string }> = [
{ distro: 'Debian / Ubuntu', command: 'apt-get update && apt-get install -y assimp-utils libassimp6' },
{ distro: 'Debian / Ubuntu', command: 'apt-get update && apt-get install -y assimp-utils' },
{ distro: 'RHEL / CentOS / Rocky / Fedora', command: 'dnf install -y assimp' },
{ distro: 'Alpine', command: 'apk add --no-cache assimp' },
{ distro: 'Arch', command: 'pacman -S --noconfirm assimp' },
+2 -2
View File
@@ -178,7 +178,7 @@ describe('deploy/assimp-lib.sh:部署脚本共用的安装逻辑', () => {
writeFileSync(join(aptDir, 'apt-get'), '#!/bin/bash\nexit 0\n');
chmodSync(join(aptDir, 'apt-get'), 0o755);
const result = runLib('opendance_assimp_install_cmd', `${aptDir}:/usr/bin:/bin`);
expect(result.stdout).toContain('apt-get install -y assimp-utils libassimp6');
expect(result.stdout).toContain('apt-get install -y assimp-utils');
});
it('opendance_assimp_install 调用包管理器安装 assimp-utils(离线失败也不抛)', () => {
@@ -190,7 +190,7 @@ describe('deploy/assimp-lib.sh:部署脚本共用的安装逻辑', () => {
const result = runLib('opendance_assimp_install', `${aptDir}:/usr/bin:/bin`);
expect(result.status).toBe(0);
const calls = existsSync(log) ? readFileSync(log, 'utf8') : '';
expect(calls).toContain('apt-get install -y -qq assimp-utils libassimp6');
expect(calls).toContain('apt-get install -y -qq assimp-utils');
});
it('非常规目录需要写 ASSIMP_BIN,标准目录不需要', () => {