Ce cours est visible gratuitement en ligne.

Got it!
A la découverte d'UNIX (FreeBSD)

A la découverte d'UNIX (FreeBSD)

Last updated on Tuesday, January 8, 2013
  • 4 semaines
  • Moyen

Editeurs et installateurs

Non, je ne vais vous parler ni de Fayard ni de Gallimard ! :p

Vous devez savoir que les fichiers que vous avez découverts au chapitre précédent se classent en deux grandes catégories :

  • Les fichiers binaires, lisibles uniquement par l'ordinateur. Si vous affichez leur contenu avec less ou cat, vous verrez une suite incompréhensible :o de symboles en tous genre. Chacun de ces symboles représente en fait une suite bien précise de 0 et de 1.

  • Les fichiers texte, lisibles par les humains. :) Ceux-là peuvent être modifiés (on dit édités) directement dans la console. Vous utiliserez pour cela un logiciel appelé très logiquement : éditeur de texte.

A - ee et les variables d'environnement

Si vous ne connaissez pas d'autre éditeur de texte que le Bloc-notes de Windows, vous vous demandez peut-être pourquoi je consacre tout un chapitre à une application aussi anecdotique. :o En réalité, le rôle des éditeurs de texte est essentiel : ils permettent d'écrire le code-source des programmes informatiques, en se servant d'un langage de programmation comme le C, le Java ou le PHP. Ensuite, on se sert d'un autre programme, un compilateur, pour transformer les fichiers textes du code-source en fichiers binaires que l'ordinateur pourra exécuter.

Deux de ces éditeurs font partie intégrante du système de base de FreeBSD : vi et ee.

vi, l'éditeur de texte mis au point par Bill Joy, est très puissant et permet à de nombreux développeurs informatiques d'aller très vite. Il est cependant difficile à prendre en main.

ee, par contre, c'est l'easy editor : l'éditeur facile. Il ne propose que des opérations très basiques : écrire du texte, effacer une ligne, rechercher un mot (quand même !), sauvegarder.

Allez dans votre dossier personnel. Vous allez tout de suite essayer ee en modifiant le fichier .cshrc. Les commandes que vous écrivez dans ce fichier sont automatiquement exécutées à chaque fois que vous vous loguez.

% ee .cshrc

Dans ce fichier, vous allez définir votre profil d'utilisateur et indiquer quelques-unes de vos préférences. Par exemple, vous pouvez indiquer que votre langue préférée est le Français.

Vous pouvez tout de suite commencer à écrire. Ajoutez la ligne :

setenv LANG fr_FR.ISO8859-1

LANG est ce qu'on appelle une variable d'environnement. Tous les programmes (ou presque) utilisent des variables. Elles sont désignées par un nom et ont une valeur qui peut changer au cours du temps. En général, les variables utilisées par un programme ne peuvent pas l'être par un autre. Mais les variables d'environnement, elles, sont gérées directement par l'OS et tous les programmes y ont accès. La commande setenv permet de leur attribuer une valeur. En donnant à LANG la valeur fr_FR.ISO8859-1, vous indiquez à FreeBSD que vous êtes francophone.

La touche Echap donne accès au menu principal, dans lequel vous pouvez sauvegarder et/ou quitter. La plupart des commandes disponibles restent affichées en permanence en haut de l'écran, ce qui est quand même bien pratique. Pensez juste à remplacer le symbole ^ par la touche Ctrl. Une fois dans le menu principal, tapez a pour quitter puis de nouveau a pour enregistrer vos modifications.

A présent, déloguez-vous avec exit puis loguez-vous à nouveau. Ouvrez ee : il est en Français ! :) Et toutes les applications qui consultent la valeur de LANG le seront aussi. Vous voulez vérifier la valeur de LANG ? Rien de plus simple. Demandez juste :

% echo $LANG

Et FreeBSD vous répondra : fr_FR.ISO8859-1.

Bien entendu, il existe d'autres variables d'environnement. Par exemple :

  • USER : Votre nom d'utilisateur (votre login, si vous préférez).

  • EDITOR : Votre éditeur de texte préféré. Faites votre choix et, dans le fichier .login, affectez à EDITOR la valeur ee, vi, vim ou emacs.

  • CDROM : Le fichier représentant votre lecteur de CD-ROM. Il se trouve dans le dossier /dev.

  • MACHTYPE : Le type de microprocesseur de votre ordinateur.

  • SHELL : Votre shell favori (/bin/csh).

  • PATH est une liste de dossiers. Les programmes exécutables situés dans ces dossiers peuvent être appelés à tout moment en tapant juste leur nom (ex : pwd, ls, ee, echo, etc.)

