Saturday, June 18, 2016

CentOS - à la ligne de commande - 01 : premiers pas

My next blog posts will be on two different subjects: CentOS Linux (in French) and, probably a little later, Exchange 2016 (in English).

English abstract: in this first blog post, I address some of the challenges I confronted after installing CentOS 7: no ifconfig, no Perl, installing VMware Tools (yes, these experiences happened in a virtual environment).

***

Après avoir remis sans cesse à plus tard le projet d'apprendre les bases de Linux à la ligne de commande, j'ai enfin installé CentOS 7.0 comme machine virtuelle dans VMware Workstation 11.0. L'installation s'est achevée sans obstacle mais quelques défis se sont présentés ensuite. Nous verrons dans un instant comment je les ai relevés.

Les ressources en ligne consacrées à Linux en général (et même CentOS/Red Hat en particulier) ne manquent pas. Que pourrais-je faire pour donner à ces premiers billets (de blogue) ne serait-ce qu'une ombre d'originalité ?

Je sais que PowerShell incorpore non seulement les anciennes commandes dites "DOS" mais aussi des commandes Linux. Par example, si je veux afficher la liste des éléments présents dans un répertoire (soit des fichiers, soit des sous-répertoires), je peux, avec PowerShell, saisir la commande (dite aussi "cmdlet") suivante:

Get-ChildItem

Nous pouvons abréger avec "l'alias" suivant:

gci

C'est assez concis (et les cmdlets ne sont pas sensibles à la casse - haut de casse, bas de casse, peu importe).

Encore une fois, nous pouvons employer la commande "DOS" comparable...

dir

Et même l'équivalent du monde Linux:

ls


Mais pour construire le texte de mon billet, j'ai découvert que je ne pouvais pas effectuer une opération copier/coller à partir de l'affichage de sortie dans la machine virtuelle CentOS. Cet ennui se recontre aussi dans les machines virtuelles exécutant Windows, et la solution consiste à installer les "Outils VMware" ou "VMware Tools" en version originale.

Installer VMware Tools dans une machine virtuelle Linux s'est révelée assez complexe (en tout cas, de la perspective de quelqu'un qui ne savait pas du tout s'y prendre au début).
  1. Je ne pouvais pas installer les VMware Tools parce que mon installation n'étant pas une installation complète, CentOS a tenté de récupérer les fichiers nécessaires chez une source extérieure. Cette tentative a échoué faute d'une connection à Internet.
  2. Je ne pouvais pas commencer à me dépanner avec la commande ifconfig (facile à retenir en raison de son orthographe presque identique à ipconfig) parce que ifconfig est une commande obsolète chez CentOS 7 et a été retirée. Il est possible de rétablir la commande en installant "Net Tools". Encore fallait-il avoir accès à l'Internet et pour une raison inconnue, il était justement inaccessible.
  3. Même après avoir rétabli mon accès à Internet, je ne pouvais pas exécuter le script qui installe VMware Tools parce que le script en question est un script Perl et les modules permettant d'exécuter de tels scripts n'étaient pas installés.
J'ai pris la décision de faire preuve de concision dans les lignes qui suivent et de ne pas présenter, captures d'écran à l'appui, chaque message d'erreur qui s'est affiché. Comme je ne pouvais pas copier et coller le texte à l'écran, il faudrait que je colle ici des dizaines de captures, ce qui alourdirait le billet. De plus, je suis un peu impatient de passer à l'essentiel, c'est-à-dire l'expérience consistant à voir quelles commandes Linux (autre que ls donné en exemple plus haut) fonctionnent en PowerShell.



Résolution des problèmes de réseau

Je tente d'exécuter les commandes suivantes :

ifconfig (échec)

ping 8.8.8.8 (échec)

Est-ce que j'ai seulement une adresse IP ? Comment savoir sans ifconfig ?

Je saisis...

dhclient

et puis...

ping 8.8.8.8

Et cela marche !

Maintenant, je peux installer Net Tools avec la commande "yum" :

yum -y install net-tools

