Skip to content

[Bug] 在 Fedora 43 Workstation 上安装 Forge 失败 #4825

Closed as not planned

Description

@TomatoPuddin

问题描述 | Bug Description

问题

在最近发布的 Fedora 43 workstation 上安装 mc 1.20.1 + forge 任意版本都会失败,错误信息为哈希不正确:
Image

猜测原因

该发行版预装 zlib-ng 提供 deflate 压缩算法实现,而不是 zlib 官方库。该库以性能著称,但是输出的压缩数据与官方库不同,而 hmcl 正是通过对比 forge installer 内清单提供的哈希和安装完成后输出 jar 的哈希来校验安装结果,因而误判了安装失败。

Image

LOG.info("Executing external processor " + processor.getJar().toString() + ", command line: " + new CommandBuilder().addAll(command).toString());
int exitCode = SystemUtils.callExternalProcess(command);
if (exitCode != 0)
throw new IOException("Game processor exited abnormally with code " + exitCode);
for (Map.Entry<String, String> entry : outputs.entrySet()) {
Path artifact = Paths.get(entry.getKey());
if (!Files.isRegularFile(artifact))
throw new FileNotFoundException("File missing: " + artifact);
String code;
try (InputStream stream = Files.newInputStream(artifact)) {
code = DigestUtils.digestToString("SHA-1", stream);
}
if (!Objects.equals(code, entry.getValue())) {
Files.delete(artifact);
throw new ChecksumMismatchException("SHA-1", entry.getValue(), code);
}
}

此外,forge 官方也遇到过类似的问题 MinecraftForge/Installer#77

启动器崩溃报告 / 启动器日志文件 | Launcher Crash Report / Launcher Log File

[00:58:33] [@.util.platform.SystemUtils.onLogLine/INFO]   Data  assets/minecraft/models/item/crimson_door.json
[00:58:33] [@.util.platform.SystemUtils.onLogLine/INFO]   Data  assets/minecraft/models/item/bamboo_mosaic_slab.json
[00:58:33] [@.util.platform.SystemUtils.onLogLine/INFO]   Data  assets/minecraft/models/item/turtle_helmet_quartz_trim.json
[00:58:34] [@.task.AsyncTaskExecutor.lambda$executeNormalTask$31/TRACE] Task failed: org.jackhuang.hmcl.download.forge.ForgeNewInstallTask$ProcessorTask
org.jackhuang.hmcl.util.io.ChecksumMismatchException: Incorrect checksum (SHA-1), expected: de86b035d2da0f78940796bb95c39a932ed84834, actual: 194fcc11cdc1a242cbcb828c1bb0fdf2632f26ee
	at org.jackhuang.hmcl.download.forge.ForgeNewInstallTask$ProcessorTask.execute(ForgeNewInstallTask.java:172)
	at org.jackhuang.hmcl.task.AsyncTaskExecutor.lambda$executeNormalTask$22(AsyncTaskExecutor.java:244)
	at org.jackhuang.hmcl.util.Lang.lambda$wrap$2(Lang.java:316)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

Activity

  1. burningtnt commented on Dec 7, 2025

    @burningtnt
    Member

    HMCL 不会调用系统的解压缩工具来处理压缩包,你需要提供完整的启动器日志。

    一般来说,该问题由 Lex 更改历史发行版 且 镜像源同步不及时 导致。

  2. Glavo commented on May 8, 2026

    @Glavo
    Member
  3. TomatoPuddin commented on May 8, 2026

    @TomatoPuddin
    ContributorAuthor

    好好好

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions