192 votes

Comment installer des composants cygwin à partir de la ligne de commande ?

Existe-t-il un outil dans le paquetage Cygwin similaire à apt-get sur Debian ou yum sur redhat qui me permet d'installer des composants à partir de la ligne de commande ?

2 votes

Stack Overflow est un site pour les questions de programmation et de développement. Cette question semble être hors sujet car elle ne concerne pas la programmation ou le développement. Voir Quels sont les sujets sur lesquels je peux poser des questions ici dans le centre d'aide. Peut-être Super utilisateur serait un meilleur endroit pour demander. Voir aussi Où puis-je poster des questions sur le Dev Ops ?

8 votes

@jww, Ce n'est pas du devops.

148voto

jturney Points 940

L'installation de Cygwin accepte arguments de la ligne de commande pour installer des paquets à partir de la ligne de commande.

par exemple setup-x86.exe -q -P packagename1,packagename2 pour installer des paquets sans aucune interaction avec l'interface graphique ('unattended setup mode').

(Notez que vous devez utiliser setup-x86.exe o setup-x86_64.exe le cas échéant).

Voir http://cygwin.com/packages/ pour la liste des paquets.

6 votes

Bien ! setup.exe s'appelle maintenant setup-x86.exe - ou une variante selon les bits du processeur. Voir aussi ici pour la liste des paquets cygwin.com/packages

3 votes

De plus, pour spécifier plusieurs paquets, séparez-les par des virgules. Par exemple, sous DOS, tapez setup-x86_64 --packages="openssh,python"

0 votes

Il ne semble pas y avoir de moyen de configurer des versions spécifiques.

140voto

sagunms Points 1903

Pour un installateur plus pratique, vous pouvez utiliser apt-cyg comme gestionnaire de paquets. Sa syntaxe est similaire à apt-get ce qui est un plus. Pour cela, suivez les indications ci-dessus et utilisez ensuite Cygwin Bash pour les étapes suivantes

wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin

Maintenant que apt-cyg est installé. Voici quelques exemples de installation de certains paquets

apt-cyg install nano
apt-cyg install git
apt-cyg install ca-certificates

18 votes

Utilisez évidemment setup-x86_64.exe -q -P wget,tar,qawk,bzip2,subversion,vim pour Windows 64 bits.

4 votes

Il fallait ajouter --no-check-certificate à la commande wget. Sinon, superbe.

0 votes

Et maintenant c'est un 404 (après quelques redirections)

107voto

Zorobabel Points 323

Il n'y a pas d'outil spécifique dans le programme d'installation 'setup.exe' qui offre la fonctionnalité d'apt-get. Il existe cependant un installateur de paquets en ligne de commande pour Cygwin qui peut être téléchargé séparément, mais il n'est pas tout à fait stable et repose sur des contournements. et s'appuie sur des solutions de contournement.

apt-cyg : http://github.com/transcode-open/apt-cyg

Consultez l'onglet des problèmes du projet pour voir les problèmes connus.

0 votes

Merci ! C'est exactement ce que je voulais savoir. Je me demande pourquoi ils ne sont pas matures ?

0 votes

Bonne question. Je ne suis pas tout à fait sûr de la réponse, en fait.

4 votes

