Como posso configurar o Cygwin para atualizar e baixar automaticamente sem a GUI?

17

Como posso configurar o Cygwin para se atualizar automaticamente?

Como posso fazer com que o Cygwin baixe um pacote sem precisar acessar a interface gráfica?


fonte
1
Cygwin é executado no Windows; isso provavelmente pertence ao SU
Michael Mrozek
3
Urgh. Cygwin é uma versão do Unix.
2
Conheço um bom número de pessoas que chorariam ao ouvir "Cygwin é uma versão do Unix", mas acho que vamos continuar com isso
Michael Mrozek

Respostas:

13

Cygwin: Unix :: Peaches: Trombone (que estava no meu GRE;)

Dado o quão dramáticas as mudanças de Cygwin podem ser, eu ficaria muito desconfiado de fazê-lo sem meu consentimento explícito. Se você for ousado, poderá invocar o cron para executar o script de atualização que escolher.

Se você estava procurando os mal documentados setup.exe --quiet-modepara operação autônoma, aí está.

msw
fonte
7

Automatizando a instalação do Cygwin

Fonte: Esta página da Wiki

O programa Cygwin Setup foi projetado para ser interativo, mas existem algumas maneiras diferentes de automatizá-lo. Se você estiver implantando em vários sistemas, a melhor maneira é executar uma instalação completa uma vez, salvando toda a árvore de pacotes baixados. Em seguida, nos sistemas de destino, execute o setup.exe como uma "Instalação Local" apontada para a árvore de pacotes baixados. Você pode fazer isso de maneira não interativa com as opções da linha de comando setup.exe -q -L -l x:\cygwin-local\, onde está a árvore de pacotes baixados x:\cygwin-local\(consulte a próxima FAQ para obter uma explicação sobre essas opções).

Para outras opções, pesquise nas listas de discussão com termos como configuração automatizada cygwin ou instalação automatizada cygwin .

Eu encontrei alguns dos principais lugares onde isso é discutido:

  1. Lista de discussão Cygwin: Clone as configurações de configuração do cygwin de um PC para outro
  2. Cygwin Mail Archive: pergunta sobre backup
  3. Lista de discussão do Cygwin: Instalação automatizada do cygwin
  4. Lista de discussão Cygwin: É possível copiar a pasta cygwin inteira para uma máquina diferente?
  5. Blog da helix: Instale os pacotes cygwin a partir do cmdline

Você pode querer usar cygchecktambém.

Além disso: eu não testei isso pessoalmente, mas agora existe um projeto chamado apt-cygque parece funcionar de maneira semelhante ao apt-get do debian. Aqui está a página do projeto

Copiar pacotes Cygwin para um novo sistema

Aqui está uma maneira fácil de duplicar uma instalação em vários sistemas com pacotes atualizados no momento da instalação:

#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

Agora simplesmente copie esse arquivo para a nova máquina C:\cygwin\etc\setup\installed.dbe execute o instalador Setup.exe. Os pacotes listados devem ser selecionados automaticamente para atualização. Pode ser possível automatizar esse processo usando as dicas mencionadas acima e aqui .

Fontes:

  1. Lista de discussão Cygwin
  2. Snippet de código no script Snipplr: Sed
  3. Postagem no blog: instalar cygwin-packages a partir do cmdline
  4. Cygwin Mail Archive: pergunta sobre backup
TrinitronX
fonte
3

Aqui está uma resposta do superusuário sobre como fazer uma atualização autônoma:

cd C:\cygwin
wget -N http://cygwin.com/setup.exe
setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode

Você deve reiniciar após a conclusão da atualização para evitar que os aplicativos cygwin se comportem incorretamente devido ao cygwin1.dll atualizado

--no-desktop Desativar criação de atalho na área de trabalho

--no-shortcuts Desativar a criação da área de trabalho e o menu Iniciar

--no-startmenu Desativar a criação do atalho do menu Iniciar

--quiet-mode Modo de instalação autônoma

user394
fonte