有没有人知道是否有适当的方法来重新分发PostgreSQL命令行工具,例如pg_dump和pg_restore?
对于Windows,二进制文件可在“一键式”安装程序中使用,但我只想重新分发命令行工具以自动执行备份和还原,因此> 100MB的有效载荷是完全矫枉过正的。
我显然可以尝试复制整个bin文件夹,但我更想知道我需要什么。
答案 0 :(得分:2)
没有正式的仅限客户分发。当这个问题出现在邮件列表上时,通常的答案是你应该获取.zip发行版,然后使用Dependency Walker (depends.exe)来确定你希望分发的二进制文件需要哪些DLL,将它们捆绑起来并将它们包含在你的应用
PostgreSQL服务器(postgres.exe)非常使用dlopen()/ LoadLibrary(),所以你不能依赖depends.exe。值得庆幸的是,客户端更简单,您可以使用depends.exe来确定它需要什么。 pg_dump,pg_restore或psql不需要额外的脚本,dlopen'd库等。
我从来没有完全满意这个答案,但我从来没有想过要改进它,也不想弄乱包装。 EnterpriseDB的一键安装程序是封闭源代码没有帮助,因此我无法修改它以提供仅客户端的最小程序包。目前,提取可执行文件和相关库是最好的。
如果你考虑一下,如果你自己编译它会发生什么并不是那么不同。你仍然只会拔出客户端位来分发。