GNU/Linux >> Tutoriels Linux >  >> Linux

Créer un système hybride Linux-Windows avec Cygwin

Si vous n'avez jamais entendu parler de Cygwin, vous allez vous régaler. Je l'utilise depuis des années pour homogénéiser mes environnements en un seul où je peux écrire des scripts une fois et les livrer partout pour des solutions d'automatisation cohérentes. C'est pénible d'écrire des scripts bash qui fonctionnent sur Linux, sur Mac et sur des Unices commerciaux, puis de sauter tête baissée dans PowerShell et les fichiers batch pour tenter d'atteindre le niveau d'automatisation que je peux atteindre avec certains scripts Bash.

Selon le site Web, Cygwin est :

  • Une vaste collection d'outils GNU et Open Source qui fournissent des fonctionnalités similaires à une distribution Linux sous Windows.
  • Une DLL (cygwin1.dll) qui fournit des fonctionnalités d'API POSIX substantielles.

Et ce n'est pas :

  • Un moyen d'exécuter des applications Linux natives sur Windows. Vous devez reconstruire votre application à partir de la source si vous voulez qu'il s'exécute sous Windows.
  • Un moyen magique de rendre les applications Windows natives conscientes des fonctionnalités UNIX® telles que les signaux, les ptys, etc. Encore une fois, vous devez créer vos applications à partir de la source si vous souhaitez profiter des fonctionnalités de Cygwin.

Remarque :Cygwin fonctionne aussi bien sur les postes de travail Windows que sur les systèmes serveur.

Pourquoi Cygwin ?

Cygwin est toujours pertinent si vous souhaitez disposer de commandes natives *nix sur la plate-forme Windows. Oui, je connais le sous-système Windows pour Linux (WSL), mais Cygwin et WSL ne sont pas identiques. Cygwin vous offre la puissance des commandes *nix dans votre environnement Windows natif. Il n'y a pas d'émulation, pas de machine virtuelle et pas de couches supplémentaires entre le système d'exploitation et cet ensemble d'utilitaires. Il s'agit en fait d'authentiques commandes open source compilées pour la plate-forme Windows.

Installer Cygwin

Généralement, vous pouvez accepter l'option par défaut pour chaque invite. Je donne des conseils quand il y a des choix à faire. Vous pouvez sélectionner les vôtres, mais j'ai constaté que ces sélections fonctionnent mieux dans mon environnement et pour ma façon de travailler.

Ouvrez un navigateur sur votre système Windows et dirigez-le vers le site Web de Cygwin. Sélectionnez Installer Cygwin en exécutant setup-x86_64.exe lien pour télécharger le fichier exécutable d'installation. Exécutez le fichier exécutable pour commencer l'installation et cliquez sur Suivant sur Configuration Cygwin écran.

Sur Choisir le type d'installation l'écran, sélectionnez le type d'installation souhaité. Pour ma part, je sélectionne toujours la valeur par défaut, qui est Installer depuis Internet .

Cliquez sur Suivant pour continuer.

Sélectionnez l'emplacement où vous souhaitez installer le répertoire Cygwin et tous ses fichiers de support et binaires. La valeur par défaut est C:\cygwin64, mais je le change en C:\cygwin pour rendre le futur moi un peu plus heureux. J'autorise également tous les utilisateurs à avoir accès à Cygwin.

Cliquez sur Suivant pour continuer.

Entrez le répertoire dans lequel vous souhaitez que Cygwin télécharge ses fichiers. J'utilise toujours C:\Temp. Si vous sélectionnez un répertoire qui n'existe pas, le programme d'installation vous invite à le créer.

Cliquez sur Suivant pour continuer.

Sélectionnez votre type de connexion Internet. Si vous avez une sorte de proxy, entrez le paramètre ici. Le mien est une connexion directe. Si vous ne savez pas, essayez directement. Si cela ne fonctionne pas, vérifiez la configuration de votre navigateur pour les paramètres de proxy.

Cliquez sur Suivant pour continuer.

Choisissez un site de téléchargement sur cet écran. Sélectionnez-en un dans la liste ou ajoutez le vôtre. Je choisis toujours mirrors.xmission.com sans raison logique - je m'y tiens depuis longtemps et cela fonctionne. Je suppose que n'importe laquelle des sélections fonctionnera.

Cliquez sur Suivant pour continuer.

[ Vous pourriez également aimer :Comment joindre un système Linux à un domaine Active Directory ]

Sélectionner des forfaits

Enfin, vous êtes à l'écran de sélection de package. Si vous ne sélectionnez rien et continuez avec une installation par défaut, vous obtenez un ensemble complet de commandes *nix dans le C:\cygwin\bin annuaire. Elles sont trop nombreuses pour être énumérées, mais c'est une liste de commandes standard.

Je vous suggère de parcourir les différentes catégories et de faire des sélections en fonction de ce que vous utilisez sur vos systèmes Linux. Je sélectionne généralement OpenSSH, Bash, Bash-completion, Python, Tk/Tcl et quelques autres applications aléatoires. Une fois que vous avez fait vos sélections, cliquez sur Suivant pour continuer.

Vérifiez et confirmez vos sélections. Les dépendances seront satisfaites pour vos sélections, alors ne vous inquiétez pas. Cliquez sur Suivant pour commencer l'installation des packages sélectionnés.

L'installation peut prendre de quelques minutes à près d'une heure, selon vos sélections et la vitesse d'Internet.

Le dernier écran vous informe que l'installation est terminée et vous invite à créer des icônes pratiques. Je crée toujours les icônes. Cliquez sur Terminer pour terminer le processus d'installation.

Définition de la variable d'environnement PATH

