Como baixar pacotes individuais do cygwin (e / ou arquivos individuais dentro deles) sem executar o setup.exe do cygwin no sistema local?

3

Eu só preciso de arquivos específicos sem o ambiente cygwin. Existe uma maneira, por exemplo, de baixar a versão mais recente de algum arquivo de ferramentas do Unix, como, por exemplo, grep.exe e o mais recente arquivo cygwin1.exe, e é isso.

Edit: Eu sei que a navegação é possível aqui: link , ok, mas essa lista não permite o download.

    
por rsk82 11.12.2011 / 16:43

1 resposta

5

Não tenho conhecimento de nenhum programa autônomo que faça isso de maneira pronta, sem exigir trechos maiores do Cygwin e seu setup.exe (consulte editar na parte inferior, se necessário). Eu acho que todas as peças estão lá para fazer uma instalação super-minimal relativamente fácil de escrever.

Existem duas partes para esta: recuperar os arquivos e detectar alterações de versão (se for parte do que você estava procurando quando disse "mais recente").

Para recuperar arquivos específicos, você pode examinar (ou capturar as solicitações feitas por) o Cygwin setup.exe installer / updater para determinar onde ele recupera arquivos individuais. Escolha um espelho, navegue até pub/cygwin/release e recupere os arquivos. Por exemplo, aqui está um um link para o diretório principal de pacotes do cygwin para o espelho OSU OSL que eu uso .

Acho que se o seu arquivo individual (como grep.exe ) estiver incluído em um pacote específico, você terá que pegar o pacote inteiro. Alguns terceiros podem fornecer arquivos individuais descompactados da Cygwin, mas eu estaria relutante em confiar em qualquer um além do Cygwin e seus espelhos oficiais, então eu recomendo pegar todos os pacotes de uma fonte confiável e extrair o arquivo que você precisa.

Determinar quando os arquivos foram atualizados é mais complicado. Pseudocódigo seria algo como:

  • Buscar o conteúdo atual do subdiretório do espelho (usando wget ou similar). Essa sintaxe deixa o arquivo .listing mais facilmente analisado.

    wget --no-remove-listing ftp://cygwin.osuosl.org/pub/cygwin/release/grep/

  • Determine o arquivo mais novo que corresponda ao padrão de nome de arquivo esperado. Acredito que se as convenções de nomenclatura de arquivos estiverem limpas (que geralmente são do Cygwin), você pode facilmente pegar a versão mais recente dividindo as partes numéricas em tokens e classificando numericamente. Você pode fazer o quick-and-dirty e apenas pegar o último arquivo no .listing que corresponde, mas isso pode colocar grep.2.tgz após grep.10.tgz , dependendo dos métodos de classificação usados.

  • Faça o download e extraia / descompacte / descompacte. Dependendo de qual arquivador você está usando, provavelmente é possível dizer que apenas extraia arquivos específicos.

  • Copie os arquivos para o destino desejado.

Você pode agendar o script para verificar uma vez por dia / semana / o que for. Provavelmente, você também deseja buscar o arquivo md5.sum acompanhante e comparar as somas de verificação, dependendo da importância dos arquivos para o caso de uso.

Falando nisso, qual é seu caso de uso? Você quer apenas grep sem a outra sobrecarga e mantê-lo atualizado / corrigido? Se não, minha resposta talvez precise ser ajustada de acordo.

EDITAR : Você também pode querer verificar o apt-cyg . Eu acho que pode realmente requerer uma boa parte da estrutura de instalação do núcleo, mas a página diz que ela requer apenas bash, wget, tar, gawk e bzip2, então você pode conseguir que as dependências funcionem lá.

Eu sou novo, então fiquei sem links, mas essa resposta tem apt-cyg info e também como fazer instalações de linha de comando com setup.exe .

Atualizando e instalando pacotes através da linha de comando do Cygwin?

Sua pergunta significa que você pode querer algo mais despojado do que a pergunta, então deixarei o resto da minha resposta intacta para pessoas que estão procurando algo ainda mais mínimo.

    
por 11.12.2011 / 19:57