Le paramètre -y nous évite les confirmations comme "Etes-vous certain de vouloir, etc.". Si ce que nous installons est un programme connu, nous pouvons recourir au paramètre -y. Dans le cas contraire, il serait préférable de passer par les confirmations.

Et maintenant je peux utiliser ifconfig.

Remarque : oui, je sais maintenant que j'aurais pu utiliser la commande "ip addr sh" au lieu de ifconfig.



Résolution des problèmes d'exécution de scripts Perl

Si un message d'erreur s'affiche au sujet de Perl quand nous tentons d'exécuter le script qui installe VMware Tools, c'est sans doute que Perl n'est pas installé et nous devons donc installer les modules Perl avec la commande suivante:

yum install perl

Bien entendu, nous pourrions installer Perl ainsi tout de suite et donc éviter les messages d'erreur.


Installation de VMware Tools

Dans VMware Workstation, nous cliquons sur VM et choisissons l'option "Install VMware Tools" ou "Installer VMware Tools":



Remarque : comme vous l'aurez constaté, j'ai la version anglaise de VMware Tools et par ailleurs, la capture d'écran a été faite alors que VMware Tools était déjà installé.

Le message suivant s'affiche (vous pouvez cliquer dessus pour l'agrandir). Nous devons monter le lecteur de cdrom virtuel, décompresser le programme d'installation et puis exécuter le script Perl, ce que nous pouvons faire maintenant que Perl a été installé :


Mais le message suppose que nous savons comment faire tout cela, ce qui n'était pas mon cas. Après avoir consulté une variété de sources, voilà comment je me suis pris pour y arriver...

Je crée un répertoire pour monter le lecteur de cdrom (voir l'étape suivante - après celle-ci) :

mkdir /mnt/cdrom

Remarque : le lecteur de cdrom est virtuel.


Je monte le lecteur de cdrom dans le répertoire que je viens de créer :

mount /dev/cdrom /mnt/cdrom


Nous pouvons voir le contenu du cdrom que nous venons de monter :

ls /mnt/cdrom



Entre autres, il y a le fichier suivant, une archive compressée d'où nous devons extraire le script d'installation de VMware Tools :

VMwareTools-9.9.2-2496486.tar.gz

Et voilà la commande d'extraction :

tar xzvf /mnt/cdrom/VMwareTools-9.9.2-2496486.tar.gz -C /tmp/

tar effectue l'extraction et le paramètre -C signifie que nous désirons extraire le contenu de l'archive dans un autre répertoire.

Quelques remarques sur les options tar :
  • x = extrait le contenu d'une archive à la différence de "c" qui crée l'archive (en compressant le contenu).
  • z = permet la compression et décompression de fichiers en format "gzip" (je ne sais pas si c'était vraiment nécessaire ici ?).
  • v = affiche les détails de l'opération (mode verbeux).
  • f= ?

Peu importe les options, nous finissons par avoir, dans le répertoire /tmp un sous-répertoire nommé "vmware-tool-distrib" :



Et dans ce sous-répertoire, le script perl "vmware-install.pl" :



Nous pouvons exécuter le script en saisissant ce qui suit (l'option "-d" accepte les paramètres par défaut et nous évite de confirmer chaque fois) :

./vmware-install.pl -d


***


Malgré l'installation de VMware Tools, les opérations copier/coller ne se font toujours pas correctement. Je réussis un peu mieux en ouvrant une session à distance avec PuTTY. Il semble que, par défaut, CentOS (et Red Hat ?) accepte les sessions entrantes. Il suffit de saisir un nom d'utilisateur et un mot de passe. Pour la connection initiale, ces paramètres ont suffi :




Autre chose, j'ai saisi la commande "ls" plusieurs fois ci-dessus, suivie d'une barre oblique et le nom d'un répertoire. Pour mieux se repérer, on aurait avantage à prendre note de la liste des répertoires à la racine du système de fichier Linux :




Sous Windows, ce serait l'ensemble de dossiers se trouvant à la racine du lecteur C: (sauf installation sur un autre lecteur), soit :




No comments:

Post a Comment