Page suivante Page précédente Table des matières
4. Installation et configuration de suck
Si vous ne pouvez disposer de la méthode citée ci-dessus,
suckvous permet de récupérer par vous même les articles sur le serveur distant.Toutes les manipulations doivent se faire sous le compte
root.4.1 Installation de suck
suckpeut être récupéré sous la forme d'unrpmou sous la forme d'untgz. La première solution est, évidemment la plus simple. À l'heure où ces lignes sont écrites, la version la plus récente est la 3.9.0.L'installation de
sucknécessite d'avoir auparavant installé le paquetageINN. En effet, par défaut,suckest prévu pour fonctionner avec lui. Vous avez donc le choix : forcer l'installation desucksansINNen utilisant l'option--nodepsderpm, ou installerINNavant (cette dernière solution est préférable puisqu'il faudra, de toutes façons, installerINN...). Reportez-vous à la section Installation et configuration d'<tt/INN/.Si vous utilisez un
rpm, pas de problème : vous installez avecrpmen ligne de commande, ouglintsous X, et c'est tout.Si vous utilisez un
tgz, faites en sorte de placer les binaires (suck, lmove, testhost, rpost) dans/usr/bin, les pages de manuel iront dans/usr/man/man1et les scripts et fichiers de configuration (get.news.innxmit, get.news.rnews, put.news, sucknewsrc, suckkillfile) dans/usr/lib/suck. Enfin, le fichier scriptsuck(à ne pas confondre avec le programme...) ira dans/etc/logrotate.d.4.2 Premiers tests
Maintenant, on peut tester la récupération (on suppose que le
telnet news.fai.fr nntp, décrit plus haut, a été testé...). Pour ce faire, on édite le fichier/usr/lib/suck/sucknewsrcqui abritera les noms des forums qui nous intéressent. L'exemplaire livré contient plusieurs lignes que l'on supprime. À des fins de test, on ajoute une seule ligne :
fr.comp.os.linux -10pour indiquer à
suckqu'il devra, sitôt lancé, récupérer les 10 derniers articles du forumfr.comp.os.linux. N'oubliez pas le 10 car, sinon, vous risquez de récupérer tous les articles de ce forum disponibles sur le serveur !)Vérifiez que le sous-répertoire
/usr/lib/suck/Msgsexiste, sinon créez-le.On sauvegarde ce fichier, et, en restant dans
/usr/lib/suck, on tape la commande suivante (après établissement de la connexion PPP...) :
suck news.fai.fr -m -H -KL'option
-mpermet d'invoquersucken mode multifile : il créera autant de fichiers qu'il récupère d'articles. Si vous omettez cette option, les articles seront simplement affichés à l'écran au fur et à mesure de leur récupération.Les options
-H -Kdemandent àsuckd'ignorer les fichiers d'historique et le kill-file (cf. plus loin)...Normalement, l'affichage vous apprend que vous êtes connecté au serveur de news distant, puis vous indique que le nombre d'articles à récupérer dans
fr.comp.os.linuxest limité à 10. Enfin, la récupération commence : le nombre d'articles restant à récupérer et la vitesse de transfert s'affiche. Lorsque cela est terminé, vous pouvez couper votre connexion PPP : les articles sont sur votre machine...Normalement, plusieurs choses ont dû de passer :
- les fichiers
/tmp/suck.newrc, /tmp/suck.sortedont été créés ;- le sous-répertoire
/etc/lib/suck/Msgscontient désormais des fichiers portant des noms étranges (par défaut, c'est là que le mode multifile sauve les fichiers articles). Chacun de ces fichiers correspond à l'un des 10 articles que vous avez récupéré et vous pouvez les visualiser avec votre éditeur de texte favori (rassurez-vous, il existe des moyens bien meilleurs de consulter les articles...).Détaillons un peu :
/tmp/suck.newrcest une mise à jour desucknewsrc: regardez et vous verrez que la ligne concernantfr.comp.os.linuxa remplacé -10 par une autre valeur, le numéro du dernier article lu./tmp/suck.sortedcontient les en-têtes des articles récupérés. Ce fichier ne sert pas à grand chose sauf lorsqu'on veut pister d'éventuels dysfonctionnements.Le problème est que
sucknewsrcn'a pas été modifié, orsuckn'utilise que ce dernier pour stocker le numéro du dernier article récupéré afin de pouvoir, lors de la session suivante, ne télécharger que les nouveaux. Cela signifie donc que si vous relancezsuckmaintenant, il récupérera exactement les mêmes articles...Pour éviter cela, il faut détruire l'ancien
sucknewsrc, et renommer/tmp/suck.newrcensucknewsrc... Fastidieux, non ?Heureusement, l'option
-c(comme clean) passée àsuckeffectue cela automatiquement :
- elle renomme
sucknewsrcensucknewsrc.old(ce qui permet de revenir en arrière, si nécessaire) ;- elle renomme
/tmp/suck.newsrcensucknewsrc;- elle détruit
/tmp/suck.sorted(et d'autres fichiers utilisés temporairement parsuck).Nous vous conseillons de n'utiliser cette option que lorsque vous aurez bien vérifié que tout fonctionne correctement : en effet, les différents fichiers sont autant de traces de fonctionnement.
Bon, on a supposé que tout avait marché comme sur des roulettes... Ce serait trop simple : votre premier lancement de
sucka très bien pu ne pas se dérouler comme prévu... Notamment, vous pouvez avoir eu des erreurs du style :
430 No such article ..........Si ces erreurs sont rares (1 sur 10, par exemple) ce n'est pas trop grave, il faudra quand même surveiller les sessions suivantes. Si, par contre, il y en a beaucoup (au pire, 10 sur 10) alors bienvenue à notre premier problème...
Il faut savoir que chaque article porte un champ d'immatriculation. C'est l'en-tête (« header ») appelé « Message-id », établi lors de la publication de l'article de façon à être (très vraisemblablement) unique.
Comme nous l'avons vu dans la section 2, sur toute machine utilisant un logiciel serveur de news classique (par exemple
INN) chaque article est stocké dans un fichier nommé d'après son numéro d'arrivée, lui-même placé dans un répertoire le plus souvent placé sous/var/spool/newset au nom établi d'après celui du forum. Le premier article arrivé sur un serveur donné pour le forum fr.comp.os.linux, par exemple, sera stocké dans un fichier appelé/var/spool/news/fr/comp/os/linux/1.Attention : par « premier article arrivé », il ne faut pas entendre « le premier article paru dans le groupe », car un nouveau serveur récupère, sitôt connecté, les articles circulant à ce moment et non les anciens.
Le « Message-id » d'un article donné est le même sur tous les serveurs, mais son « numéro » sur deux serveurs distincts sera très probablement différent.
suckrécupère les articles par leurMessage-id, or certains serveurs de news dont ceux qu'utiliseHavas On Line(qui s'appellentnews1.isdnet.net, news2.isdnet.net, etc.) ont configuré leur système pour que la récupération ait lieu sur lenuméro d'article... La récupération classique parsuckne fonctionne donc plus, d'où ces erreurs...Heureusement, Emmanuel Chantreau a corrigé ce problème en modifiant le code de
suckpour lui ajouter une option-nlui permettant de récupérer les articles par leur numéro sur le serveur plutôt que sur leur Message-id. Cette modification a été intégrée àsuckà partir de la version 3.8.0.Cette option a un autre effet, il se trouve qu'elle surcharge moins le serveur distant, je vous conseille donc de l'utiliser systématiquement. Passé d'HOL à Easynet, qui autorise la récupération sur le Message-id, j'ai remarqué que celle-ci provoquait de fréquents « time-out » (tous les 10 articles, environ). L'ajout de l'option
-na corrigé ce problème.À partir de là, on suppose donc que
sucka bien récupéré vos articles. Si ce n'est pas le cas, n'allez pas plus loin, recommencez tout depuis le début : ce ne sera pas une perte de temps...Pour vous aider dans le dépistage des problèmes, vous pouvez utiliser l'option
-Dqui créera un fichierdebug.suckcontenant les traces d'exécution du programme.4.3 Tests supplémentaires : préparation à l'utilisation de rnews
Si les tests précédents ont donné satisfaction, on peut passer à l'étape suivante pour préparer l'installation de
INNet la lecture des articles avec un lecteur de news digne de ce nom...Au lieu de sauvegarder chaque article dans un fichier séparé comme c'était le cas jusqu'alors, on va créer un fichier de traitement par lots (« batch ») qui pourra ensuite être traité par le programme
rnews(cf. plus loin).La commande permettant de réaliser cela est la suivante (elle doit être invoquée à partir du répertoire
/usr/lib/suck) :
suck news.fai.fr -c -n -H -K -br nouveauLes options
-c -n -H -Kont déjà été décrites plus haut...L'option
-br nouveauindique àsuckde créer un fichier dit « batch », qui s'appelleranouveau, contenant tous les articles reçus afin qu'ils puissent ensuite être envoyés à votre serveur de news local viarnews(il existe aussi une option-biréalisant la même chose en vue d'un traitement parinnxmit: toutes les informations sur les formats de ces fichiers batch sont disponibles par la commandeman sucket ne seront donc pas traitées ici).Attention : Pour une raison que je ne m'explique pas encore,
suckdans sa version 3.9.0 refuse de mettre à jour le fichier de batch si celui-ci existe déjà... La seule solution que j'ai trouvé pour l'instant est de renommer celui-ci ennouveau.oldavant d'appelersuck. À noter que ce problème n'apparaissait pas avec la version précédente.On va d'abord faire en sorte de récupérer des articles : éditez le fichier
/usr/lib/suck/sucknewsrc, ôtez la deuxième valeur en face defr.comp.os.linuxet modifiez le chiffre restant (numéro du dernier article récupéré de ce groupe) en lui ôtant 10 : vous devriez donc récupérer au moins 10 articles... Lancez la commande décrite plus haut.Les choses ont changé par rapport aux premiers tests :
- le répertoire
/usr/lib/suck/Msgsest vide ;- un fichier
nouveaua été créé dans/usr/lib/suckÉditez le fichier
nouveauet vérifiez qu'il contient bien les articles reçus (séparés par des champs#! rnews xxxxoùxxxxest la taille de l'article). Tant que vous n'avez pas installéINN(et doncrnews) vous ne pouvez pas en faire grand chose hormis le parcourir...Ce qui est important c'est que, si vous êtes arrivés là, vous êtes prêts pour la suite... Sinon, ne continuez pas : assurez-vous que tout ce qui a été décrit plus haut fonctionne correctement !
À noter que
suckdispose de l'option-a, lui permettant de mettre en batch tous les articles récupérés même si, pour une raison ou une autre (une déconnexion intempestive, par exemple), il n'a pu terminer la récupération totale. En ce cas, les articles déjà récupérés pourront donc être traités parrnews(sans cette option,suckne construit le batch qu'après s'être terminé normalement).Nous allons maintenant passer à l'installation d'
INN. Certains aspects desuckont été omis : c'est volontaire car ils n'ont aucun sens tant que notre serveur de news n'est pas installé...
Page suivante Page précédente Table des matières