S'il y a d'autres utilisateurs sur le système, et s'ils ont les mêmes préférences que vous, pensez à copier ce fichier .cshrc dans le dossier personnel de chacun, pour qu'eux aussi profitent de la francisation. S'il y en a beaucoup, servez-vous du joker : * :

[Nom de l'ordinateur]# cp /usr/home/[votre identifiant]/.cshrc /usr/home/*

En tant que root, vous pouvez aussi éditer le fichier /etc/csh.cshrc. Son contenu est ajouté automatiquement à tous les .cshrc.

ee est idéal pour les débutants, mais il s'avère limité lorsqu'on veut rédiger de longs programmes. Ce qui serait bien, ce serait d'avoir un éditeur de texte sur lequel on puisse débuter aussi simplement qu'avec ee, qui nous laisse progresser à notre rythme et qui, une fois qu'on a l'habitude de s'en servir, offre finalement des fonctions aussi puissantes que celles de vi.

Vous savez quoi ? ;) Cet éditeur de texte existe. Il s'appelle emacs. Mais vous devez d'abord l'installer.

emacs sous UNIX ? C'est plutôt un éditeur pour Linux, non ?

Pour des raisons historiques, les puristes considèrent parfois qu'emacsva avec Linux tandis que vi (et son dérivé vim) vont avec UNIX. En pratique, chacun fait comme il préfère. Et il se trouve que je préfère emacs. D'ailleurs, c'est justement un lisant le tutoriel de m@teo21 sur Linux que vous pourrez en apprendre davantage sur vim, si vous le souhaitez.

B - Installer des programmes

Avant d'installer emacs (ou quoi que ce soit d'autres), vous devez d'abord récupérer le catalogue des ports. Ce document indique à votre système la liste des 22780 (le 13/04/2011) programmes disponibles pour FreeBSD. Il lui donne également toutes les instructions nécessaires pour installer ces programmes. Pour télécharger le catalogue, servez-vous de la commande portsnap. Récupérez (fetch) d'abord une archive contenant les nouveaux ports puis demandez son extraction (extract) :