@vy32 : parce que vous n'avez pas aidé à les faire mûrir ? :) Ils ne peuvent pas écrire eux-mêmes. Quelqu'un doit travailler dessus. Et comme leur utilisation est assez limitée (pour écraser les fichiers actuellement utilisés sous Windows, vous devez d'abord fermer Cygwin, il n'est donc pas possible d'exécuter un gestionnaire de paquets dans Cygwin fermé :), il n'y a pas beaucoup de gens intéressés.

53voto

Dawid Ferenczy Points 767

Il existe quelques scripts qui peuvent être utilisés comme de simples gestionnaires de paquets pour Cygwin. Mais il est important de savoir qu'ils seront toujours assez peu efficaces. limitée à cause de... ehm... Windows.

Installer ou supprimer des paquets est possible, chaque gestionnaire de paquets pour Cygwin peut le faire. Mais la mise à jour est un problème car Windows ne vous permet pas d'écraser un exécutable qui est en cours d'exécution. Vous ne pouvez donc pas mettre à jour, par exemple, la DLL de Cygwin ou tout autre paquet qui contient l'exécutable en cours d'exécution à partir de Cygwin lui-même. Il y a aussi cette note sur le site Installation de Cygwin page :

"La raison fondamentale pour laquelle il n'y a pas de gestionnaire de paquets plus complet est que un tel programme aurait besoin d'un accès complet à toutes les fonctionnalités POSIX de Cygwin. Cela est cependant difficile à fournir dans un environnement sans Cygwin, tel que existe lors de la première installation. De plus, Windows ne permet pas facilement facilement l'écrasement des exécutables en cours d'utilisation, de sorte que l'installation d'une nouvelle version de la DLL alors qu'un gestionnaire de paquets utilise la DLL est problématique."

L'installation de Cygwin utilise le registre de Windows pour écraser les exécutables qui sont utilisés. et cette méthode nécessite un redémarrage de Windows . Par conséquent, il est préférable de fermer tous les processus Cygwin avant de mettre à jour les paquets pour que vous n'ayez pas à redémarrer votre ordinateur pour appliquer les changements. L'installation d'un nouveau paquet devrait se faire sans aucun problème. Je ne pense pas qu'aucun des gestionnaires de paquets à l'exception de celui de Cygwin setup.exe implémente une méthode pour écraser les fichiers en cours d'utilisation, donc il échouerait simplement s'il ne peut pas les écraser.


Quelques gestionnaires de paquets pour Cygwin :

apt-cyg

Mise à jour le dépôt a été désactivé récemment en raison de problèmes de droits d'auteur ( Démontage DMCA ). Il s'agit de ressemble à le propriétaire du dépôt a émis le DMCA takedown sur son propre et créé un nouveau projet appelé Sage (voir ci-dessous).

Le meilleur pour moi. Simplement parce que c'est l'un des plus récents. Il n'utilise pas la méthode de Cygwin. setup.exe il réimplémente plutôt, ce qui setup.exe fait. Il fonctionne correctement pour les deux plateformes - x86 ainsi que x86_64 . Il existe de nombreuses bifurcations avec plus ou moins de fonctionnalités supplémentaires. Par exemple, le fourchette kou1okada est l'une des versions améliorées ce qui est vraiment génial.

apt-cyg est juste un shell script, il n'y a pas d'installation. Il suffit de le télécharger (ou de cloner le dépôt), de le rendre exécutable et de le copier quelque part dans le PATH :

chmod +x apt-cyg # set executable bit
mv apt-cyg /usr/local/bin # move somewhere to PATH
# ...and use it:
apt-cyg install vim

Il existe également bouquet de fourchettes avec des caractéristiques différentes.


sage

Un autre gestionnaire de paquets implémenté comme un shell script. Je ne l'ai pas essayé mais il a l'air bien.

Il peut rechercher des paquets dans un dépôt, lister des paquets dans une catégorie, vérifier les dépendances, lister les fichiers de paquets, etc. Il possède des fonctionnalités que les autres gestionnaires de paquets n'ont pas.


cyg-apt

Fourche de l'original abandonné cyg-apt avec des améliorations et des corrections de bogues. Il possède un grand nombre de fonctionnalités et est implémenté en Python. L'installation se fait en utilisant make .


Le cyg-get de Chocolatey

Si vous avez utilisé Chocolatey pour installer Cygwin, vous pouvez installer le paquetage cyg-get qui est en fait une simple enveloppe autour de la fonction setup.exe écrit en PowerShell.


Le setup.exe de Cygwin

Il dispose également d'un mode ligne de commande . En outre, il vous permet de mettre à jour tous les paquets installés en une seule fois (comme apt-get upgrade sur un Linux basé sur Debian).

Exemple d'utilisation :

setup-x86_64.exe -q --packages=bash,vim

Vous pouvez créer un alias pour une utilisation plus facile, par exemple :

alias cyg-get="/cygdrive/d/path/to/cygwin/setup-x86_64.exe -q -P"

Vous pouvez alors, par exemple, installer Vim paquet avec :

cyg-get vim

4 votes

sage est une bifurcation de apt-cyg par ses contributeurs les plus actifs au cours des deux dernières années (Steven Penny). Il semble qu'au début de l'année, il ait eu des désaccords avec l'auteur original du site. apt-cyg l'auteur (Stephen Jungels) et a publié le DMCA takedown quand il a bifurqué le projet. Comme Jungels (alias Transcode) est de manière vérifiable l'auteur original du projet, GitHub a restauré le projet original peu après. Actuellement, les deux projets sont disponibles - bien que le projet original n'ait pas eu de nouvelles mises à jour de code depuis la séparation. C'est une situation désordonnée, vraiment.

0 votes

Setup-x86_64.exe -q --packages=bash,vim. Cette approche m'a aidé dans le passé. Il suffit de l'exécuter en ligne de commande et cela fonctionne sans problème.

11voto

Jason Points 496

Tout d'abord, téléchargez le programme d'installation à l'adresse suivante : https://cygwin.com/setup-x86_64.exe (Windows 64bit), alors :

# move installer to cygwin folder
mv C:/Users/<you>/Downloads/setup-x86_64.exe C:/cygwin64/

# add alias to bash_aliases
echo "alias cygwin='C:/cygwin64/setup-x86_64.exe -q -P'" >> ~/.bash_aliases
source ~/.bash_aliases

# add bash_aliases to bashrc if missing
echo "source ~/.bash_aliases" >> ~/.profile

par exemple

# install vim
cygwin vim

# see other options
cygwin --help

0 votes

J'utilise une méthode très similaire à celle-ci et elle fonctionne très bien pour moi, à condition que vous connaissiez les noms des paquets que vous voulez installer à l'avance ;-)

0 votes

Solution très simple. il suffit d'ajouter l'alias à .bashrc

0 votes

C'est si simple et si génial. Chapeau !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X