Jak mogę skonfigurować Cygwin do automatycznej aktualizacji?
Jak mogę zmusić Cygwin do pobrania pakietu bez konieczności korzystania z GUI?
Jak mogę skonfigurować Cygwin do automatycznej aktualizacji?
Jak mogę zmusić Cygwin do pobrania pakietu bez konieczności korzystania z GUI?
Odpowiedzi:
Cygwin: Unix :: Peaches: Trombone (który był na moim GRE;)
Biorąc pod uwagę, jak dramatyczne mogą być zmiany w Cygwin , byłbym bardzo ostrożny, aby to zrobić bez mojej wyraźnej zgody. Jeśli masz odwagę, możesz wywołać crona, aby uruchomić dowolny skrypt aktualizacji, jaki wybierzesz.
Jeśli szukałeś źle udokumentowanej setup.exe --quiet-mode
operacji bez nadzoru, to właśnie ona.
Źródło: Ta strona Wiki
Program instalacyjny Cygwin został zaprojektowany jako interaktywny, ale istnieje kilka różnych sposobów jego zautomatyzowania. W przypadku wdrażania w wielu systemach najlepszym sposobem jest jednokrotne przeprowadzenie pełnej instalacji, co pozwala zapisać całe pobrane drzewo pakietów. Następnie w systemach docelowych uruchom plik setup.exe jako „instalację lokalną” wskazaną na pobrane drzewo pakietów. Możesz to zrobić nieinteraktywnie z opcjami wiersza poleceń
setup.exe -q -L -l x:\cygwin-local\
, w którym znajduje się pobrane drzewo pakietówx:\cygwin-local\
(wyjaśnienie tych opcji znajduje się w kolejnym FAQ).Aby znaleźć inne opcje, wyszukaj na listach adresowych terminy, takie jak automatyczna konfiguracja cygwin lub automatyczna instalacja cygwin .
Znalazłem kilka kluczowych miejsc, w których jest to omawiane:
Możesz także rozważyć użycie cygcheck
.
Ponadto: sam tego nie testowałem, ale istnieje projekt o nazwie, apt-cyg
który wygląda tak, jakby działał w podobny sposób jak apt-get Debiana. Oto strona projektu
Oto prosty sposób na zduplikowanie instalacji do wielu systemów ze zaktualizowanymi pakietami podczas instalacji:
#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
Teraz wystarczy skopiować ten plik na nową maszynę C:\cygwin\etc\setup\installed.db
i uruchomić instalator Setup.exe. Wymienione pakiety powinny zostać automatycznie wybrane do aktualizacji. Możliwe może być zautomatyzowanie tego procesu przy użyciu wskazówek, o których wspomniałem powyżej i tutaj .
Źródła:
Oto odpowiedź administratora na temat wykonywania nienadzorowanej aktualizacji:
cd C:\cygwin
wget -N http://cygwin.com/setup.exe
setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode
Po zakończeniu aktualizacji należy ponownie uruchomić komputer, aby zapobiec niewłaściwemu działaniu aplikacji cygwin z powodu zaktualizowanego pliku cygwin1.dll
--no-desktop
Wyłącz tworzenie skrótu na pulpicie
--no-shortcuts
Wyłącz tworzenie pulpitu i menu Start
--no-startmenu
Wyłącz tworzenie skrótu menu Start
--quiet-mode
Tryb instalacji nienadzorowanej