Як я можу налаштувати Cygwin для автоматичного оновлення?
Як я можу змусити Cygwin завантажити пакет, не переходячи через GUI?
Як я можу налаштувати Cygwin для автоматичного оновлення?
Як я можу змусити Cygwin завантажити пакет, не переходячи через GUI?
Відповіді:
Cygwin: Unix :: Персики: Тромбон (це було на моєму GRE;)
З огляду на те, наскільки драматичними можуть бути зміни Cygwin , я б дуже побоювався робити це без мого явного згоди. Якщо ви сміливі, можете закликати cron запускати будь-який скрипт оновлення, який ви обрали.
Якщо ви шукали недокументовану документацію setup.exe --quiet-mode
для бездоганної експлуатації, це так.
Джерело: Ця сторінка Wiki
Програма налаштування Cygwin розроблена як інтерактивна, але є кілька різних способів її автоматизації. Якщо ви розгортаєтесь у декількох системах, найкращий спосіб - запустити повну установку один раз, зберігаючи все завантажене дерево пакетів. Потім на цільових системах запустіть setup.exe як "локальну встановлення", вказану на вашому завантаженому пакеті. Це можна зробити неінтерактивно за допомогою параметрів командного рядка
setup.exe -q -L -l x:\cygwin-local\
, де знаходиться ваше завантажене дерево пакетівx:\cygwin-local\
(див. Наступний FAQ для пояснення цих параметрів.)Для інших варіантів шукайте списки розсилки з такими термінами, як автоматичне налаштування cygwin або автоматична установка cygwin .
Я знайшов кілька ключових місць, де це обговорюється:
Можливо, ви також захочете вивчити використання cygcheck
.
Також: Я цього не перевіряв, але зараз існує проект, apt-cyg
який називається, він працює так, як apt-get Debian. Ось сторінка проекту
Ось простий спосіб, який я знайшов дублювати установку на декілька систем із оновленими пакетами під час встановлення:
#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. Перелічені пакети повинні бути автоматично вибрані для оновлення. Автоматизувати цей процес можна, використовуючи поради, які я згадав вище, і тут .
Джерела:
Ось відповідь суперпользователя про те, щоб зробити оновлення без нагляду:
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
Режим установки без нагляду