裸 cygwin 软件包列表位于何处?我该如何以编程方式、从 shell 或使用不同于 gui 的方法对其进行操作?我知道 gui (setup.exe),并且我很想更深入地了解一个或多个级别。
我可以检索选定/已安装软件包的列表(Cygwin 包管理),但是我如何将其写回或写到另一台机器上?
我的想法是,当我安装新窗口时,我想从文本形式的软件包列表开始,然后以某种方式将其应用或注入到新系统中。
它在哪里?在注册表中?在二进制文件中?在本地数据库中?
或者有人做过这个吗,有工具吗,教程吗?我想要的本质是操纵已选择使用 GUI 以外的其他工具来查看软件包列表。我可以使用 GUI 进行安装过程。因此,我可以想象操作软件包列表,然后运行 setup.exe 并单击它。
注意:我不想操作已安装软件包的列表,而是操作“应该安装”的软件包的列表。但如果这不可能,也许有一些解决方法。例如,将过时的版本添加为已安装,然后安装程序将安装新版本。
答案1
我在 jessies 上找到了一个好方法:http://software.jessies.org/salma-hayek/cygwin-setup.html
在初始安装时不要选择任何包。
从 Cygwin 1.7 开始,可以使用 -P 开关安装额外的软件包。从 cmd 窗口:
setup.exe -q -P openssh,python,ruby,vim
这是一个仅安装这些包的示例。
答案2
这也不完全是您在问题中要求的,但它是它的前半部分:当前安装的软件包列表存储为/etc/setup/installed.db
,并且每个软件包的文件列表列在/etc/setup/*.gz
文件中。