如何设置 Cygwin 自动更新?
如何让 Cygwin 下载软件包而无需通过 GUI?
答案1
Cygwin : Unix :: Peaches : Trombone (这是我的 GRE 成绩单;)
鉴于如何Cygwin 的巨大变化可能,如果没有我的明确同意,我会非常谨慎地这样做。如果你有胆量,你可以调用计划任务运行您可能选择的任何更新脚本。
如果您正在寻找无据可查的setup.exe --quiet-mode
无人值守操作,它就在那里。
答案2
自动化 Cygwin 安装
来源:这个维基页面
Cygwin 安装程序被设计为交互式,但有几种不同的方法可以使其自动化。如果要部署到多个系统,最好的方法是运行一次完整安装,保存整个下载的包树。然后,在目标系统上,运行 setup.exe 作为指向您下载的软件包树的“本地安装”。您可以
setup.exe -q -L -l x:\cygwin-local\
使用下载的软件包树所在的命令行选项以非交互方式执行此操作x:\cygwin-local\
(有关这些选项的说明,请参阅下一个常见问题解答。)对于其他选项,请使用以下术语搜索邮件列表:cygwin 自动设置或者自动化 cygwin 安装。
我发现了一些讨论这个问题的关键地方:
- Cygwin 邮件列表:将 cygwin-setup 设置从一台 PC 克隆到另一台 PC
- Cygwin Mail Archive:备份问题
- Cygwin 邮件列表:自动化 cygwin 安装
- Cygwin 邮件列表: 可以将整个 cygwin 文件夹复制到不同的计算机吗?
- 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
现在只需将此文件复制到新计算机中C:\cygwin\etc\setup\installed.db
,然后运行Setup.exe 安装程序即可。应自动选择列出的软件包进行更新。使用我上面提到的技巧可以自动化这个过程,并且这里。
资料来源:
答案3
这是一个答案来自超级用户关于进行无人值守更新的信息:
cd C:\cygwin
wget -N http://cygwin.com/setup.exe
setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode
升级完成后应重新启动,以防止 cygwin 应用程序因升级的 cygwin1.dll 而出现异常行为
--no-desktop
禁止创建桌面快捷方式
--no-shortcuts
禁止创建桌面和开始菜单
--no-startmenu
禁止创建开始菜单快捷方式
--quiet-mode
无人值守设置模式