Cygwin

如何在沒有 GUI 的情況下將 Cygwin 設置為自動更新和下載?

  • July 26, 2019

如何設置 Cygwin 以自動更新自身?

我怎樣才能讓 Cygwin 下載一個包而不必通過 GUI 的東西?

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

考慮到Cygwin 的變化有多麼戲劇性,我會非常警惕在未經我明確同意的情況下完成它。如果你有膽量,你可以呼叫 cron來執行你可能選擇的任何更新腳本。

如果您正在尋找記錄不充分setup.exe --quiet-mode的無人值守操作,那就是。

自動化 Cygwin 安裝

來源:此 Wiki 頁面

Cygwin 安裝程序設計為互動式的,但有幾種不同的方法可以使其自動化。如果要部署到多個系統,最好的方法是執行一次完整安裝,保存整個下載的包樹。然後,在目標系統上,將 setup.exe 作為指向下載的包樹的“本地安裝”執行。setup.exe -q -L -l x:\cygwin-local\您可以使用下載的包樹所在的命令行選項以非互動方式執行此操作x:\cygwin-local\(有關這些選項的說明,請參閱下一個常見問題解答。)

對於其他選項,請使用諸如cygwin 自動設置自動 cygwin 安裝之類的術語搜尋郵件列表。

我發現了一些討論這個問題的關鍵地方:

  1. Cygwin 郵件列表:將 cygwin-setup 設置從一台 PC 複製到另一台 PC
  2. Cygwin 郵件存檔:關於備份的問題
  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

現在只需將此文件複製到新機器中C:\cygwin\etc\setup\installed.db,然後執行 Setup.exe 安裝程序。應自動選擇列出的軟體包進行更新。可以使用我上面提到的技巧來自動化這個過程,在這裡

資料來源:

  1. Cygwin 郵件列表
  2. Snipplr 上的程式碼片段:Sed 腳本
  3. 部落格文章:從 cmdline 安裝 cygwin-packages
  4. Cygwin 郵件存檔:關於備份的問題

引用自:https://unix.stackexchange.com/questions/1700