Page suivante Page précédente Table des matières
4. Mise en place
4.1 Ce dont vous devez disposer
Avant de commencer à construire
term, il vous faut être sûr que votre noyau a été compilé avec l'optionTCP/IP. L'interfaceTCP/IP loopbackdoit également avoir été activée. Une fois que ceci est fait, vous pouvez parcourir le reste de ce paragraphe.
4.2 Explication des concepts
Dans les dernières versions de
term, deux nouveaux concepts ont fait leur apparition. Les deux paragraphes suivants y sont consacrés.
Le partage
Depuis la version 1.16 de
term, le concept de partage de la connexiontermavec d'autres utilisateurs est apparu. Si, par exemple, vous travaillez sur la machine distante via votre connexionterm(vous avez utilisétrshpour vous connecter depuis votre machine locale), un autre utilisateur peut utiliser la même connexion pour transférer parftpun fichier sur son compte sur la machine locale, depuis un siteftpdistant.Lorsque vous désactivez les possibilités de partage (c'est-à-dire que vous utilisez
termen mode privé), vous seul (en plus de root :-) pouvez utiliser la connexionterm.Bien sûr, vous n'avez besoin d'installer le
termpartagé qu'à l'extrêmité à laquelle vous voulez permettre à d'autres utilisateurs de profiter de la même connexiontermque vous. Ainsi, si d'autres utilisateurs ont un compte sur votre machine locale et souhaitent l'utiliser depuis une autre machine du réseau distant, il vous faut activer le partage à l'extrêmité distante de la connexionterm. De cette façon, ces personnes peuvent se connecter à votre machine locale en utilisant la même connexiontermque vous. (NOTE : le premier exemple supposait que le partage soit activé à l'extrêmité locale de la connexion).NOTE sur l'installation en tant que root : Lorsque vous installez
termen tant que root, il vous faut au préalable créer un groupe term (avant la compilation) ne contenant aucun utilisateur. Ceci se fait par l'ajout de la ligne suivante au fichier '/etc/group' :
term::16:rootou tout GID inutilisé autre que 16, si 16 est déjà attribué.
Après la compilation et l'installation, rendez
termet ses clients SUID, grâce aux commandes :
chgrp term <client_term> chmod g+s <client_term>Procédez de même avec tout autre programme utilisant
term.
Réseau
termintégral
On utilise l'expression de réseau term intégral depuis la version 2.0.0 de
term. Lorsque votre seule connexion au monde extérieur est une connexionterm, vous disposez d'un réseau term intégral. Il vous faut alors compilertermavec cette option. Dans ce cas, un fichier 'termnet' est placé dans votre répertoire partagé. Ceci indique àtermqu'il assure votre unique connexion avec le monde extérieur.Si vous avez également un autre type de connexion réseau vers l'extérieur, les programmes qui savent utiliser
termtenteront dans un premier temps d'utiliser cette connexion. Si cela échoue,termsera lancé et une nouvelle tentative sera effectuée, avec la connexionterm. Pour être plus clair, voici un exemple qui utilise la versiontermdetelnet, laquelle peut fonctionner avec ou sansterm.
telnet localhostn'utilise pas
termpour réaliser la connexion alors que :
telnet zeus.cs.kun.nlutlisera
termsi vous n'avez pas d'autre type de connexion réseau.Un réseau term intégral suppose que l'on mente à propos du nom de la machine locale, en prétendant qu'il s'agit de la machine distante. De plus, cela implique que
bind(0)agisse toujours sur la machine distante. Sommairement, cela signifie que de nombreux programmes n'utilisant pastermdeviennent inutilisables lorsquetermest actif. Malheureusement, c'est le cas de la plupart des programmes et démonsUDP.
4.3 Compilation de
term
Si vous avez de la chance, un simple
makedevrait suffire. Il est cependant probable que vous aurez un peu plus de travail. Du fait des nouvelles possibilités des version récentes determ, la construction de l'exécutable est désormais un peu compliquée. On peut procéder de plusieurs façons.Afin de détailler toutes ces manières de construire
term, cette section est divisée en trois parties :
- Compilation de
term, versions 2.0.0 et ultérieures.- Compilation de
term, versions 1.16 à 1.19.- Compilation de
term, versions 1.15 et antérieures.
Compilation de
term, versions 2.0.0 et ultérieures
Tout d'abord, assurez-vous d'avoir bien lu la partie 'réseau term intégral' ci-dessus.
Il existe plusieurs façons de compiler l'exécutable et les clients
termdes versions 2.0.0 et ultérieures. Toutes peuvent être utilisées par root ou par un utilisateur normal :
- Compilation de
termen mode privé sans réseau term intégral.- Compilation de
termen mode privé avec réseau term intégral.- Compilation de
termen mode partagé sans réseau term intégral.- Compilation de
termen mode partagé avec réseau term intégral.Dans ces versions de
term, une nouvelle procédure de compilation est apparue, grâce au scriptconfigure. Lorsqueconfigureest lancé, il détermine le système d'exploitation, si le répertoire source est accessible ou non et si des options d'exécution ont été choisies. En fonction de ce qu'il a trouvé, il crée un fichier 'Makefile' à partir du 'Makefile.in' fourni avecterm.Deux des plus importantes options à configurer sont
--rootet--userqui déterminent sitermdoit être installé par root ou par un utilisateur classique. D'autres options peuvent être utilisées pour installertermà votre goût (dans une arborescence non standard, par exemple).
- Compilation de
termen mode privé sans réseau term intégral. Pour installertermde cette façon, vous devez lancer les commandes (que ce soit en tant que root ou en tant qu'utilisateur ordinaire) :./configure --root OU --user make install installmanCeci construit les exécutables, les installe et installe les pages de manuel.- Compilation de
termen mode privé avec réseau term intégral. Pour installertermde cette façon, vous devez lancer les commandes (que ce soit en tant que root ou en tant qu'utilisateur ordinaire) :./configure --root OU --user make installnet installmanCeci construit les exécutables, les installe et installe les pages de manuel.- Compilation de
termen mode partagé sans réseau term intégral. Pour installertermde cette façon, vous devez lancer les commandes (que ce soit en tant que root ou en tant qu'utilisateur ordinaire) :./configure --root OU --user make share installmanCeci construit les exécutables, les installe et installe les pages de manuel.- Compilation de
termen mode partagé avec réseau term intégral. Pour installertermde cette façon, vous devez lancer les commandes (que ce soit en tant que root ou en tant qu'utilisateur ordinaire) :./configure --root OU --user make share installnet installmanCeci construit les exécutables, les installe et installe les pages de manuel.
Compilation de
term, versions 1.16 à 1.19
Pour installer ces versions de
termvous pouvez choisir l'une des procédures suivantes :
- Compilation de
termen mode privé, en tant qu'utilisateur ordinaire.- Compilation de
termen mode partagé, en tant qu'utilisateur ordinaire.- Compilation de
termen mode privé, en tant que root.- Compilation de
termen mode partagé, en tant que root.Comment activer/désactiver les fonctionnalités de partage de
termdurant la compilation est expliqué ci-après.
- Vous êtes un utilisateur ordinaire (pas de compte root) et vous ne souhaitez PAS partager votre connexion
termavec d'autres utilisateurs. Installeztermde la façon suivante :make DO=install OS-type make installmanCeci compile puis installeterm, ses clients et les pages de manuel. Il vous faut de plus créer un répertoire '$HOME/.term'. C'est le répertoire dans lequeltermrecherchera son fichier 'termrc'.- Vous êtes un utilisateur ordinaire (pas de compte root) et vous souhaitez partager votre connexion
termavec d'autres utilisateurs. Installeztermde la façon suivante :make DO=installshare USERSHARE=$HOME/term OS-type make installmanCeci compile puis installeterm, ses clients et les pages de manuel. Il vous faut de plus créer un répertoire '$HOME/.term' (nom par défaut) avec les droitsdrwxrwxr-x. Dans ce répertoire, vous trouverez au moins la socket utilisée partermpour sa connexion ('tmp/private/socket=').- Vous êtes root et vous ne souhaitez PAS partager votre connexion
termavec d'autres utilisateurs. Installeztermde la façon suivante :make DO=install OS-type make installmanCeci compile puis installeterm, ses clients et les pages de manuel. Il vous faut de plus créer un répertoire '/usr/local/lib/term' (nom par défaut) avec les droitsdrwxrwxr-x. Dans ce répertoire, vous trouverez au moins la socket utilisée partermpour sa connexion ('tmp/private/socket=').- Vous êtes root et vous souhaitez partager votre connexion
termavec d'autres utilisateurs. Tout d'abord, assurez-vous d'avoir lu la partie concernant le partage. Installeztermde la façon suivante :make DO=installshare OS-type make installmanCeci compile puis installeterm, ses clients et les pages de manuel. Il vous faut de plus créer un répertoire '/usr/local/lib/term' (nom par défaut) dont le propriétaire est le groupe term, avec les droitsdrwxrwxr-x. Dans ce répertoire, vous trouverez au moins la socket utilisée partermpour sa connexion ('tmp/private/socket=').
Compilation de
term, versions 1.15 et antérieures
La compilation de ces versions de
termne devrait pas requérir d'autres commandes que :
make DO=install OS-type make installmanCeci compile puis installe
term, ses clients et les pages de manuel. Tout est alors prêt à l'emploi.Il vous faut de plus créer un répertoire '
$HOME/.term'. C'est le répertoire dans lequeltermrecherchera son fichier 'termrc'.Les seules choses que vous pourrez souhaiter modifier sont certains des chemins du '
Makefile' et certaines options du compilateur.
4.4
client.a, libtermnet.a, libtermnet.sa, libtermnet.so
Une bibliothèque est fournie avec
term. Elle propose des fonctions pour les clientsterm.Jusqu'à la version 1.16, cette bibliothèque était nommée
client.a. Elles était bâtie lors de la compilation determ, puis utilisée lors de celle des clients. Elle n'était installée dans aucun répertoire.Depuis la version 1.16, cette bibliothèque s'appelle
libtermnet.a. Jusqu'à la version 1.19, elle est créée dans le répertoireterm, puis utilisée pour la compilation des clientsterm. Elle n'est installée nulle part ailleurs.A partir de la version 2.0.0,
libtermnet.soetlibtermnet.sa(bibliothèque partagée et données exportées et initialisées pour la bibliothèque) sont également créées lors de la compilation determ. Lors de l'installation de l'ensemble des composantes du paquetage, ces trois bibliothèques (libtermnet.a, libtermnet.soetlibtermnet.sa) sont installées dans le répertoire '/usr/local/lib' (par défaut). Un lien est ensuite créé delibtermnet.so.2.x.xverslibtermnet.so.2. Finalement,ldconfigest lancé pour créer les liens et le cache nécessaires (pour le linkage à l'exécution, parld.so).ld.sotient compte des versions les plus récentes des bibliothèques trouvées dans les répertoires précisés dans la ligne de commande, dans le fichier '/etc/ld.so.conf' et dans les répertoires '/usr/lib' et '/lib'. Si l'installation est effectuée correctement, ces trois bibliothèques peuvent alors être utilisées par tous les clientstermqui sont construits avec des bibliothèques dynamiques plutôt que statiques. Ces bibliothèques peuvent également être utilisées pour le portage de vos propres programmes afin de leur permettre d'utiliser les fonctionnalités determ(voir plus loin).
4.5 Variables d'environnement
termreconnaît un certain nombre de variables d'environnement qui peuvent être positionnées par les utilisateurs. Les trois premières à être détaillées sont :
termDIRtermSHAREtermMODEGrâce à ces variables, il vous est possible de contrôler la façon dont
terms'exécute.Pour les versions de
term1.15 et antérieures, seule la variabletermDIRest importante (ces versions ne proposent pas le mode partagé). Pour ces versions, positionneztermDIRde la façon suivante :
setenv termDIR $HOME (csh ou tcsh) export termDIR=$HOME (ksh ou bash)A partir de la version 1.16,
termreconnait également les variablestermSHAREettermMODE. Grâce à ces variables, on peut indiquer àterms'il doit fonctionner en mode privé ou partagé. Comment positionner ces variales pour les modes privé et partagé est expliqué ci-après.
termMODEpeut avoir l'une des trois valeurs suivantes :
- 0 = privé
- 1 = partagé (système)
- 2 = partagé (utilisateur)
- On peut utiliser
termen mode privé en positionnant les variablestermDIRettermMODEde la façon suivante : En csh ou tcsh :setenv termDIR $HOME setenv termMODE 0En ksh ou bash :export termDIR=$HOME export termMODE=0- Il y a deux manières de positionner les variables pour utiliser
termen mode partagé :
- Lorsque
termest installé comme un programme SUID, seuletermMODEdoit être positionnée.setenv termMODE 2 (csh ou tcsh) export termMODE=2 (ksh ou bash)- Lorsque
termest installé comme un programme SGID, il faut positionner les variables comme suit : En csh ou tcsh :setenv termMODE 1 setenv termDIR /usr/local/lib/term setenv termSHARE $termDIREn ksh ou bash :export termMODE=1 export termDIR=/usr/local/lib/term export termSHARE=$termDIRPositionner les variables de cette manière permet d'utiliser les anciens clients (linkés avec une ancienne version declient.a) en mode partagé.A partir de la version 2.0.0,
termreconnaît également la variabletermSERVER. Celle-ci doit être positionnée si vous possédez plusieurs modems et utilisez plus d'une connexion à la fois. Pour préciser quelle connexion utiliser, il faut lancertermavec le nom d'un serveur.
nohup term -v /dev/modem1 Connection1 & nohup term -v /dev/modem2 Connection2 &Les utilisateurs doivent alors positionner la variable
termSERVERsur le nom de la connexion qu'ils souhaitent utiliser :
setenv termSERVER Connection1 (csh ou tcsh) export termSERVER=Connection2 (ksh ou bash)
4.6 Test de
term
Tapez
make test(oumake termtestpour les versions récentes determ) afin de compiler le démon de test determ.(term)testfonctionne en exécutant deux occurences determsur votre système, une copie 'locale' et une copie 'distante'. Chacune d'elles lira votre 'termrc' de façon à ce que vous puissiez en ajuster le comportement. Lancez(term)testmaintenant. Vous devriez être en mesure de lancer untrshet untupload. Essayez :
tupload ./term /usr/tmpceci devrait placer une copie de l'exécutable
termdans le repértoire '/usr/tmp'. La sortie dutermlocal apparaît dans le fichier 'local.log', celle dutermdistant dans 'remote.log'. Vous pouvez lancertermavec l'option-d255de façon à ce que des informations de déboguage soient incluses dans ces fichiers ou pour vous permettre de déboguer votre 'termrc'.NOTE : lancez
testpar la commande./testde façon à ne pas lancer letestdu système.
4.7
termet les programmes de communication
Avant de pouvoir utiliser
term, il faut avoir établi une connexion par modem, par l'intermédiaire d'un programme de communication tel quekermitouseyon. La documentation de votre programme de communication vous fournira les informations dont vous aurez besoin pour vous connecter à une machine distante.Lorsque vous avez établi la connexion avec la machine distante, il vous faut interrompre ou quitter votre programme de communication pour pouvoir utiliser
term, mais sans couper la connexion. Ceci est nécessaire pour éviter que le programme de communication subtilise des caractères àlinecheckouterm.Comment s'assurer que la connexion reste active et que le programme de communication ne s'approprie pas certains caractères est expliqué ci-après, pour quelques exemples.
kermit
Il est facile de lancer
termlorsque vous utilisezkermit: à l'invite dekermit, tapez la commandesuspend. Vous voila de retour à l'invite deLinux. A partir de là, vous pouvez établir votre connexionterm.
seyon
Un moyen facile de lancer
linecheckoutermà partir deseyonest de les placer dans le menu Transfer (contrôlé par le fichier '$HOME/.seyon/protocols').Dans le fichier '
$HOME/.seyon/protocols', ajoutez :
"linecheck" "$cd /tmp; linecheck" "term" "$term -c off -w 10 -t 150 -s 38400 -l $HOME/tlog"Ainsi, lorsque vous voulez lancer
linecheckoutermsur la machine locale, vous pouvez sélectionner le menu Transfer, choisir l'option linecheck ou term, puis Go.Bien entendu, il est toujours possible d'utiliser le bouton shell command et de taper 'linecheck' ou 'term' dans la boîte de dialogue pop-up. Ceci redirige automatiquement l'entrée et la sortie.
4.8 Rendons la liaison transparente
Supposons que vous savez établir une connexion modem entre vos machines locale et distante. De façon typique, vous numérotez grâce à un serveur de terminal quelconque pour vous connecter à la machine distante. Vous utilisez également quelque logiciel d'émulation de terminal, tel que
kermitouseyonpour dialoguer avec votre modem (les exemples fournis dans ce document utilisentkermit, puisque c'est ce dont l'auteur se sert). Si vous avez des problèmes avec votre modem ou avec votre logiciel de terminal, reportez-vous auSerial-HOWTO, il devrait vous permettre de les régler.Une fois votre liaison établie, il faut la rendre aussi transparente que possible. Etudiez les commandes de votre serveur de terminal (help ou ? sont en général un bon début). Choisissez les options 8 bits chaque fois que cela est possible. Il est possible que cela influe sur la façon de vous connecter à un système. Si le serveur utilise
rlogin, par exemple, il faudra peut-être utiliser l'option-8afin de le rendre transparent. Faites particulièrement attention à ne pas utiliser le contrôle de fluxXON/XOFF. Essayez plutôt d'utiliser le contrôle de fluxRTS/CTS(hardware). L'étude de la documentation de votre modem vous apprendra certainement comment le configurer pour des communicationsRTS/CTS8 bits.
4.9 Lançons
linecheck
ATTENTION : dans certains documents, les options de
linechecksont données dans un ordre incorrect. L'auteur les a contrôlées et en donne ici l'ordre correct.NOTE : à partir de la version 2.3.0, il n'est plus nécessaire de fournir à
linecheckle nom d'un fichier de log. La sortie sera écrite dans le fichier 'linecheck.log', dans le répertoire d'oùlinechecka été lancé.
linecheckest un programme fourni avectermqui vérifie la transparence d'une liaison et fournit des informations utiles pour une configuration correcte determ.linecheckenvoie chacun des 256 caractères 8 bits possibles sur la liaison et vérifie que tous ont été transmis correctement. Il faut indiquer àtermquels caractères ne peuvent pas être transmis sur la liaison, ce quelinecheckpermet de repérer.linecheckdoit être utilisé une fois que la liaison modem est aussi transparente que possible. Pour lancerlinecheck, procédez comme suit :
- Sur le système distant, lancez :
linecheck linecheck.log- Revenez à votre système local et interrompez votre programme de communication (voir au-dessus).
- Sur le système local, lancez :
linecheck linecheck.log > /dev/modem < /dev/modemLorsque
linecheckest terminé, les fichiers 'linecheck.log' contiennent un ensemble de nombres, placés à la fin. Ce sont les caractères qui doivent être évités dans le 'termrc' placé à l'autre extrêmité de la liaison. Sur le système de l'auteur, par exemple, le 'linecheck.log' local ne disait rien et le 'linecheck.log' distant indiquait d'éviter 29 et 157. C'est pourquoi son 'termrc' local évite ces caractères, alors que son 'termrc' distant n'en évite aucun. Si l'on évite des caractères d'un côté, il faut les ignorer de l'autre. C'est pourquoi, l'auteur doit ignorer 29 et 157 sur son système distant.Si
linecheckse plante, essayez :
linecheck linecheck.log 17 19sur le système distant et :
linecheck linecheck.log 17 19 > /dev/modem < /dev/modemsur le système local. Ceci a pour effet de ne pas envoyer les caractères de contrôle de flux
XON/XOFFqui plantent votre ligne si vous utilisez un contrôle de flux logiciel. Si cela résoud le problème, évitez/ignorez 17 et 19 dans les deux 'termrc'. Si votre serveur de terminal est sensible à d'autres caractères, procédez de même. Il est possible d'identifier de tels caractères lorsquelinecheckse plante : tuez-le puis examinez les fichiers de log. Les derniers caractères transmsis sont de bons coupables potentiels. Essayez à nouveau en évitant ces caractères.En résumé, le '
termrc' local de l'auteur se présente ainsi :
escape 29 escape 157et son '
termrc' distant ainsi :
ignore 29 ignore 157puisque le '
linecheck.log' distant indiquait d'éviter 29 et 157.
4.10 Essayons de lancer
term
Connectez-vous au système distant et rendez la liaison aussi transparente que possible (si ça n'est déjà fait). Lancez-y
term, par exemple de la façon suivante :
exec term -r -l $HOME/tlog -s 38400 -c off -w 10 -t 150Examinons une à une les options de cette ligne de commande (que nous aurions tout aussi bien pu inclure dans le '
termrc', mais au prix d'une édition de fichier).
execsignifie que le programme (term, en l'occurence) remplace le shell à partir duquel il est lancé. On utiliseexeclorsque l'on n'a plus l'intention de se servir du shell concerné; on économise ainsi la mémoire. Cependant, lors de la mise au point de la liaison, il peut être prudent de ne pas faire unexec, de façon à pouvoir tuer letermdistant.L'option
-rdoit être utilisée à une et une seule extrêmité. Celle-ci sera alors vue partermcomme l'extrêmité distante de la liaison (qui peut donc être votre machine locale). Si cette option n'est pas utilisée d'un côté ou de l'autre,termse plantera spontanément.
-l $HOME/tlogpermet de consigner toutes les erreurs dans le fichier 'tlog', placé dans votre répertoire utilisateur. Celui-ci étant très utile pour les mises au point, il n'y a pas de raison de ne pas utiliser cette option.
-s 38400: l'auteur dispose d'un modem 14400 bps, avec compression. Afin d'obtenir des taux de compression optimaux, il faut envoyer les bits aussi vite que possible. Pour un modem plus lent, il faut utiliser une valeur plus faible. Notez que si vous possédez une machine "lente" dotée de ports séries disposant d'UART 16450, des valeurs de bps trop importantes risquent de provoquer des pertes de données en surchargeant le port série.termest capable de corriger ceci, mais si les fichiers de log comportent de nombreux messages d'erreur (ou si vous recevez de nombreux warnings des noyauxlinux0.99pl15 ou plus récents), il serait plus sage de diminuer cette valeur.
-c off: cette option désactive la compression. Lorsque l'on dispose d'un modem qui assure déjà la compression des données, il n'est nul besoin de les compresser une seconde fois.
-w 10 -t 150: ici encore, cette option permet d'optimiser une liaison modem rapide. La valeur de la fenêtre est 10 et celle du timeout 150, selon les recommendations de la page de manuel determ_setup.Revenez sur votre machine locale et interrompez votre programme de communication (voir ci-dessus). Il est préférable qu'il ne tourne pas en même temps que
term, car il risque d'entrer en conflit avec lui au niveau du port série. Si vous parvenez à convaincre votre programme de communication de ne pas raccrocher la ligne lorsque vous en sortez, vous pouvez le quitter.Il faut maintenant lancer le
termlocal :
term -c off -l $HOME/tlog -s 38400 -w 10 -t 150 < /dev/modem > /dev/modem &Il faut indiquer à
termoù se trouve le modem. C'est pourquoi à la fois l'entrée et la sortie standards sont redirigées vers '/dev/modem' (c'est le rôle de<et>). Enfin, la commande est lancée en arrière-plan, de façon à pouvoir continuer à utiliser le terminal pour autre chose, si on le souhaite.
termdevrait maintenant fonctionner :-). Essayez untrshet regardez ce qui se produit. Si cela plante ou si votre liaison semble excessivement lente, jetez un coup d'oeil aux fichiers 'tlog' placés à chaque extrêmité. Contiennent-ils des timeouts ou des messages d'erreur ? Si c'est le cas, quelque chose ne va pas dans votre configuration. Essayez à nouveau (après avoir fini de lire ceci :-)). Notez qu'il est normal que la connexion ne semble pas rapide comme l'éclair, surtout si vous utilisez la compression. Les meilleures performances sont obtenues lors d'échanges tels que le transfert de fichiers.
4.11 Mettre fin à une connexion
term
Il est probable qu'après avoir effectué un certain nombre de travaux, vous souhaiterez mettre fin à votre connexion
term. Ceci peut être fait de quatre façons :
- Tuer les programmes
termà chaque extrêmité de la liaison. C'est la méthode la moins recommandée.- Une méthode un peu plus élégante est de taper la commande suivante sur la machine locale :
echo '00000' > /dev/modemCeci devrait mettre fin à votre connexiontermproprement. Cette méthode fonctionne avec toutes les versions determ. Assurez vous que la suite de zéros en contient bien au moins cinq.- Dans le '
termrc' des versions determ2.0.0 et ultérieures, vous pouvez ajouter une entréeterminate '<une chaîne de caractères>'. Ceci indique la chaîne qu'utiliseratermpour s'interrompre ('00000' par défaut). Elle doit être longue d'au moins cinq caractères afin d'éviter toute terminaison intempestive.- À partir de la version 1.14, un programme
tshutdownest fourni (en fait, il s'agit d'un patch pour la version 1.14 et est dans le paquetage pour les versions plus récentes).tshutdownpermet de mettre fin proprement à votre connexionterm.
4.12 Effacer
term
Bien, vous l'aurez voulu ! Puisque certains d'entre vous veulent se débarasser de
term, nous indiquons ici les étapes à suivre.
- Effacez les répertoires et leur contenu. Suivant la façon dont vous avez installé
term, un ou plusieurs des répertoires suivants est présent sur votre machine :$HOME/.term/termrc $HOME/.term/termrc.<server> $HOME/term/termrc $HOME/term/termrc.<server> /usr/local/lib/term/termrc /usr/local/lib/term/termrc.<server> /etc/termrc /etc/termrc.<server>Vous pouvez effacer simultanément ces répertoires et leur contenu. Pour ce faire, utilisez la commanderm -rf.- Dans certains cas, vous avez créé un groupe term lors de l'installation. Vérifiez le fichier '
/etc/group' et effacez la ligne qui concerne ce groupe, si elle s'y trouve.- Il faut maintenant effacer le paquetage
termainsi que tous les exécutables modifiés pourterm. C'est la partie la plus délicate. Les exécutables du paquetage determdoivent normalement se trouver dans le répertoire '/usr/local/bin' ou le répertoire '$HOME/bin'. En ce qui concerne les exécutables que vous avez modifiés vous-même pour une utilisation avecterm, c'est à vous de voir, nous ne pouvons pas vous aider. Pensez également à effacer les fichiers de configuration ou autres qui correspondent à ces programmes.- Pour effacer les bibliothèques, lancez les commandes suivantes :
cd / find . -name 'libtermnet*' -exec /bin/rm {}Ceci localisera et effacera les bibliothèques.- Pour effacer le fichier 'termnet.h', le plus simple est de taper :
cd / find . -name termnet.h -exec /bin/rm {}- Si vous avez installé les pages de manuel de
term, elles doivent se trouver dans l'un des répertoires suivants :/usr/local/man/man1 /usr/local/man/cat1 $HOME/man/man1 $HOME/man/cat1Il vous faut au minimum contrôler la présence des pages de manuel suivantes :term,term_clients,term_setup,tdownload,linecheck,trdate,trdated,termrc,termtest,tmon,tredir,trsh,tshutdown,tudpredir,tupload,txconnet finalementtiptest.- Effacez le répertoire utilisateur temporaire et son contenu. Il s'agit du répertoire '
/usr/tmp/private'.Une fois ce petit exercice terminé, vous pouvez être quasiment certain d'avoir effacé tout ce qui concerne
term.
4.13 Optimisation de la liaison
Une fois que vous avez réussi à faire fonctionner
term, pourquoi ne pas essayer d'optimiser un peu les choses ? Un bon moyen de mesurer la vitesse de transmission de votre liaison est de lancertmondans une fenêtre tout en téléchargeant un fichier dans une autre. Essayez avec de gros fichiers de texte et avec des fichiers compressés. Les fichiers textes devraient être transférés environ deux fois plus vite que les fichiers compressés. Les paramètres sur lesquels vous pouvez jouer sont les bps(N.D.T.) Le document original parle de baud, mais il s'agit d'une erreur commune :-)(-s), la compression (-c), la taille de fenêtre (-w), les timeouts (-t) et le recyclage (-A).Attention au paramètre de recyclage. Avec
termversion 1.19, l'auteur a obtenu une perte de 80% à 90% lorsqu'il a utilisé ce paramètre. Peut-être est-ce une bogue de la version 1.19 et n'est-ce valable que pour cette version.
bps: il s'agit du nombre maximal de bits quetermtentera d'envoyer sur la liaison série.termévitera d'envoyer des caractères plus rapidement. Par défaut, utilisez la vitesse des ports série de votre ordinateur, mais soyez conscient que cela risque d'être trop rapide si votre modem fonctionne à une vitesse plus faible sur la ligne téléphonique. Cette option est prévue pour les systèmes qui placent les données dans un tampon. Lors de l'installation et de la mise au point, il est conseillé d'utiliser des valeurs faibles plutôt que des valeurs trop importantes. Pour des liaisons à haute vitesse (> 38400), il peut être avantageux de ne pas imposer de limite en utilisant la valeur 'off'.termne s'appuiera alors que sur le noyau pour effectuer le contrôle de flux.
Compression: à utiliser si votre modem n'effectue pas lui-même la compression. S'il la fournit, désactivez cette option afin de ne pas compresser deux fois les mêmes données, ce qui augmente à coup sûr le volume de données transmis. Les modems assurant la compression sont ceux qui utilisent les protocolesMNP-5ouV42.bis. Consultez la documentation de votre modem et les messages qu'il envoie lors d'une connexion.
Fenêtre: c'est le nombre de paquets de données quetermaccepte d'envoyer sur la liaison avant de recevoir un acquittement de la part dutermdistant. Avec un modem rapide, il peut être avantageux d'augmenter ce paramètre. Pour les liaisons plus lentes, cela risque de surcharger l'extrêmité distante.
Timeout: il s'agit de la durée pendant laquelletermattend un acquittement. Si vous avez augmenté la taille de la fenêtre et obtenez de nombreux timeouts dans vos fichiers de log, essayez d'augmenter ce paramètre.Pour un modem
14400/V42.bis, l'auteur utilise-c off -w 10 -t 150et obtient environ 1700 cps pour les fichiers compressés et 3500 cps pour les fichiers texte, les transfert étant effectués avectupload.
4.14 Problèmes classiques
Dans cette partie sont exposées quelques démarches classiques à suivre lorsque l'utilisation de
termou de l'un de ses clients vous pose problème.
- Avez-vous bien nettoyé l'arborescence de
term? L'apparition de nouvelles versions determest allée de pair avec de nombreuses modifications de l'arborescence '/usr/local/lib/term'. Si vous n'êtes pas conscient de cela, vous risquez de voir apparaître de nombreux messages d'erreur. Le mieux dans ce cas est d'effacer l'arborescence '/usr/local/lib/term' (en prenant soin de sauvegarder votre 'termrc') et d'installer ensuite votre nouvelle version determ. Ainsi, vous devriez éviter de vous créer des problèmes avec une arborescence inadéquate.- Avez-vous effacé les vieilles sockets ? Lors de la mise à jour de
term, effacez toutes les sockets (appelées 'socket=') créées parterm. Ne pas le faire vous expose à d'étranges problèmes. Afin de déterminer à l'écoute de quelle socket se trouveterm, vous pouvez utiliser le programmenetstat.termne se compile pas corectement sousSunOS 4.1.3? C'est que vous avez probablement configurétermavec./configure --user. Lors de la compilation, vous voyez apparaître une erreur d'assembleur à propos d'une option '-k'. La cause de cette erreur est inconnue. La solution est de configurertermavec des bibliothèques statiques. Il vous faut donc utiliser./configure --user --staticet continuer la compilation de façon normale. Tout devrait alors se dérouler normalement.termtestvous donne une erreur : 'term: failed to connect to term socket '/root/.term/sockettest'' ? Lorsqu'il est lancé,termtests'attend à trouver l'exécutabletermdans le répertoire où il est lui-même. Lorsque vous faîtes unmake installavant de lancertermtest, l'exécutabletermest déplacé dans '/usr/local/bin' (ou dans un autre répertoire d'exécutables). La solution consiste à créer un lien vers l'exécutable dans le répertoire source :ln -s /usr/local/bin/term /usr/src/term-<numero_version>/term- Lancez-vous bien le bon exécutable ?
terma été mis à jour à de nombreuses reprises et bon nombre de systèmes en possèdent différentes versions. Assurez-vous d'utiliser la bonne version. Notez que cela s'applique également àlinecheck. Vous pouvez utiliser la commandetype -adebashou bien la commandewhereispour déterminer quel est le programme qui est exécuté. Les versions determpostérieures à la 1.11 affichent normalement leur numéro de version au démarrage (bien que la 1.14 prétende n'être que la 1.12. Et oui !).- Avez-vous mis le bon '
termrc' au bon endroit ? Suivant les versions determque vous utilisez et la façon dont vous l'avez installé (en tant que root ou en tant qu'utilisateur), ce fichier peut se trouver dans l'un des répertoires suivants :$HOME/.term/termrc $HOME/.term/termrc.<server> $HOME/term/termrc $HOME/term/termrc.<server> /usr/local/lib/term/termrc /usr/local/lib/term/termrc.<server> /etc/termrc /etc/termrc.<server>Certains systèmes sont fournis avec des fichiers 'termrc' pré-installés. Assurez-vous de les avoir détruit avant de procéder à l'installation. Si vous faîtes l'installation en tant que root, vérifiez '/.term'. Lors de son exécution,termcrée des fichiers (qui sont en fait des sockets). C'est pourquoi il possède son propre répertoire '$HOME/.term' dans lequel est placé le fichier 'termrc' (notez qu'il n'y a PAS de . devant 'termrc' !).termtrouve-t-il son fichier 'termrc' ? Lorsque vous lanceztermdes deux côtés, vous devriez voir des messages tels que :term version: 2.2.9 Reading file: /usr/local/lib/term/termrc Using shared mode.Si la seconde ligne n'apparaît pas, c'est quetermne trouve pas le fichier 'termrc' et vous pouvez être sûr que quelque chose ne s'est pas déroulé normalement lors de l'installation (sauf si vous n'utilisez pas de fichier 'termrc' et entrez tous les paramètres dans la ligne de commande :-)). Vérifier la localisation et les droits du fichier 'termrc' sur le système oùtermne le trouve pas.termou votre répertoire '.term' est-il monté parNFS? Si tel est le cas, il faut utiliser l'option-Dterm_NFS_DIRdans la ligneCFLAGSdu 'Makefile'. Malheureusement, en ce qui concerne l'auteur, ce paramètre provoque une erreur de compilation lorsqueterm 1.19est compilé sur une machine sousSunOS 4.*.- Tous les fichiers et répertoires ont-ils les bons propriétaires et des droits adéquats ? Cela ne devrait pas être un problème dans la mesure où les propriétaires et les droits sont déterminés lors de l'installation. Néanmoins, soyez conscient de ce fait si vous effectuez le portage pour
termde vos propres applications. Si de plus vous modifier le mode d'exécution determ(c'est-à-dire du mode privé vers le mode partagé), il faut changer en conséquence les propriétaires et les droits des fichiers.- Si vous obtenez une erreur
gethostbyname: <hostname>: Non-authoritative `host not found', ouserver failed, il vous faut vérifier les points suivants :
- Le fichier '
/etc/hosts' est-il configuré correctement ? Si<hostname>n'est pas le nom de votre machine (les vieilles distributions SLS et les distributions Slackware sont fournies avec 'darkstar' pour nom de machine, par exemple), il vous faut modifier ce fichier. Il doit au minimum contenir une ligne telle que :# Local Hosts Format: # IP_NUMBER HOSTNAME ALIASES # # Here is the name of your host, first, followed by any aliases 127.0.0.1 localhost linuxpc.domain linuxpc- Vos fichiers '
/etc/rc*' et '/etc/resolv.conf' sont-ils lisibles (chmod ugo+r) ?- Vérifez enfin que vous avez installé l'interface
TCP/IP loopbacksur votre machine.- Les fichiers de log de
termsont remplis de messages 'timed out' de tous types ? Cela signifie que votre connexion n'est pas optimisée. Quelques messages de ce type de temps en temps ne posent guère de problème. Ils sont sans doute dus à des facteurs temporels influant sur la qualité de la connexion physique entre vos machines locale et distante. Si, en revanche, le nombre de ces messages est très élevé, votre connexion sera fortement ralentie. Il vous faut alors jouer sur les paramètres présentés dans la partie 'Optimisation de la liaison'. C'est malheureusement la partie la plus expérimentale de l'installation. Aucune règle définitive concernant les valeurs des paramètres ne peut être donnée, tant les facteurs susceptibles d'influencer la qualité de la connexion sont nombreux. Ces facteurs varient d'une connexion à l'autre et même d'un moment à l'autre pour une même connexion.- Un
ftpnormal avec des ports redirigés ne fonctionne pas chez vous ? C'est un problème connu : la redirection des ports requis parftp(les ports 20 et 21) ne permet pas àftpde fonctionner. La seule solution est de récupérer unftpmodifié pour fonctionner avecterm. Malheureusement, même de telles versions deftpsemblent ne pas fonctionner.
Page suivante Page précédente Table des matières