如何在 macOS Catalina 中运行 64 位 KindleGen

如果你是 macOS 用户,并且经常使用命令行工具 KindleGen 转换电子书格式,可能已经遇到了这个问题:将 macOS 升级到 Catalina 之后,在终端执行 KindleGen 会出现如下所示的错误提示:

zsh: bad CPU type in executable: kindlegen

问题的原因是 macOS 系统自 Catalina 开始,就停止了对 32 位程序的支持,而KindleGen 官方发布页面却仍未提供 64 位的 KindleGen,这给很多小伙伴带来了不便。那该怎样解决这个问题呢?

虽然 KindleGen 的官方发布页面没有提供 64 位程序,但其实早就存在了。可能是因为亚马逊根据自身业务需求对软件产品的侧重点做了调整,貌似对单独发布 KindleGen 不再感兴趣,转而主推另外一款可视化电子书发布预览工具 Kindle Previewer,用以配合自己的 Kindle Direct Publishing 业务。这款软件有一个将打开的电子书转换为 MOBI 格式的导出功能,这实际上就是利用 KindleGen 来完成的。

最新版的 Kindle Previewer 3 是 64 位程序,并且能够在 macOS Catalina 中正常使用导出 MOBI 格式的功能,说明集成在里面的 KindleGen 也是 64 位程序。因此,我们的解决方案就出来了——可以直接从 Kindle Previewer 3 的软件包中把这个 64 位的 KindleGen 提取出来使用。下面是具体步骤:

首先,下载亚马逊官方提供的最新的 MAC 版 Kindle Previewer 3 并安装(如果你安装了 macOS 的包管理器 Homebrew,也可通过运行命令 brew cask install kindle-previewer 直接安装)。

然后,进入“应用程序(Applications)”目录,找到“Kindle Previewer 3.app”这个软件包,在其上点击右键,在弹出菜单中点“显示包内容”,依次进入目录 Contents/lib/fc/bin 即可找到 kindlegen。

为方便起见,你也可以在“终端”上输入以下命令,直接打开 kindlegen 所在的目录:

open '/Applications/Kindle Previewer 3.app/Contents/lib/fc/bin/'

Kindle Previewer 3 的安装程序约 422MB,安装完成后的软件包更是有 873.3MB 之巨,如果你只想要使用 KindleGen,而不想安装这样一个庞然大物,也可以直接下载书伴为你提取好的 KindleGen 程序:

  • KindleGen 下载(macOS 10.9/x86_64)百度网盘【提取码:8ujw

当然,如果你的电脑已经安装了 Kindle Previewer 3,并且打算长期使用此软件,书伴不建议你将其提取出来,而只需要运行以下这条命令为 KindleGen 创建一个软链接,即可在“终端”上运行它了。

ln -s '/Applications/Kindle Previewer 3.app/Contents/lib/fc/bin/kindlegen' /usr/local/bin/kindlegen

如此,你就可以在 Catalina 或更新版本的 64 位 macOS 系统中使用 KindleGen了。

—————

有小伙伴问到 Windows 版 64 位 KindleGen,这里说明一下。最新的 Windows 版 Kindle Previewer 3 集成的是 32 位 KindleGen,可能由于 Windows 兼容 32 位程序,亚马逊没有另行开发 64 位版。

Windows 版 Kindle Previewer 3 提取 KindleGen 的方法和 macOS 版大致相同:用解压缩软件直接解压 KindlePreviewerInstaller.exe,然后在得到的文件夹中的以下路径即可找到 KindleGen 程序。

KindlePreviewerInstaller/lib/fc/bin/kindlegen.exe

—————

参考资料:

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 6 条评论

  1. kindlegen在Windows下执行c2压缩的时候,多线程效率似乎不高==cpu(i7 8550U)占用只有50%左右。

  2. 您好,又遇到麻烦了,在将Epub用kindlegen转mobi时有些书可以转,有些提示“Item or process id already used: x_cover-image” ,这个怎么解决呢?

    • 这是 EPUB 格式电子书自身的问题。应该是 .opf 文件中的 item 条目有重复 ID,这在 KindleGen 中是不符合标准的。两种解决方法:一种是用 Sigil 编辑 EPUB 文件中的 .opf 文件,找到重复的 ID 值并修正它(比如你留言中的 x_cover-image 就是重复的 ID 值);另一种是直接用 Calibre 把这个 EPUB 文件再转换一次,输出格式仍然选择 EPUB。

        • 最新的 Windows 版 Kindle Previewer 3 本身就是 32 位程序,集成的 KindleGen 也是 32 位程序。可能因为 Windows 兼容 32 位程序,亚马逊没有另行开发 64 位版。