Avant de commencer à construire term
, il vous faut être sûr que votre noyau a été
compilé avec l'option TCP/IP
. L'interface TCP/IP loopback
doit également avoir été
activée. Une fois que ceci est fait, vous pouvez parcourir le reste de ce paragraphe.
Dans les dernières versions de term
, deux nouveaux concepts ont fait leur apparition. Les deux paragraphes suivants
y sont consacrés.
Depuis la version 1.16 de term
, le concept de partage de la connexion term
avec d'autres utilisateurs
est apparu. Si, par exemple, vous travaillez sur la machine distante via votre connexion term
(vous avez utilisé
trsh
pour vous connecter depuis votre machine locale), un autre utilisateur peut utiliser la même connexion pour
transférer par ftp
un fichier sur son compte sur la machine locale, depuis un site ftp
distant.
Lorsque vous désactivez les possibilités de partage (c'est-à-dire que vous utilisez term
en mode
privé), vous seul (en plus de root~:-) pouvez utiliser la connexion term
.
Bien sûr, vous n'avez besoin d'installer le term
partagé qu'à l'extrêmité à
laquelle vous voulez permettre à d'autres utilisateurs de profiter de la même connexion term
que 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 connexion term
. De cette
façon, ces personnes peuvent se connecter à votre machine locale en utilisant la même connexion term
que 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 term
en 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:root
ou tout GID inutilisé autre que 16, si 16 est déjà attribué.
Après la compilation et l'installation, rendez term
et 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
.
term
intégralOn 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 connexion term
, vous disposez d'un réseau term
intégral. Il vous faut alors compiler term
avec cette option. Dans ce cas, un fichier 'termnet
' est
placé dans votre répertoire partagé. Ceci indique à term
qu'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
term
tenteront dans un premier temps d'utiliser cette connexion. Si cela échoue, term
sera lancé et
une nouvelle tentative sera effectuée, avec la connexion term
. Pour être plus clair, voici un exemple qui
utilise la version term
de telnet
, laquelle peut fonctionner avec ou sans term
.
telnet localhost
n'utilise pas term
pour réaliser la connexion alors que~:
telnet zeus.cs.kun.nl
utlisera term
si 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 pas term
deviennent inutilisables lorsque
term
est actif. Malheureusement, c'est le cas de la plupart des programmes et démons UDP
.
term
Si vous avez de la chance, un simple make
devrait suffire. Il est cependant probable que vous aurez un peu plus de
travail. Du fait des nouvelles possibilités des version récentes de term
, 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
~:
term
, versions 2.0.0 et ultérieures.term
, versions 1.16 à 1.19.term
, versions 1.15 et antérieures.term
, versions 2.0.0 et ultérieuresTout 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 term
des versions 2.0.0 et
ultérieures. Toutes peuvent être utilisées par root ou par un utilisateur normal~:
term
en mode privé sans réseau term intégral.term
en mode privé avec réseau term intégral.term
en mode partagé sans réseau term intégral.term
en mode partagé avec réseau term intégral.Dans ces versions de term
, une nouvelle procédure de compilation est apparue, grâce au script
configure
. Lorsque configure
est 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 avec
term
.
Deux des plus importantes options à configurer sont --root
et --user
qui déterminent si
term
doit être installé par root ou par un utilisateur classique. D'autres options peuvent
être utilisées pour installer term
à votre goût (dans une arborescence non standard, par
exemple).
term
en mode privé sans réseau term intégral.
Pour installer term
de 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.
term
en mode privé avec réseau term intégral.
Pour installer term
de 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.
term
en mode partagé sans réseau term intégral.
Pour installer term
de 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.
term
en mode partagé avec réseau term intégral.
Pour installer term
de 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.
term
, versions 1.16 à 1.19Pour installer ces versions de term
vous pouvez choisir l'une des procédures suivantes~:
term
en mode privé, en tant qu'utilisateur ordinaire.term
en mode partagé, en tant qu'utilisateur ordinaire.term
en mode privé, en tant que root.term
en mode partagé, en tant que root.Comment activer/désactiver les fonctionnalités de partage de term
durant la compilation est expliqué
ci-après.
term
avec d'autres utilisateurs.
Installez term
de la façon suivante~:
make DO=install OS-type make installmanCeci compile puis installe
term
, 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 lequel
term
recherchera son fichier 'termrc
'.
term
avec d'autres utilisateurs.
Installez term
de la façon suivante~:
make DO=installshare USERSHARE=$HOME/term OS-type make installmanCeci compile puis installe
term
, 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 droits
drwxrwxr-x
. Dans ce répertoire, vous trouverez au moins la socket utilisée par term
pour
sa connexion ('tmp/private/socket=
').term
avec d'autres utilisateurs.
Installez term
de la façon suivante~:
make DO=install OS-type make installmanCeci compile puis installe
term
, 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 droits
drwxrwxr-x
. Dans ce répertoire, vous trouverez au moins la socket utilisée par term
pour
sa connexion ('tmp/private/socket=
').term
avec d'autres utilisateurs.
Tout d'abord, assurez-vous d'avoir lu la partie concernant le partage.
Installez term
de la façon suivante~:
make DO=installshare OS-type make installmanCeci compile puis installe
term
, 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 droits drwxrwxr-x
. Dans ce répertoire, vous trouverez au
moins la socket utilisée par term
pour sa connexion ('tmp/private/socket=
').term
, versions 1.15 et antérieuresLa compilation de ces versions de term
ne devrait pas requérir d'autres commandes que~:
make DO=install OS-type make installman
Ceci 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 lequel
term
recherchera son fichier 'termrc
'.
Les seules choses que vous pourrez souhaiter modifier sont certains des chemins du 'Makefile
' et certaines options du
compilateur.
client.a, libtermnet.a, libtermnet.sa, libtermnet.so
Une bibliothèque est fournie avec term
. Elle propose des fonctions pour les clients term
.
Jusqu'à la version 1.16, cette bibliothèque était nommée client.a
. Elles était
bâtie lors de la compilation de term
, 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épertoire term
, puis utilisée pour la compilation des clients term
.
Elle n'est installée nulle part ailleurs.
A partir de la version 2.0.0, libtermnet.so
et libtermnet.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 de term
. Lors de l'installation de l'ensemble des composantes du paquetage, ces trois
bibliothèques (libtermnet.a, libtermnet.so
et libtermnet.sa
) sont installées dans le
répertoire '/usr/local/lib
' (par défaut). Un lien est ensuite créé de
libtermnet.so.2.x.x
vers libtermnet.so.2
. Finalement, ldconfig
est lancé pour créer les
liens et le cache nécessaires (pour le linkage à l'exécution, par ld.so
). ld.so
tient 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 clients term
qui 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 de term
(voir plus loin).
term
reconnaî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~:
termDIR
termSHARE
termMODE
Grâce à ces variables, il vous est possible de contrôler la façon dont term
s'exécute.
Pour les versions de term
1.15 et antérieures, seule la variable termDIR
est importante (ces versions ne
proposent pas le mode partagé). Pour ces versions, positionnez termDIR
de la façon suivante~:
setenv termDIR $HOME (csh ou tcsh) export termDIR=$HOME (ksh ou bash)
A partir de la version 1.16, term
reconnait également les variables termSHARE
et termMODE
.
Grâce à ces variables, on peut indiquer à term
s'il doit fonctionner en mode privé ou
partagé. Comment positionner ces variales pour les modes privé et partagé est expliqué ci-après.
termMODE
peut avoir l'une des trois valeurs suivantes~:
term
en mode privé en positionnant les variables termDIR
et termMODE
de la
façon suivante~:
En csh ou tcsh~:
setenv termDIR $HOME setenv termMODE 0En ksh ou bash~:
export termDIR=$HOME export termMODE=0
term
en mode partagé~:
term
est installé comme un programme SUID, seule termMODE
doit être
positionnée.
setenv termMODE 2 (csh ou tcsh) export termMODE=2 (ksh ou bash)
term
est 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 de
client.a
) en mode partagé.A partir de la version 2.0.0, term
reconnaît également la variable termSERVER
. 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 lancer term
avec le nom d'un serveur.
nohup term -v /dev/modem1 Connection1 & nohup term -v /dev/modem2 Connection2 &
Les utilisateurs doivent alors positionner la variable termSERVER
sur le nom de la connexion qu'ils souhaitent
utiliser~:
setenv termSERVER Connection1 (csh ou tcsh) export termSERVER=Connection2 (ksh ou bash)
term
Tapez make test
(ou make termtest
pour les versions récentes de term
) afin de compiler le
démon de test de term
. (term)test
fonctionne en exécutant deux occurences de term
sur 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)test
maintenant. Vous devriez être en mesure
de lancer un trsh
et un tupload
. Essayez~:
tupload ./term /usr/tmp
ceci devrait placer une copie de l'exécutable term
dans le repértoire '/usr/tmp
'. La sortie du
term
local apparaît dans le fichier 'local.log
', celle du term
distant dans 'remote.log
'.
Vous pouvez lancer term
avec l'option -d255
de 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 test
par la commande ./test
de façon à ne pas lancer le test
du
système.
term
et les programmes de communicationAvant de pouvoir utiliser term
, il faut avoir établi une connexion par modem, par l'intermédiaire d'un
programme de communication tel que kermit
ou seyon
. 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 à linecheck
ou term
.
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 term
lorsque vous utilisez kermit
~: à l'invite de kermit
, tapez la
commande suspend
. Vous voila de retour à l'invite de Linux
. A partir de là, vous pouvez
établir votre connexion term
.
seyon
Un moyen facile de lancer linecheck
ou term
à partir de seyon
est 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 linecheck
ou term
sur 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.
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 kermit
ou seyon
pour dialoguer
avec votre modem (les exemples fournis dans ce document utilisent kermit
, 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 au Serial-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 -8
afin de le rendre
transparent. Faites particulièrement attention à ne pas utiliser le contrôle de flux XON/XOFF
. Essayez
plutôt d'utiliser le contrôle de flux RTS/CTS
(hardware). L'étude de la documentation de votre
modem vous apprendra certainement comment le configurer pour des communications RTS/CTS
8 bits.
linecheck
ATTENTION~: dans certains documents, les options de linecheck
sont 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 à linecheck
le
nom d'un fichier de log. La sortie sera écrite dans le fichier 'linecheck.log
', dans le répertoire
d'où linecheck
a été lancé.
linecheck
est un programme fourni avec term
qui vérifie la transparence d'une liaison et fournit des
informations utiles pour une configuration correcte de term
. linecheck
envoie chacun des 256 caractères 8
bits possibles sur la liaison et vérifie que tous ont été transmis correctement. Il faut indiquer à
term
quels caractères ne peuvent pas être transmis sur la liaison, ce que linecheck
permet de
repérer. linecheck
doit être utilisé une fois que la liaison modem est aussi transparente que
possible. Pour lancer linecheck
, procédez comme suit~:
linecheck linecheck.log
linecheck linecheck.log > /dev/modem < /dev/modem
Lorsque linecheck
est 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 linecheck
se plante, essayez~:
linecheck linecheck.log 17 19
sur le système distant et~:
linecheck linecheck.log 17 19 > /dev/modem < /dev/modem
sur le système local. Ceci a pour effet de ne pas envoyer les caractères de contrôle de flux XON/XOFF
qui 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 lorsque
linecheck
se 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 157
et son 'termrc
' distant ainsi~:
ignore 29 ignore 157
puisque le 'linecheck.log
' distant indiquait d'éviter 29 et 157.
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 150
Examinons 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).
exec
signifie que le programme (term
, en l'occurence) remplace le shell à partir duquel il est
lancé. On utilise exec
lorsque 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 un exec
, de façon à pouvoir tuer le term
distant.
L'option -r
doit être utilisée à une et une seule extrêmité. Celle-ci sera alors vue par
term
comme 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, term
se plantera spontanément.
-l $HOME/tlog
permet 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.
term
est capable de corriger ceci, mais si les fichiers de log comportent de nombreux messages d'erreur (ou si
vous recevez de nombreux warnings des noyaux linux
0.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 de term_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 term
local~:
term -c off -l $HOME/tlog -s 38400 -w 10 -t 150 < /dev/modem > /dev/modem &
Il faut indiquer à term
où 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.
term
devrait maintenant fonctionner~:-). Essayez un trsh
et 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.
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~:
term
à chaque extrêmité de la liaison. C'est la méthode la moins
recommandée.echo '00000' > /dev/modemCeci devrait mettre fin à votre connexion
term
proprement. Cette méthode fonctionne avec toutes les versions
de term
. Assurez vous que la suite de zéros en contient bien au moins cinq.termrc
' des versions de term
2.0.0 et ultérieures, vous pouvez ajouter une entrée
terminate '<une chaîne de caractères>'
. Ceci indique la chaîne qu'utilisera term
pour
s'interrompre ('00000' par défaut). Elle doit être longue d'au moins cinq caractères afin d'éviter toute
terminaison intempestive.tshutdown
est 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). tshutdown
permet de mettre fin
proprement à votre connexion term
.term
Bien, vous l'aurez voulu~! Puisque certains d'entre vous veulent se débarasser de term
, nous indiquons ici les
étapes à suivre.
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 commande
rm -rf
./etc/group
' et effacez la ligne qui concerne ce groupe, si elle s'y trouve.term
ainsi que tous les exécutables modifiés pour
term
. C'est la partie la plus délicate. Les exécutables du paquetage de term
doivent 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 avec term
,
c'est à vous de voir, nous ne pouvons pas vous aider. Pensez également à effacer les fichiers de configuration
ou autres qui correspondent à ces programmes.cd / find . -name 'libtermnet*' -exec /bin/rm {}Ceci localisera et effacera les bibliothèques.
cd / find . -name termnet.h -exec /bin/rm {}
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
, txconn
et finalement tiptest
./usr/tmp/private
'.Une fois ce petit exercice terminé, vous pouvez être quasiment certain d'avoir effacé tout ce qui concerne
term
.
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 lancer tmon
dans 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
-s
), la compression
(-c
), la taille de fenêtre (-w
), les timeouts (-t
) et le recyclage (-A
).
Attention au paramètre de recyclage. Avec term
version 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 que term
tentera 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
'. term
ne 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
protocoles MNP-5
ou V42.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 que term
accepte d'envoyer sur la liaison avant
de recevoir un acquittement de la part du term
distant. 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 laquelle term
attend 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 150
et obtient environ 1700 cps pour les
fichiers compressés et 3500 cps pour les fichiers texte, les transfert étant effectués avec
tupload
.
Dans cette partie sont exposées quelques démarches classiques à suivre lorsque l'utilisation de term
ou de l'un de ses clients vous pose problème.
term
~? L'apparition de nouvelles versions de term
est
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 de term
. Ainsi, vous devriez éviter de vous créer des problèmes avec une
arborescence inadéquate.term
, effacez toutes
les sockets (appelées 'socket=
') créées par term
. Ne pas le faire vous expose
à d'étranges problèmes. Afin de déterminer à l'écoute de quelle socket se trouve
term
, vous pouvez utiliser le programme netstat
.term
ne se compile pas corectement sous SunOS 4.1.3
~? C'est que vous avez probablement
configuré term
avec ./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 configurer
term
avec des bibliothèques statiques. Il vous faut donc utiliser ./configure --user --static
et continuer
la compilation de façon normale. Tout devrait alors se dérouler normalement.termtest
vous donne une erreur~: 'term: failed to connect to term socket '/root/.term/sockettest'
'~?
Lorsqu'il est lancé, termtest
s'attend à trouver l'exécutable
term
dans le répertoire où il est lui-même. Lorsque vous faîtes un make install
avant
de lancer termtest
, l'exécutable term
est 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
term
a é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 commande type -a
de bash
ou bien la commande whereis
pour déterminer quel est le programme qui est exécuté.
Les versions de term
posté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~!).termrc
' au bon endroit~? Suivant les versions de term
que 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, term
cré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
'~!).term
trouve-t-il son fichier 'termrc
'~? Lorsque vous lancez term
des 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 que
term
ne 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ù term
ne le
trouve pas.term
ou votre répertoire '.term
' est-il monté par NFS
~? Si tel est le cas, il
faut utiliser l'option -Dterm_NFS_DIR
dans la ligne CFLAGS
du 'Makefile
'. Malheureusement, en ce qui
concerne l'auteur, ce paramètre provoque une erreur de compilation lorsque term 1.19
est compilé sur une
machine sous SunOS 4.*
.term
de vos propres applications. Si de plus vous modifier le mode d'exécution de term
(c'est-à-dire du mode privé vers le mode partagé), il faut changer en conséquence les
propriétaires et les droits des fichiers.gethostbyname: <hostname>: Non-authoritative `host not found'
, ou server
failed
, il vous faut vérifier les points suivants~:
/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
/etc/rc*
' et '/etc/resolv.conf
' sont-ils lisibles (chmod ugo+r
)~?TCP/IP loopback
sur votre machine.term
sont 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.ftp
normal avec des ports redirigés ne fonctionne pas chez vous~? C'est un problème
connu~: la redirection des ports requis par ftp
(les ports 20 et 21) ne permet pas à ftp
de
fonctionner. La seule solution est de récupérer un ftp
modifié pour fonctionner avec
term
. Malheureusement, même de telles versions de ftp
semblent ne pas fonctionner.Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre