Как настроить Cygwin на автоматическое обновление?
Как я могу заставить Cygwin загрузить пакет без необходимости использовать графический интерфейс?
Как настроить Cygwin на автоматическое обновление?
Как я могу заставить Cygwin загрузить пакет без необходимости использовать графический интерфейс?
Ответы:
Cygwin: Unix :: Персики: Тромбон (это было на моем GRE;)
Учитывая, насколько серьезными могут быть изменения в Cygwin , я бы очень опасался делать это без моего явного согласия. Если вы решитесь, вы можете вызвать cron для запуска любого скрипта обновления, который вы выберете.
Если вы искали плохо документированные setup.exe --quiet-mode
для необслуживаемой операции, вот оно.
Источник: эта вики-страница
Программа установки 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
Автоматический режим настройки