我想设置一组最小的 cygwin 应用程序(ls、diff、path、find、grep),以便它们在没有完整 cygwin 安装的机器上运行。
我假设我需要的只是相关的 *.exe 文件和 *.dll。到目前为止,这就是我所拥有的。到目前为止它有效,但我想知道我可能会遇到任何问题。
我想设置一组最小的 cygwin 应用程序(ls、diff、path、find、grep),以便它们在没有完整 cygwin 安装的机器上运行。
我假设我需要的只是相关的 *.exe 文件和 *.dll。到目前为止,这就是我所拥有的。到目前为止它有效,但我想知道我可能会遇到任何问题。
不是真的,但你可能想看看UnxUtils,对于你描述的那种应用程序,它比 cygwin 有一些优势:
它不依赖于外部 DLL。
可执行文件使用 msvcrt.dll,而不是 cygwin.dll,因此它们可以很好地与本机 Windows 路径配合使用。/cygdrive 路径与系统其余部分使用的本机路径之间没有断开连接。
由于(2),如果您有机会必须这样做,它可以更好地集成到命令或 bat 文件中。
UnxUtils 非常适合将 sed 等功能部署到 Windows 机器,因为您只需将 sed.exe 放入应用程序目录,而不必担心注册任何 DLL 或其他安装复杂性。CMD.exe 将很好地管道和重定向以在批处理文件中使用它们,并且实用程序不介意\r\n
行终止符。
还有GnuWin32项目。我使用它和CygWin,所以有时我很难说出我在什么样的环境中工作......这并不是一件坏事!
我可以看到的一个问题是许可。您可能需要研究在什么条件下可以重新分发二进制文件。(这可能很简单,例如在 README 文件中包含关于从何处获取源的语句。)
另一个问题是 Cygwin 更新。当新的二进制文件发布时,您将如何让最终用户保持最新状态?
第三个潜在问题是应用程序需要的配置文件。然而,毫无疑问,这很容易在测试中弄清楚。
你考虑过MinGW吗?它似乎比 Cygwin 更适合您的目的。