我一直在使用PDFTKServer OSX pre 10.11超过一年没有任何问题在命令行上运行命令.
安装OSX 10.11 beta后,我无法再PDFTK在命令行上运行任何Server命令.它不会抛出任何错误,我尝试执行的所有命令都会无限期地挂起.
我PDFTK一直从服务器网站下载的pkg安装:
https://www.pdflabs.com/tools/pdftk-server/
我也尝试使用Homebrew从源代码安装.安装工作,但我得到相同的结果,命令只挂在终端:
我已经通过他们的反馈助手应用程序向Apple发送了投诉,该应用程序在两个月前安装测试版时安装,没有响应.
我被告知Apple反馈助理:
您可能永远不会收到回复.Apple仅通过反馈助手回复操作系统中需要其他信息的主要错误.它不是获得支持的一种方式,对第三方应用程序来说更是如此.
我还联系了包装的制造商PDF Labs,但没有回复.
在MacPorts上,他们遇到了OS X 10.11上的构建问题,这是否意味着PDFtk和10.11在软件级别存在兼容性问题?
我在网上搜索了一些线索,了解可能导致问题的原因以及解决方法,但没有找到任何实际问题.
在OS X上,我不知道如何确定升级后是否存在权限或路径甚至是Java问题.
任何有助于解决根本原因或提供修复的帮助都表示赞赏.
更新1:
我从PDF实验室的Sid Steward那里听到了回复:
只要测试版已经发布,我们就一直在努力解决这个问题.我们仍在努力.似乎与pdftk使用的一个(非Apple)库和OS X 10.11不兼容.目前我正在为Apple的开发人员工具安装另一个更新,希望它能解决问题.我会告诉你我们的进展.
更新2:
看起来有两个线程在pdftk下运行,并且它们已经死锁.这意味着每个线程都在等待另一个线程完成.我不是这里的专家,但那是我的印象.以下是来自Mac的Activity Monitor的截图,用于说明:
上面的快照来自于尝试在OS X 10.11上运行我们网站上当前的pdftk二进制文件.上面提到的libgcj库带有pdftk,其他的是OS X库.
正如我所说,我刚刚安装了Xcode 7.0.1,它于昨天在App商店发布.我现在将尝试使用这些工具来构建pdftk.
更新3:
MacPorts正在使用PDFtk解决构建问题,这是该线程的更新(注意:这与PDFtk Labs无关):
这是因为在10.11中使用Apple Clang 7重新编译了libunwind,产生了新的有效优化(根据Apple),它在FSF boehm-gc中发现了一个未知的错误.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848
不要指望Apple有任何修复,因为他们无法触及GPLv3代码来查看FSF boehm-gc问题(除非他们使用的gcc43包应该仍然是GPLv2).这个问题是由重新编译libunwind引发的,这一事实表明,从10.10替换libunwind.dylib会消除boehm-gc和gcj失败.
请注意,这是作为radr:// 21372179提交的,"基于10.10构建的FSF boehm-gc库无法通过10.11的测试",但作为FSF boehm-gc错误关闭.
更新4:
如何轻松地将大型PDF拆分为两个(或更多)单独的PDF?
假设我们有foo-bar.pdf,foo部分来自第1-12页,部分栏是从第13页到结尾.我想把foo-bar.pdf分成foo.pdf和bar.pdf.
我想使用 pdftk 但我总是收到这个错误zsh: bad CPU type in executable: pdftk我重新安装了 pdftk 并且我将终端从 bsh 更改为 zsh,因为我在搜索如何解决此错误时发现但没有任何成功。我正在使用最新的 MacOS 版本“Catalina v10.15.4”
如何在Homebrew公式中描述替代依赖项?我正在考虑两种不同的类型.
我的公式可以取决于包装,P或者Q它必须有一个.所以,我也想要
depends_on 'P'
Run Code Online (Sandbox Code Playgroud)
要么
depends_on 'Q'
Run Code Online (Sandbox Code Playgroud)
我至少需要一个.
我的公式需要另一个X用于构建的包,它需要一个X带有两个标志之一的包,A和B.也就是说,我也想要
depends_on 'X' => [:build, 'A']
Run Code Online (Sandbox Code Playgroud)
要么
depends_on 'X' => [:build, 'B']
Run Code Online (Sandbox Code Playgroud)
我至少需要一个.
这些替代依赖项有用的具体示例是依赖于的公式gcc.gcc(例如gcc4[3-9])有多个包,可以由上面的#1支持.gcc有一个enable-all-languages暗示的标志enable-java,所以如果需要的公式gcj将使用#2来指定替代标志.