Cygwin软件包管理


16

在cygwin中,我该如何:

  • 列出所有已安装的软件包
  • 列出属于包的文件
  • 告诉文件属于哪个包
  • 安装新套件
  • 卸载软件包
  • 获取有关已安装软件包的信息(deps,版本等)
cygwin 

Answers:


23

列出所有已安装的软件包

cygcheck --check-setup --dump-only
  • 不执行--dump-only该命令将花费几分钟的时间,因为它将测试所有软件包。如果一切正常,您应该为每个软件包都看到一个确定的;)

列出属于包的文件

对于包装,bash请执行以下操作:

cygcheck --list-package bash
  • 它仅适用于已安装的软件包

告诉文件属于哪个包:

对于文件 /usr/bin/bash.exe

cygcheck --find-package /usr/bin/bash.exe
  • 它仅适用于已安装的软件包

安装新套件

考虑到您已经在运行安装程序GUI并设置了有效的镜像,本地软件包目录和其他选项,则可以运行install abook

/path/to/setup-1.7.exe --quiet-mode --download --local-install --packages abook
  • 它还会自动将所有已安装的软件包更新为可用的最新版本
  • 您还可以在命令行中选择镜像和其他选项,请参见 /path/to/setup-1.7.exe --help
  • 我知道目前使用安装程序2.649的cygwin 1.7的新版本(测试版,但相当稳定)支持这些选项,但是我没有在1.6上进行测试

卸载软件包

据我所知,只有GUI支持此选项。

获取有关已安装软件包的信息(deps,版本等)

版本被一起列出到清单上的每个软件包中(第一项)。找到Deps确实很棘手:运行安装程序时,它将在本地程序包目录中为每个镜像创建一个条目。在这里,您可以找到该镜像上所有可用软件包的列表(对于版本1.6为setup.ini,对于版本1.7为setup-2.ini),其软件包名称以a开头,@而deps 以开头requires:。如果由于某种原因您正在使用的镜像已过时,则安装程序在下载信息时会显示一条警告消息。


至少从2.8版开始,还有-x --remove-packages选项,也可以通过命令行删除软件包。
咆哮者”

@Howler apt-cyg remove可以工作,但是您首先需要该工具,请参阅@kevin的答案。
user3123159

apt-cyg install package用于安装。
user3123159

3

运行setup.exe。它将为您提供一个GUI,其中包含用于各种软件包的复选框。


5
IMO这是Cygwins的主要失败。我们需要一个真正的包裹经理!
约瑟夫·科恩

1
我在邮件列表中看到了一些帖子。有人正在为cygwin开发合适的替代品。它可能显示为1.7的一部分
Zoredache

@Joseph:听起来真的很酷。感谢您让我们知道。
生于2009年

不可能使用真实的程序包管理器,因为不可能覆盖Windows上正在使用的文件。您必须在升级之前关闭Cygwin,然后才能使用外部程序包管理器(Cygwin的setup.exe)。最完整的软件包管理器是apt-cyg,我认为不会有更好的东西。
戴维·费伦茨·罗戈扬2014年

3

我发现apt-cyg对于软件包的命令行安装很有用,而无需更新我的所有其他软件包,但是它并不需要您做任何事情。


没有等同于apt showapt policyapt searchubuntu
user3123159 '18



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.