Pour de meilleurs résultats, vous devez ajouter le répertoire C:\cygwin\bin à votre variable d'environnement PATH. Pour définir le PATH système afin d'inclure votre répertoire bin Cygwin, recherchez "environnement" et sélectionnez l'option Panneau de configuration, Modifier les variables d'environnement système , lorsqu'il apparaît. Sélectionnez Variables d'environnement sur les Propriétés système écran.

Sur les variables d'environnement l'écran, sélectionnez Chemin à partir des variables système volet, puis cliquez sur Modifier... . Cliquez sur Nouveau. Entrez C:\cygwin\bin dans le champ et cliquez sur OK Une fois terminé. Cliquez sur OK sur les autres écrans pour enregistrer l'entrée et fermer les Propriétés système fenêtre.

La définition de cette variable d'environnement système vous permet d'exécuter une commande Cygwin sans fournir le chemin d'accès complet à l'exécutable. C'est également pratique pour les scripts.

Notes de script

Maintenant que Cygwin est installé et que les fichiers binaires se trouvent dans votre chemin système, vous vous demandez probablement comment cela fonctionne. Pour invoquer Bash, ouvrez une fenêtre CMD et tapez bash <ENTER> . Vous êtes maintenant dans un shell Bash qui fonctionne exactement comme votre Linux. Essayez quelques commandes telles que clear , ls , ls -la , pwd , et ainsi de suite.

Certaines différences peuvent être frustrantes pour les nouveaux utilisateurs si vous ne les connaissez pas. Dans Bash, vous remarquerez que vos lecteurs, C :et D :, sont montés en tant que /cygdrive/c et /cygdrive/d , par exemple. Ainsi, le C:\Temp le répertoire est /cygdrive/c/temp dans Cygwin Bash.

Répertoires familiers tels que / , /usr/bin , et /usr/lib existent sous C:\cygwin avec le C:\cygwin répertoire sous la forme / . Si vous ne comprenez pas cette mise en page, ouvrez un CMD séparé fenêtre et CD dans le C:\cygwin répertoire et regardez le répertoire dans les deux CMD et dans Bash .

Tout d'abord, la liste CMD.

DIR C:\cygwin

Volume in drive C has no label.
 Volume Serial Number is ACBE-2D0D

 Directory of C:\cygwin

10/15/2020  06:58 AM    <DIR>          .
10/15/2020  06:58 AM    <DIR>          ..
10/15/2020  06:57 AM    <DIR>          bin
10/15/2020  06:58 AM            53,342 Cygwin-Terminal.ico
10/15/2020  06:57 AM                88 Cygwin.bat
10/15/2020  06:58 AM           157,097 Cygwin.ico
10/15/2020  06:57 AM    <DIR>          dev
10/15/2020  06:57 AM    <DIR>          etc
10/15/2020  06:56 AM    <DIR>          home
10/15/2020  06:57 AM    <DIR>          lib
10/15/2020  06:57 AM    <DIR>          sbin
10/15/2020  06:57 AM    <DIR>          tmp
10/15/2020  06:57 AM    <DIR>          usr
10/15/2020  06:57 AM    <DIR>          var
               3 File(s)        210,527 bytes
              11 Dir(s)  31,950,209,024 bytes free

Et, la liste Bash.

ls /

Cygwin-Terminal.ico		Cygwin.ico	cygdrive	etc	lib	sbin	usr
Cygwin.bat			bin 		dev		home  proc 	tmp	var

Ainsi, vous voyez à partir de ces anomalies que Bash sur Windows n'est pas équivalent à 100% à * nix Bash. Certains scripts se traduiront directement, tandis que d'autres devront être fenêtrés. C'est-à-dire, personnalisé pour tenir compte des différences de chemin, des différences de montage et de certaines différences d'emplacement de fichier. Un aspect vraiment intéressant de l'hybridation de votre environnement Windows est que vous pouvez également utiliser les commandes de ligne de commande Windows. Vous pouvez les intégrer assez facilement dans vos scripts. N'oubliez pas de fournir le chemin complet de l'exécutable au format Cygwin (/cygdrive/c/windows/system32/blah.exe ).

[ Un cours gratuit pour vous :présentation technique de la virtualisation et de la migration d'infrastructure. ]

Conclusion

Cygwin est un excellent ensemble d'outils multiplateformes, en particulier pour ceux d'entre vous qui doivent travailler dans un environnement hétérogène, comme la plupart d'entre nous. Je ne peux pas compter le nombre de fois que j'ai tapé ls , ou une autre commande Linux, dans une fenêtre CMD uniquement pour la faire échouer. Cygwin vous offre la capacité étendue d'écrire un script une fois et de pouvoir l'utiliser n'importe où, avec des ajustements mineurs. Imaginez les possibilités. Maintenant, ajoutez Ansible au mélange et imaginez à nouveau les possibilités. Pour améliorer encore votre bonheur, tous les exécutables sous C:\cygwin\bin qui ont une extension de fichier .exe peuvent également être exécutés dans une fenêtre CMD sans que vous soyez obligé d'être dans Bash. Intéressant? Je le pensais.


Linux
  1. Commande d'arrêt Linux (avec exemples)

  2. Planification des tâches système avec Cron sous Linux

  3. Appels système dans Windows et API native ?

  4. Comment obtenir des statistiques système avec node.js

  5. Créer des liens Windows sous Linux ?

Exécutez des applications Windows sur Linux avec Crossover 15

Commande de disponibilité Linux avec exemples

Premiers pas avec le système d'exploitation Linux

Création d'une clé USB en direct de Manjaro Linux sous Windows et Linux

Audit de sécurité avec Lynis

Installer Windows 10 sur Linux avec VirtualBox