Cygwin
Bon alors, vous etes obligé de travailler sur un PC windows, alors comment lui donner un air civilisé? Article qui commence a dater, mais une bonne partie des infromations qu'il contient sont toujours d'actualité...
1 - Avant de commencer
Cette introduction a Les captures d'ecran et les tests qui m'ont permis d'ecrire ce
document on été réalisés sur un vieux coucou (Ppro 200) sous windows 98
et Mandrake 9.1 (machine: |
2 - Présentation
Cygwin, kesako? Cygwin, c'est tout d'abord une librairie partagée windows (une DLL), qui assure la transcription des appels UNIX en appel de fonction de l'API win32 (l'API de windows). Cette librairie permet donc de porter simplement un code écrit pour un systeme UNIX vers windows. Cygwin c'est aussi tout un ensemble de logiciels GNU portés sur windows et utilisant cette DLL avec un certain nombres d'utilitaires faisant le lien entre les deux mondes. Parmis ces logiciels, se trouvent des outils de dévelopement (make, ld, gcc), des shells (zsh, bash), mais aussi le serveur X11, les librairies X11, des gestionnaires de fenetres (windowmaker, fvwm). Cygwin a d'abord été developé par l'equipe de Cygnus (sociéte de service autour de Linux) qui était notament très active dans le dévelopement de GCC (et EGCS), puis, depuis le rachat de Cygnus par RedHat, le dévelopement de Cygwin continue sous le controle (et le financement) de RedHat. |
3 - Installation
3.1 - Les modes d'installation
Cygwin peut s'installer de plusieurs manières, sachant que la DLL et le portage des logiciels
GNU sur windows/Cygwin évoluent rapidement, l'installation est tres orientée vers
l'internet. Toute l'installation se base sur un installeur (un Il est aussi possible, apres avoir télécharge les packages de Cygwin, de créer un CD pour ensuite installer a partir de celui-ci. |
3.2 - Téléchargement
A partir du site de Cygwin vous trouverez une liste de sites mirroirs a partir desquels il est possible de télécharger la version a jours de Cygwin. En general les mirroirs maintiennent plusieurs versions des packages ainsi que leurs sources. Si vous téléchargez la totalite du mirroir Cygwin cela peut etre long et important (compter environ 1,5GB pour un mirroir complet). Pour tenir sur un CD il est possible de supprimer les sources (attention au respect de la GPL dans le cas ou vous redistribuez le resultat). Pour cela la commande suivante fera l'affaire: find . -name Attention, l'installeur est tres sensible et refuse de fonctionner si les regles suivantes ne sont pas respectées:
Si vous voulez créer un CD pour installer Cygwin plus tard, il vous faudra donc le
repertoire Apres un certain nombre de CD perdus (annonce: donne CD de Cygwin inutilisables pour utilisation en dessous de verres...), je pense que la bonne configuration a utiliser durant la gravure contient les options suivantes:
|
4 - Utilisation
4.1 - Premiers contacts
Si vous avez slectionné la génération des racourcis sur le bureau, et dans le menu
Démarrer, vous pouvez lancer un shell bash via le racourcis Cygwin qui se trouve
sur le bureau, ou en passant par le menu Démarrer. Sinon, sous C:\cygwin (a remplacer
par l'emplacement de l'installation de Cygwin si vous avez modifié la valeur par defaut),
se trouve un fichier Lors de l'installation Cygwin a créé un fichier Une fois lancé, une fenetre de type DOS s'ouvre, et vous voila avec un shell bash.
Allez-y, si, si, essayez, un petit Se trouvent sous |
5 - Bon, et X11 alors
La
cerise sur le gateau, X11 (XFree86, les libs et tout le merdier) est
porté sur Cygwin. Dès lors, grace a cela, votre PC windows devient un
terminal X qui vous permet d'afficher des applications fonctionnant sur
un serveur Linux 'le Dans tous les cas décris dans les sections suivantes, vous aurez dans la barre de tache windows un joli |
5.1 - Affichage déporté
Ici
pas de grande difficultées, il s agit de faire afficher une application
tournant sur un serveur Linux sur l'ecran de votre machine windows.
Pour cela il faut demarrer un serveur X11 sur la machine windows (dans
un shell cygwin, taper Remplacer l'adresse IP (192.168.0.2) de ma machine de test par l'adresse IP de votre machine windows. Bon, c est la version courte, car il faudra s'occuper des
autorisations X11, et peut-etre d'un gestionnaire de fenetres: c'est a
dire, soit lancer XWin avec l'option -ac (supprime les authorisations
X11, accepte toutes les connections), soit utiliser |
5.2 - Connection distante
Le but ici, est de se connecter a une machine distante et de n'utiliser presque que l'écran de la machine windows (il faut quand meme un peu de CPU pour le serveur X11). Sur la machine distante il faut accepter les connections XDMCP, sur la machine windows, il suffit donc (a partir d'un shell Cygwin) de lancer un serveur X11 avec la commande:
Ou vous remplacerez Attention: verifiez vos pare-feu! En effet tout passe par le reseau sur les ports 177 et 6000 (par defaut, si vous ne gerez qu'un ecran). Il vous faudra donc parametrer ou desactiver les pare-feu sur la machine windows et sur le serveur. Sur le serveur (gohtam, 192.168.0.1), si vous utilisez le gestionnaire de connection XDM, il vous faudra modifier, le fichier DisplayManager.requestPort: 0 ou la remplacer par: DisplayManager.requestPort: 177 Les demandes de connections XDMCP utilisant ce port.
Il faudra aussi modifier le fichier Si vous utilisez GDM (display manager GNOME), il faudra modifier le fichier Enable=true est présente. Modifiez aussi la section |
5.3 - Tout local
Vous pouvez aussi demarrer Cygwin et lancer, comme sur une machine Linux Par defaut, le seveur X11 ouvre une fenetre windows qui prend tout
l'ecran, et fait fonctionner le gestionnaire de fenetres dans cet
espace. Il est cependant possible de rendre le fond transparent et
d'obtenir une gestion des fenetre X11 par |
5.4 - Le mode 'rootless'
Le mode Dans ce mode, les fenetres X11 et les menus se supperposent au
bureau windows. Attention, X11 gère ses fenetres mais en dehors windows
règne. En, clair il devient impossible d'accéder au menu du
gestionnaire de fenetres en cliquant entre les fenetres, car vous vous
trouvez en territoire Mais, bon, c'est beau et ca fait vrai geek! |
5.5 - Le mode 'multiwindow'
Le
truc fun avec Cygwin! Le mode multiwindow permet d'avoir un serveur X11
qui se comporte un peu comme si il etait plusieurs, un par fenetre.
Dans ce mode, pas de gestionnaire de fenetres, c'est windows qui s'en
occupe (le pied, windows réduit au role de Pour accéder a ce niveau superieur de maitrise, il suffit, dans une fenetre Cygwin de demarrer le serveur X11 par: Ensuite il vous suffit de lancer vos applications (xterm, ...) avec l'option |
5.6 - Lancer un xterm depuis le menu 'Demarrer'
Le truc suppreme pour impressioner, faire geek version guru: lancer un xterm en passant par le menu Pour cela il existe un utilitaire (faisant partie du package Il vous faudra quand meme régler quelques problemes de chemin
d'accès aux bibliothèques X. Je n'en dit pas plus, ce document a beau
etre sous GNU FDL, l'acces a certains renseignements reste payant (une
biere fera l'affaire).
Bon allez, je vous fais crédit, sur un windows 9X, dans le fichier PATH=%PATH%;C:\cygwin\bin;C:\cygwin\usr\bin;C:\cygwin\usr\X11R6\bin;C:\cygwin\usr\X11R6_lib; Le dernier truc a savoir concerne l'horrible fenetre DOS qui s'ouvre
a chaque fois que vous lancer un programme a partir du menu 'Démarrer':
il existe, toujours dans le package Bon pour résumer, pour ajouter une entrée pour Xterm dans le menu mkshortcut -n "Xterm" -A -P -a "/usr/X11R6/bin/xterm.exe -display 127.0.0.1" /usr/X11R6/bin/run.exe |
6 - Comment en rajouter
Bon,
c'est bien, mais il vous manque une application (non pas Emacs, il y
est déja). pas de probleme, vous pouvez la compiler! La distribution de
Bon, c'est dommage mais il n'y a rien de spécial a raconter, vous
devez récuperer les sources de ce que vous voulez compiler, lancer le Pour |