21Fermer23
damnvoidLe 24/03/2008 à 23:08
Pour clarifier les choses pour ceux que ça intéresse de comprendre les raisons profondes du problème :

X est basé sur un concept très particulier de « serveur graphique » et de « clients ». Il permet de dissocier la machine qui lance l'application de celle qui affiche les fenêtres. En général, on tourne sur une seule machine, et on ne voit pas cette distinction : on lance X en pensant lancer « l'interface graphique », puis on éxécute les applications et elles s'affichent dessus.

En réalité, à chaque fois que vous pensez lancer une application graphique, vous lancez en réalité un « client », qui lit la variable d'environnement DISPLAY pour trouver le serveur auquel il va se connecter (et sur lequel les graphiques s'afficheront). D'habitude, la variable DISPLAY vaut en général ":0", ce qui signifie en gros de se connecter au serveur local.

Maintenant, imaginons qu'on veuille faire tourner des applications sur une machine distante et les afficher sur sa machine à soi : il faut d'abord lancer un serveur X chez soi, puis indiquer à la machine distante comment se connecter au serveur X souhaité (c'est ce que fait l'option -X de ssh), et enfin lancer les applications qu'on veut sur celle-ci (il suffit de les exécuter avec une bonne valeur dans la variable DISPLAY). En particulier, il n'est pas nécéssaire de lancer X sur la machine distante. Par contre il faut souvent l'avoir installé, car les applications qu'on veut pouvoir lancer peuvent dépendre de certaines librairies du serveur X.