[Nom de l'ordinateur]# portsnap fetch
[Nom de l'ordinateur]# portsnap extract

Ou tout simplement :

[Nom de l'ordinateur]# portsnap fetch extract

N'hésitez pas à employer souvent cette dernière commande : le catalogue évolue tous les jours. Il n'attend pas, comme sous d'autres OS, la sortie de la prochaine version de FreeBSD.

Les quatre installateurs

Sous FreeBSD, chaque tâche peut être accomplie de plusieurs manières, ce qui vous laisse une grande liberté. Par exemple, il existe bien des manières différentes pour installer des programmes. Commençons déjà par les deux principales.

Premier installateur : pkg_add. C'est le système des paquets binaires en .tbz, semblable à ce qui se pratique sous Linux avec les .rpm et les .deb. En une seule commande, vous lancez un programme qui va télécharger tous les fichiers binaires de l'application désirée et installer automatiquement chacun au bon endroit sur votre disque.

Deuxième installateur : make install. C'est le système des ports. Là encore, c'est un programme automatique. Mais lui télécharge le code-source de votre application. Il le compile sur votre ordinateur et installe chacun des fichiers binaires obtenus au bon endroit sur le disque.

L'avantage d'un paquet tout prêt est évident : son téléchargement est plus rapide. :magicien:

Mais en compilant chez vous avec les ports, vous aurez un fichier exécutable taillé sur mesures :soleil: pour votre machine, qui s'exécutera donc (un peu) plus rapidement. Vous pourrez aussi choisir certaines options. Dans ce tutoriel, vous téléchargez beaucoup mais, lors d'une utilisation quotidienne, on ne le fait pas si souvent et on est bien content d'avoir des programmes sur mesures. De plus, la version d'un logiciel disponible par les ports est généralement la plus récente et certaines applications n'existent carrément pas en version paquet.

Les ports sont donc bien utiles et ce n'est pas pour rien si Mac OS X et certaines distributions de Linux ont repris ce système. Toutefois, pour de très gros logiciels (X, KDE, GNOME, ...), la compilation peut durer des heures, :ange: surtout sous VirtualBox ou si votre RAM est limitée. Pensez alors aux paquets.

Certains paquets binaires sont présents sur le DVD de FreeBSD. Vous pouvez les installer à l'aide d'un troisième programme : sysinstall (tiens, une connaissance :) ). Je ne recommande pas cette méthode car, à moins que la dernière version de FreeBSD vienne juste de sortir, il y a de grandes chances que les paquets du DVD soient obsolètes. Et puis, télécharger l'image ISO du DVD, c'est télécharger la totalité des paquets. Et tous ne vont pas vous intéresser.

Et il y a aussi les méthodes manuelles, moins pratiques mais qu'il peut être bon de connaître.

Le quatrième installateur, c'est donc vous-même. :p Vous pouvez télécharger manuellement les fichiers binaires d'une application. Ils se retrouveront alors tous dans le même dossier. Je vous montrerai ça.

C - Les fiches FreshPorts

Quelle que soit votre installateur préféré, il faut d'abord trouver votre logiciel. Et pour ça, la méthode la plus simple est encore d'aller sur le site des FreshPorts. Vous pouvez aussi consulter la liste officielle des ports. FreshPorts donne cependant davantage d'informations.

La page d'accueil du site vous donne l'actualité des 10 derniers jours : les nouveautés et les failles de sécurité détectées dans tel ou tel logiciel. Consultez-la souvent. Vous saurez ainsi quand mettre votre catalogue à jour ou quand prendre des précautions avec un logiciel vulnérable.

Dans la catégorie editors, trouvez emacs et cliquez dessus pour consulter sa fiche. Elle vous apporte beaucoup de renseignements précieux :

  • La version actuelle d'emacs (23). Notez que d'anciennes versions, toujours disponibles, ont également leurs fiches : emacs21 et emacs22.

  • L'e-mail du responsable du port. C'est la première personne à contacter pour râler :colere: demander de l'aide si vous rencontrez des problèmes.

  • La description de l'application.

  • Le site officiel d'Emacs.

  • La liste des dépendances, c'est à dire des bibliothèques ou programmes qui doivent être présents sur votre système pour que vous puissiez installer ou exécuter emacs. Quand vous demandez l'installation d'un programme, toutes ses dépendances sont également installées.

Le système des paquets et celui des ports gèrent très bien les dépendances et installent celles que vous n'avez pas sans qu'il y ait besoin de le leur demander.

Image utilisateur

Voici encore d'autres infos fournies par la fiche Freshports :

  • La commande à employer pour installer par les ports : cd /usr/ports/editors/emacs/ && make install clean et celle pour installer le paquet : pkg_add -r emacs. C'est généralement ça que vous rechercherez en priorité.

  • La liste des options de compilation disponibles : des choix que vous pouvez faire pour personnaliser votre compilation (si vous employez les ports).

  • La liste des serveurs HTTP ou FTP que votre ordinateur va contacter automatiquement pendant l'installation.

  • L'historique des mises à jour et événements survenus depuis 10 ans concernant ce port.

D - Paquets et terminaux virtuels

La commande permettant d'installer un paquet est pkg_add. Saisissez donc :

[Nom de l'ordinateur]# pkg_add -r emacs

C'est quoi ce -r ?

Pour le savoir, il faudrait demander man pkg_add. Seulement voilà, vous venez de lancer un téléchargement qui va durer plusieurs minutes. :) Bonne nouvelle : UNIX est un système d'exploitation multitâches. Il peut exécuter plusieurs programmes en même temps.

Et comment je peux lui demander de lancer un autre programme ? Je n'ai pas d'invite de commande !

C'est vrai que le terminal principal (ttyv0) est occupé pour l'instant et que vous ne pouvez pas y écrire. Mais il y en a d'autres : des terminaux virtuels. Pour y accéder, appuyez sur les touches Alt F2.

Image utilisateur

Voici le terminal virtuel (ttyv1), dans lequel vous pouvez vous loguer et taper :

% man pkg_add

Pendant que vous lisez le manuel dans le terminal virtuel (ttyv1), votre téléchargement continue dans le terminal principal. Et si vous avez beaucoup de processus à lancer en même temps, vous pouvez ouvrir d'autres terminaux virtuels en appuyant sur Alt F3, Alt F4, ..., jusqu'à Alt F8.

Avez-vous trouvé le sens de ce -r ?

Tout à fait, il signifie "remote" : à distance. Le paquet que vous avez demandé doit donc être téléchargé depuis un serveur distant. Une fois votre curiosité satisfaite, revenez au terminal principal avec Alt F1.

Le téléchargement est en cours. Le paquet emacs.tbz est récupéré sur un serveur FTP. Ensuite, il sera ouvert et tout va s'installer automatiquement.

La commande pour effacer un paquet est pkg_delete, suivie de son nom. Elle implique que vous connaissiez le nom exact du paquet à effacer, avec le numéro de version et tout et tout... Difficile de tous les retenir. :o Mais il y a une autre commande bien pratique : pkg_info, qui vous donne la liste des paquets présents sur votre disque, avec quelques mots de description pour chacun. Essayez-la maintenant dans un terminal virtuel.

Pour l'instant, il n'y a pas grand-chose. Mais, d'ici quelques jours, vous aurez déjà des dizaines de paquets installés sur votre machine et il deviendra difficile de s'y retrouver. Heureusement, il y aura la commande grep ! :) Nous en reparlerons.

E - Emacs

Emacs est un éditeur de texte créé par Richard Stallman, le président de la Free Software Foundation (Fondation pour le Logiciel Libre) et initiateur du projet GNU. D'où l'idée selon laquelle il irait plutôt avec Linux.

Bon, il est temps d'essayer :

[Nom de l'ordinateur]# emacs

Si ça ne fonctionne pas, passez par la version longue : /usr/local/bin/emacs. La prochaine fois que vous redémarrerez, un simple emacs suffira.

Image utilisateur

Emacs (Editor macros) est un éditeur de texte très pratique. Il comporte des fonctionnalités puissantes et des raccourcis clavier qui permettent aux habitués d'éditer très rapidement. :soleil: Et il peut aussi être utilisé simplement par des débutants, :euh: d'une façon moins optimale mais bien plus intuitive.

Pour apprendre à le maîtriser, vous consulterez le tutoriel intégré dans le logiciel, en appuyant sur Ctrl h puis sur t. Voici déjà des bases, qui vous suffiront pendant quelques temps. Les combinaisons de touches pour se déplacer à travers un fichier sont :

  • Ctrl p (previous) : vers le haut

  • Ctrl n (next) : vers le bas

  • Ctrl b (back) : vers la gauche

  • Ctrl f (forward) : vers la droite.

Mais vous pouvez utiliser tout simplement les touches fléchées. Il y a aussi :

  • Alt v (ou Pg_Up) : écran précédent

  • Ctrl v (ou Pg_down) : écran suivant

  • F10 puis l'initiale d'un menu : accès à ce menu

  • Echap : quitter les menus

  • Ctrl x puis Ctrl w : enregistrer sous...

  • Ctrl x puis Ctrl s : enregistrer

  • Ctrl x puis Ctrl c : quitter Emacs (on vous propose alors de sauvegarder)

Fouillez bien le menu Tools. Vous y trouverez des "outils" un peu particuliers, comme celui-ci par exemple :

Image utilisateur

Quand vous avez fini de faire mumuse avec Tétris et les autres jeux, revenez à la ligne de commande. Vous n'avez pas déjà oublié comment on quitte Emacs, quand même !

F - Les ports et la navigation

Voyons le système des ports, à présent. Je vous propose d'installer un navigateur web. Comme ça, vous pourrez suivre ce tutoriel en direct, en passant simplement d'un terminal virtuel à l'autre. Génial, non ? :D Et puis, c'est logique de trouver un navigateur dans un port. :p

:euh: Euh, je veux bien, mais on n'a toujours pas de graphismes. Comment ouvrir un navigateur web dans la console ?

Pas besoin d'un environnement graphique pour surfer sur la toile. Des navigateurs en mode texte, ça existe. Bon alors, c'est sûr, vous n'y verrez pas d'images, mais vous pourrez tout de même accéder au texte des pages web. Celui que je vous propose d'installer s'appelle links. Pour le trouver sans aller sur Freshports, tapez :

% whereis links
/usr/ports/www/links

Direction : le port !:pirate:

% cd /usr/ports/www/links

ls montre que ce dossier contient un fichier Makefile. Si vous avez déjà programmé, vous savez que c'est l'un des outils nécessaires pour compiler un programme, autrement dit pour passer de son code-source à un fichier exécutable.

Pour commencer la compilation, tapez (en root) :zorro: :

[Nom de l'ordinateur]# make install clean

Cette commande make demande à l'ordinateur d'exécuter toutes les instructions écrites dans le fichier Makefile. Il va donc vous compiler un links spécialement adapté à votre configuration. Puis il va l'installer, car vous avez tapé install. Troisième étape, clean va supprimer les fichiers temporaires créés pendant la compilation, qui ne sont plus nécessaires ensuite.

D'abord, une boîte de dialogue apparaît pour vous proposer quelques options.

Image utilisateur

C'est l'occasion de personnaliser votre installation. Ici, par exemple, nous installons un navigateur en mode texte donc nous n'avons pas besoin du support des graphismes X11. Une fois que nous aurons un environnement graphique, nous naviguerons avec Firefox ou l'un de ses semblables mais plus avec links. Vous pouvez donc décocher la case X11. Le patch utf-8 de gentoo n'est probablement pas utile non plus vu que nous n'utilisons pas Gentoo mais FreeBSD. N'en sachant pas plus, je l'ai quand même laissé (c'est peut-être un patch créé pour Gentoo mais utile aussi avec d'autres OS). Je vous invite d'ailleurs à adopter la même attitude prudente : à moins d'être certains de savoir ce que vous faites, laissez toujours les options par défaut qu'on vous propose et dites juste OK à chaque fois.

Consultez la fiche FreshPorts de votre programme pour savoir quelles options de compilation sont modifiables. Pour compiler automatiquement avec toutes les options par défaut, vous pouvez ajouter BATCH=yes à la commande précédente. Ce qui donne :

[Nom de l'ordinateur]# make install clean BATCH=yes

Si, par contre, vous voulez ajuster des options, vous pouvez, avant de compiler, taper :

[Nom de l'ordinateur]# make config

La boîte de dialogue apparaîtra tout de suite et vous pourrez faire vos choix. Plus tard, quand vous taperez make install clean, la compilation tiendra compte des options que vous aurez personnalisées. Si, entre temps, vous changez d'avis et souhaitez revenir aux options par défaut, tapez make rmconfig.

La commande make deinstall permet de désinstaller l'application. Mais si vous vous apercevez, pendant une longue compilation que, tout compte fait, vous ne voulez pas de ce logiciel, ce n'est peut-être pas la peine d'attendre la fin. A tout moment, vous pouvez interrompre le programme qui tourne dans la console active en tapant Ctrl C. C'est vrai pour make, mais aussi pour n'importe quelle commande dont vous voulez interrompre prématurément l'exécution.

Voyons maintenant comment se déroule l'installation. Ce moulin à paroles qu'est FreeBSD va tout vous raconter au fur et à mesure. Vous verrez des téléchargements par FTP, des inspections de votre disque dur, un recours régulier au compilateur CC pour transformer des fichiers bidule.c (fichiers textes contenant du code-source en langage C) en bidule.o (on appelle ça un fichier « objet »), etc. La compilation proprement dite est l'assemblage de ces fichiers objets (leur combinaison, leur regroupement, leur association, leur compilation, quoi ;) ).

Au bout de quelques minutes, la main vous est rendue et vous pouvez lancer votre nouvelle application en tapant links.

Image utilisateur

Il faut appuyer sur la touche Echap pour accéder aux menus. Allez dans Setup -> Language et choisissez French.

Et maintenant, Mesdames et Messieurs, :magicien: vous allez découvrir le Site du Zéro comme vous ne l'avez encore jamais vu. :D Appuyez simplement sur la touche g (comme go to) et tapez l'adresse www.siteduzero.com :

Image utilisateur

Descendez avec les touches fléchées (ainsi que Pg_Down et Pg_Up) jusqu'au menu des tutoriels et, quand vous arrivez sur UNIX, appuyez sur la touche Entrée. Vous pouvez maintenant suivre ce tutoriel dans le terminal principal et essayer les commandes dans un autre.

Editeurs et installateurs... Grâce à ces outils, nous allons bientôt pouvoir passer en mode graphique. Retroussez-vous les manches : il ne va pas tomber du ciel !

Example of certificate of achievement
Example of certificate of achievement