如何设置 Cygwin 以在没有 GUI 的情况下自动更新和下载?

18 cygwin

如何设置 Cygwin 以自动更新?

如何让 Cygwin 无需通过 GUI 即可下载软件包?

msw*_*msw 13

Cygwin : Unix :: Peaches : Trombone (那是我的 GRE ;)

考虑到Cygwin 的变化有多么戏剧性,我真的很担心未经我明确同意就这样做。如果您有胆量,可以调用 cron来运行您可能选择的任何更新脚本。

如果您正在寻找setup.exe --quiet-mode无人值守操作的不良记录,那就是。


Tri*_*onX 7

自动化 Cygwin 安装

来源:本维基页面

Cygwin 安装程序被设计为交互式的,但有几种不同的方法可以使其自动化。如果您要部署到多个系统,最好的方法是运行一次完整安装,保存整个下载的包树。然后,在目标系统上,将 setup.exe 作为指向您下载的包树的“本地安装”运行。您可以使用命令行选项以非交互方式执行此操作setup.exe -q -L -l x:\cygwin-local\,您下载的包树所在的位置x:\cygwin-local\(有关这些选项的说明,请参阅下一个常见问题解答。)

对于其他选项,请使用诸如cygwin 自动设置自动 cygwin install 之类的术语搜索邮件列表。

我找到了一些讨论这个问题的关键地方:

  1. Cygwin 邮件列表:将 cygwin-setup 设置从一台 PC 克隆到另一台 PC
  2. Cygwin Mail Archive:关于备份的问题
  3. Cygwin 邮件列表:自动 cygwin 安装
  4. Cygwin 邮件列表:可以将整个 cygwin 文件夹复制到不同的机器吗?
  5. helix 的博客:从 cmdline 安装 cygwin-packages

您可能还想考虑使用cygcheck

另外:我自己没有测试过这个,但是现在有一个名为的项目apt-cyg,它的工作方式与 debian 的 apt-get 类似。这是项目页面

将 Cygwin 包复制到新系统

这是我发现的一种简单方法,可以在安装时使用更新的软件包将安装复制到多个系统:

#Save some copies of the /etc/setup/installed.db file
cp /etc/setup/installed.db ~/installed.db.bak
cp /etc/setup/installed.db ~/installed.db
#Create a sed script to zero version numbers
cat > ~/zero-version-nums.sed<<-'EOM'
s/-[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9a-zA-Z]\+-[0-9]\+\.tar/-0.0.0.0-0.tar/ 
s/-[0-9]\+\.[0-9]\+-[0-9]\.[0-9a-zA-Z]\+\.tar/-0.0-0.0.tar/ 
s/-[0-9]\+\.[0-9]\+\.[0-9a-zA-Z]\+-[0-9]\+\.tar/-0.0.0-0.tar/ 
s/-[0-9]\+\.[_+0-9a-zA-Z]\+-[0-9]\+\.tar/-0.0-0.tar/ 
s/-[0-9a-zA-Z]\+-[0-9]\+\.tar/-0-0.tar/ 
s/-[0-9]\+\.tar/-0.tar/ 
EOM
# Change all version numbers to 0 (run sed script)
sed -i -f ~/zero-version-nums.sed ~/installed.db
Run Code Online (Sandbox Code Playgroud)

现在只需将此文件复制到 中的新计算机C:\cygwin\etc\setup\installed.db,然后运行 ​​Setup.exe 安装程序。应自动选择列出的软件包进行更新。使用我上面提到的技巧和这里可以自动执行此过程。

资料来源:

  1. Cygwin 邮件列表
  2. Snipplr 上的代码片段:Sed 脚本
  3. 博客文章:从 cmdline 安装 cygwin-packages
  4. Cygwin Mail Archive:关于备份的问题