Как настроить Cygwin для автоматического обновления и загрузки без графического интерфейса?

17

Как настроить Cygwin на автоматическое обновление?

Как я могу заставить Cygwin загрузить пакет без необходимости использовать графический интерфейс?


источник
1
Cygwin работает на Windows; это, вероятно, принадлежит SU
Майкл Мрозек
3
Urgh. Cygwin - это версия Unix.
2
Я знаю множество людей, которые будут плакать, услышав, что «Cygwin - это версия Unix», но я думаю, мы пойдем с этим
Майкл Мрозек

Ответы:

13

Cygwin: Unix :: Персики: Тромбон (это было на моем GRE;)

Учитывая, насколько серьезными могут быть изменения в Cygwin , я бы очень опасался делать это без моего явного согласия. Если вы решитесь, вы можете вызвать cron для запуска любого скрипта обновления, который вы выберете.

Если вы искали плохо документированные setup.exe --quiet-modeдля необслуживаемой операции, вот оно.

MSW
источник
7

Автоматизация установки Cygwin

Источник: эта вики-страница

Программа установки Cygwin разработана для интерактивной работы, но есть несколько различных способов ее автоматизации. Если вы развертываете на нескольких системах, лучший способ - выполнить полную установку один раз, сохранив все загруженное дерево пакетов. Затем в целевых системах запустите setup.exe в качестве «Локальной установки», указывающей на дерево загруженных пакетов. Вы можете сделать это не в интерактивном режиме с помощью параметров командной строки setup.exe -q -L -l x:\cygwin-local\, где находится дерево загруженных пакетов x:\cygwin-local\(объяснение этих параметров см. В следующем FAQ).

Для других опций ищите в списках рассылки такие термины, как автоматическая установка cygwin или автоматическая установка cygwin .

Я нашел несколько ключевых мест, где это обсуждается:

  1. Список рассылки Cygwin: клонировать настройки cygwin с одного компьютера на другой
  2. Cygwin Mail Archive: вопрос по резервному копированию
  3. Список рассылки Cygwin: Автоматическая установка Cygwin
  4. Список рассылки Cygwin: Можно ли скопировать всю папку Cygwin на другой компьютер?
  5. Блог helix: установите cygwin-пакеты из командной строки

Вы можете также захотеть использовать 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 Mail Archive: вопрос по резервному копированию
TrinitronX
источник
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 Автоматический режим настройки

user394
источник