如何从 Kindle Previewer 中提取 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
—————
参考资料:
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/815.html
延伸阅读
- Sigil 进阶教程:从零开始制作 EPub 电子书
- [每周一书]《变形记》如果有一天,我变成了一只大虫子
- [每周一书]《20世纪思想史》从弗洛伊德到互联网
- [每周一书]《情绪急救》心情又不好了怎么办?
- [每周一书]《掌控谈话》让你不再害怕冲突
- [每周一书]《致命的自负》社会主义的谬误
- [每周一书]《为何家会伤人》带你重新认识家庭
- [每周一书]《逻辑的引擎》从数理逻辑看计算机发展
- [每周一书] 认识你自己《改变心理学的40项研究》
- Kindle伴侣,为静心阅读而生
- [2020.12.11] Kindle 阅读器固件升级至 5.13.4
- [2018.12.21] Kindle Oasis 1 固件升级至 5.10.2
- [每周一书]《意志力》专注、自控与效率的心理学
- Kindle 使用小技巧之用收藏夹分类电子书
- Kindle 怎么导入电子书(图解多种电子书导入方式)
我每次试图转换都会出“permission denied”,这是为什么?
可以用命令
chmod +x /path/to/kindlegen
给 KindleGen 程序添加执行权限。注意把/path/to
替换成真实的 kindlegen 路径。输入指令后应该会显示什么?我输入指令后什么都没有,然后再次打开kindlegen转换还是permission denied,和要转换的文件权限有关吗?
输入的命令如果是正确的没有任何提示,你可以输入
ls -l /path/to/kindlegen
检查 KindleGen 的属性,如果它的权限是-rwxr-xr-x
就表示可执行。出现 permission denied 的提示表示程序没有可执行权限。kindlegen在Windows下执行c2压缩的时候,多线程效率似乎不高==cpu(i7 8550U)占用只有50%左右。
您好,又遇到麻烦了,在将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。
我也想试试win 64位的kindlegen
最新的 Windows 版 Kindle Previewer 3 本身就是 32 位程序,集成的 KindleGen 也是 32 位程序。可能因为 Windows 兼容 32 位程序,亚马逊没有另行开发 64 位版。
哇,谢谢作者,我昨天还留言说的问题今天就解决了,太感谢了!