Як я можу налаштувати Cygwin на автоматичне оновлення та завантаження без GUI?


17

Як я можу налаштувати Cygwin для автоматичного оновлення?

Як я можу змусити Cygwin завантажити пакет, не переходячи через GUI?

cygwin 

1
Cygwin працює на Windows; це, мабуть, належить на SU
Michael Mrozek

3
Ургу. Cygwin - це версія Unix.

2
Я знаю велику кількість людей, які б плакали, почувши "Cygwin - це версія Unix", але я думаю, ми підемо з цим
Michael Mrozek

Відповіді:


13

Cygwin: Unix :: Персики: Тромбон (це було на моєму GRE;)

З огляду на те, наскільки драматичними можуть бути зміни Cygwin , я б дуже побоювався робити це без мого явного згоди. Якщо ви сміливі, можете закликати cron запускати будь-який скрипт оновлення, який ви обрали.

Якщо ви шукали недокументовану документацію setup.exe --quiet-modeдля бездоганної експлуатації, це так.


7

Автоматизація встановлення Cygwin

Джерело: Ця сторінка Wiki

Програма налаштування Cygwin розроблена як інтерактивна, але є кілька різних способів її автоматизації. Якщо ви розгортаєтесь у декількох системах, найкращий спосіб - запустити повну установку один раз, зберігаючи все завантажене дерево пакетів. Потім на цільових системах запустіть setup.exe як "локальну встановлення", вказану на вашому завантаженому пакеті. Це можна зробити неінтерактивно за допомогою параметрів командного рядка setup.exe -q -L -l x:\cygwin-local\, де знаходиться ваше завантажене дерево пакетів x:\cygwin-local\(див. Наступний FAQ для пояснення цих параметрів.)

Для інших варіантів шукайте списки розсилки з такими термінами, як автоматичне налаштування cygwin або автоматична установка cygwin .

Я знайшов кілька ключових місць, де це обговорюється:

  1. Список розсилки Cygwin: Клоніруйте параметри настройки cygwin з одного ПК на інший
  2. Архів поштових програм Cygwin: питання про резервну копію
  3. Список розсилки Cygwin: Автоматизована установка cygwin
  4. Список розсилки Cygwin: Чи можливо скопіювати всю папку cygwin на іншу машину?
  5. Блог helix: Встановіть пакунки cygwin з cmdline

Можливо, ви також захочете вивчити використання cygcheck.

Також: Я цього не перевіряв, але зараз існує проект, apt-cygякий називається, він працює так, як apt-get Debian. Ось сторінка проекту

Скопіюйте пакети 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. Повідомлення в блозі: Встановіть cygwin-пакети з cmdline
  4. Архів поштових програм Cygwin: питання про резервну копію

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 Режим установки без нагляду

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.