有一些脚本可以用作 Cygwin 的简单包管理器。但重要的是要知道,它们总是非常有限,因为...嗯...Windows。
安装或删除软件包都很好,Cygwin 的每个软件包管理器都可以做到这一点。但是更新是一件痛苦的事情,因为 Windows 不允许您覆盖当前正在运行的可执行文件。所以你不能更新例如Cygwin DLL 或任何包含 Cygwin 本身当前运行的可执行文件的包。 Cygwin Installation页面上也有这样的说明:
“没有更全功能的包管理器的基本原因是
这样的程序需要完全访问 Cygwin 的所有 POSIX 功能。
然而,这在没有 Cygwin 的环境中很难提供,例如
首次安装时存在。此外,Windows 也不容易允许
覆盖正在使用的可执行文件,因此安装新版本的 Cygwin
包管理器使用 DLL 时的 DLL 是有问题的。”
Cygwin 的设置使用 Windows 注册表覆盖正在使用的可执行文件
并且此方法需要重新启动 Windows。因此,最好关闭
更新软件包之前的所有 Cygwin 进程,因此您不必重新启动
您的计算机以实际应用更改。安装新包
应该完全没有任何麻烦。我不认为任何包管理器
除了 Cygwin 的 setup.exe 实现任何方法来覆盖正在使用的文件,
所以如果它不能覆盖它们,它只会失败。
Cygwin 的一些包管理器:
更新:由于版权问题 (DMCA takedown),该存储库最近被禁用。它looks like 存储库的所有者在 他自己的 存储库上发布了 DMCA 删除,并创建了一个名为 Sage 的新项目(见下文)。
对我来说最好的。仅仅因为它是最新的之一。它不使用 Cygwin 的 setup.exe,而是重新实现了 setup.exe 所做的事情。它适用于两个平台 - x86 以及 x86_64。有许多或多或少具有附加功能的分叉。比如kou1okada fork就是改进版之一,真的很棒。
apt-cyg 只是一个 shell 脚本,没有安装。只需下载它(或克隆存储库),使其可执行并将其复制到 PATH 的某个位置:
chmod +x apt-cyg # set executable bit
mv apt-cyg /usr/local/bin # move somewhere to PATH
# ...and use it:
apt-cyg install vim
还有 bunch of forks 有不同的功能。
另一个作为 shell 脚本实现的包管理器。我没试过,但实际上看起来不错。
它可以搜索存储库中的包,列出类别中的包,检查依赖项,列出包文件等等。它具有其他包管理器所没有的功能。
废弃的原始 cyg-apt 的分支,带有改进和错误修复。它有很多功能,并且是用 Python 实现的。使用make进行安装。
如果您使用 Chocolatey 安装 Cygwin,则可以安装包 cyg-get,它实际上是用 PowerShell 编写的 Cygwin 的 setup.exe 的简单包装器。
Cygwin 的 setup.exe
它还有一个command line mode。此外,它允许您一次升级所有已安装的软件包(就像apt-get upgrade 在基于 Debian 的 Linux 上所做的那样)。
使用示例:
setup-x86_64.exe -q --packages=bash,vim
您可以创建一个别名以便于使用,例如:
alias cyg-get="/cygdrive/d/path/to/cygwin/setup-x86_64.exe -q -P"
然后你可以,例如,安装 Vim 包:
cyg-get vim