Installer des programmes en ligne de commande

A l'heure où les systèmes linux, Ubuntu en particulier fonctionnent en mode graphique avec un installeur logiciel lui même en mode graphique, cet article peut sembler désuet, mais il ne l'est pas !

La syntaxe

bash

On ne rappellera pas les détails ici d'un sujet très vaste. Le mieux reste de lire le manuel. On peut le télécharger sous plusieurs formes.

http://www.gnu.org/prep/standards/

standards_page html

Intérêt

Connaître son système

Ceci est d'un intérêt majeur pour qui veut apprendre et progresser.

Profiter d'une grande variété de programmes

Il est fréquent que des petits programmes bien conçus ne soient pas intégrés dans les dépôts (base des logiciels) de la distribution, ou que leur manuel soit incomplet, et que nous ne sachions pas les lancer. D'autres utilitaires n'ont pas d'interface graphique, et connaître la console est utile.

Les télécharger depuis un site de confiance tel que framasoft ou sourceforge est possible.

Il convient dans la plupart des cas de les décompresser dans le répertoire utilisateur (home), puis de renommer leur répertoire en le faisant précéder d'un point afin qu'ils soient cachés. Voir la suite au paragraphe “compiler un programme”.

Structure et cohérence de cet article

Cet article traite de thèmes différents, mais centrés autour de fonctionnalités d'utilisation ou d'installation avancées des programmes, qui font appel au terminal (dit aussi console):

  • L'utilisation d'un installeur de programmes en ligne de commande : apt-get,
  • L'utilisation de scripts,
  • La création de raccourcis vers les programmes,
  • Des exemples de commandes…
Installer des programmes en ligne de commande s'effectue avec apt-get décrit plus bas.
La compilation est un mode d'installation avancé qui se pratique de moins en moins. Il sera néanmoins évoqué rapidement.
Utiliser la ligne de commande pour lancer des programmes, créer des lanceurs de programme, configurer des scripts est un autre usage.

Apt-get

Une méthode rapide et fiable d'installer des programmes réside dans apt-get qui s'utilise en mode console.

Installer et désinstaller

    sudo apt-get install <nom_du_programme>

Pour désinstaller

    sudo apt-get remove <nom_du_programme>
    
    

Option Oui par défaut

Il sera inutile d'entrer manuellement votre souhait d'installer le paquet.

   sudo apt-get install -y <paquet(s)>

Forcer la version

   sudo apt-get install <paquet>=<version> -V

Utile si plusieurs versions sont présentes. Par exemple avec wine. En 2011-2012, la version présente nativement dans les dépôts est la 1.2. L'ajout du ppa de wine donne accès à la version de développement (la 1.3). Lancer sudo apt-get-install wine installera la version la plus récente (y compris si c'est une version de développement dite beta).

Installer plusieurs paquets

Il s'agira simplement de laisser un espace entre chaque paquet.

Concaténer des commandes avec &&

Ajouter entre chaque instruction &&. Exemple:

   sudo apt-get update && sudo apt-get upgrade

L'intérêt de la commande && réside dans le fait qu'il faut que la première soit exécutée pour que la seconde se lance.Quel intérêt d'installer des mises à jour si les dépôts ne sont pas à jour ?!

commandes_&&_et_||

1a-centosserver_Using "&&" symbol

Entrer le mot de passe une seule fois

Par défaut, Ubuntu garde en mémoire votre mot de passe envirion 15 minutes. Si les mises à jour des dépôts sont longues, car vous avez une connexion lente, ou un système non mis à jour depuis longtemps, il vous sera demandé votre mot de passe plusieurs fois. Afin d'éviter cela entrez:

  sudo (apt-get update && apt-get dist-upgrade && apt-get autoremove && apt-get autoclean)

apt-get-update-dist-upgrade-autoremove-autoclean-in-a-single-sudo-command

Autoremove

L'option autoremove permet de désinstaller les paquets indiqués avec leurs dépendances logicielles.

    
    sudo apt-get autoremove <paquets(s)>

Purge

L'action purge, passée à la commande apt-get, supprime les paquets indiqués et leurs fichiers de configuration. Les fichiers de préférences et les logs ne sont pas supprimés.

    sudo apt-get purge <paquets(s)>

L'option –purge, passée à la commande autoremove, supprime les paquets indiqués, les dépendances logicielles et leurs fichiers de configuration. Les fichiers de préférences, et les logs ne sont pas supprimés.

    sudo apt-get autoremove --purge <paquets(s)>

Simuler l'installation

Ceci afin de vérifier les dépendances. La simulation ne modifiant pas le système ne requiert pas d'être administrateur, et on passera la commande indifféremment avec sudo devant (si absent, un avertissement concernant la fiabilité des informations fournies apparaît; c'est sans conséquences)

  apt-get install -s <paquets(s)>

Voici l'avertissement:

NOTE: Ceci n'est qu'une simulation !
      apt-get a besoin des privilèges du superutilisateur pour pouvoir vraiment fonctionner.
      Veuillez aussi noter que le verrouillage est désactivé, et la situation n'est donc pas forcément représentative de la réalité !

D'autres infos se trouvent là:

apt-get_aide

et là: commentcamarche_Linux-L'installation de logiciels

https://help.ubuntu.com/community/AptGet/Howto

Les scripts

Un script est un programme en langage interprété.Le langage de script est généralement exécuté à partir de fichiers contenant le code source du programme qui sera interprété. Dans le sens le plus traditionnel, qui est celui des shell scripts, un script sert principalement à lancer et coordonner l'exécution de programmes.

Là aussi, il faut avoir un minimum de notions sur le fonctionnement du système, de la console, du compte administrateur, et utiliser la ligne de commande.

Exécuter un script

Il y a plusieurs manières de faire selon la façon dont ils sont écrits.

On lance le scrit hello (par exemple) directement avec sh ou bash (sous Linux sh est en général un lien vers bash)

  sh hello.sh 

Si, sur la première ligne du script, le chemin vers l'interpréteur de commandes est indiqué, et que ce script est renseigné comme exécutable, il se lancera seul.

Le chemin absolu

Quel que soit l'emplacement où vous vous trouvez, et si le répertoire mes_scripts est bien présent dans votre répertoire utilisateur, pour lancer le script “script” tapez

    /home/<votre_identifiant>/mes_scripts/script.sh
Vous pouvez d'abord repérer le répertoire qui contient votre programme depuis Nautilus. Tapez “CTRL + L” affichera le chemin dans la barre de titre; copiez et collez ce dernier dans le terminal.

Le chemin relatif

Dans ce cas, il faut aller dans le répertoire qui contient l'exécutable

    cd /home/<votre_identifiant>/mes_scripts/

Pour exécuter le script, tapez

    ./script.sh

Exemple = thinkfan

ThinkPad_Fan_Control Plusieurs thinkpads sont affectés d'un bug, leurs ventilateurs tournent sans arrêt, même lorsque cela n'est pas nécessaire.

Thinkfan disponible sous linux seulement, permet de ralentir les ventilateurs des thinkpad en fonction de la température des composants.Il est présent dans les dépôts, mais ensuite il est difficile voire impossible de le lancer.

Une solution: le télécharger tpfc0.5.tar.gz

Installation avec compilation

Décompresser et extraire l'archive

Les programmes sont la plupart du temps fournis compressés, c'est-à-dire sous un format plus compact permettant de réduire la taille du programme.Notamment pour faciliter son téléchargement, c'est le programme GZIP qui permet ce compactage.

Plusieurs fichiers peuvent aussi être simplement regroupés en une seule archive pour faciliter leur transport, c'est le rôle du programme TAR.

Enfin, les fichiers peuvent être compressés et regroupés en une archive portant l'extension .tar.gz.

Cette opération s'effectue facilement en mode graphique, sauf pour certains programmes (cf tarsnap ci-dessous).

Il est facile depuis Ubuntu en une opération de télécharger le programme puis de l'ouvrir et ensuite de l' extraire par un clic droit. L'installation en mode graphique est parfois possible avec gedebi, sinon, il faut compiler.

Compiler le programme

Lorsque le programme est une archive (et non un RPM ou un deb) il est généralement nécessaire de compiler les sources.

Ne pas utiliser file roller l'interface graphique d'Ubuntu, et lui préférer la commande tar !

Habituellement on clique droit sur une archive et on demande extraire. Il se trouve que certains programmes sources (archives) n'aiment pas cela ! Exemple avec tarsnap qui ne créera pas le fichier configure. File roller est dans ce cas incapable de décompresser proprement l'archive et en rend l'utilisation impossible !

 tar -vxf <nom_de_l'archive>.tar
 tar -vxf <nom_de_l'archive>.tgz dans le cas de tarsnap
   

Options v = verbeux, x : extrait l'archive f : utilise le fichier donné en paramètre

Le fichier readme.txt

Bien que la compilation se fasse pratiquement toujours de la même façon pour la majorité des applications, il est vivement conseillé de lire le fichier INSTALL ou README pour connaître exactement les commandes nécessaires à la compilation du programme. Le concepteur du programme place ce fichier dans le répertoire principal de son archive.

Prérequis

L'installation de programmes est du ressort de l' administrateur, vous devez être root pour avoir les droits en écriture dans les répertoires système !

La commande ./configure ne le requiert en principe pas mais les autres, make, install… oui !

Compilation et installation

./configure

Dans un premier temps il faut exécuter la commande :

   ./configure

Cette commande est un script permettant d'adapter le programme à la machine courante. Les options de configure sont :

    ./configure --help  ( pour obtenir de l'aide)
    ./configure --prefix="repertoire" pour installer l'application dans un répertoire spécifique.

Dans un second temps il faut compiler le programme, grâce à la directive

Make

Il est possible de lancer la commande “sudo make all install clean” qui effectuera en plus le nettoyage des sources

Lors de la décompression du programme, il arrive qu'il faille le compiler. Se placer dans le répertoire, en console puis

sudo make

. Le sudo n'est pas obligatoire…Mais recommandé si l'on lance plusieurs commandes comme ci dessus.

Il est fréquent que des fichiers soient décompressés, et que des répertoires système soient impactés par cette opération, ou par la suivante, l'installation.

Ensuite seulement le programme sera utilisable, avec par exemple la commande sh détaillée ci-dessus.

     make

Cette commande peut prendre plusieurs minutes/heures selon votre configuration et le logiciel à compiler.

En cas de probleme, la compilation s'arrêtera en vous renvoyant un message d'erreur.

Si tout se passe normalement de nombreuses lignes vont être affichées, puis le programme reviendra à la ligne de commande.

Après avoir compilé l'application, il est possible de l'installer.

Make install

L'installation de l'application doit s'effectuer en tant que superutilisateur (root).

Pour installer l'application, la syntaxe suivante est généralement utilisée :

     make install

Si vous n'êtes pas root (il n'y a pas #, et vous n' avez pas entré sudo -s par exemple, tapez:

   sudo make install

Entrez le mot de passe admin.

En cas d'échec lors de la compilation, il faut nettoyer les fichiers makefile ayant été créés automatiquement lors de la compilation avant de recommencer une nouvelle compilation. Cela se fait grâce à la commande :

    make clean

Une fois toutes ces étapes franchies, votre programme devrait être exécutable et se trouver soit dans le répertoire spécifié lors de l'installation, ou bien généralement dans /usr/local/nom_du_programme.

ccm_L'installation_de_logiciels

Lancer un programme

Ajouter un programme au menu

Tous les programmes n'ont pas une interface graphique.

De plus certains ont une interface graphique, mais ne sont pas présents dans le menu applications. Il existe des manipulations simples pour les y ajouter.

Les bases

creation_d_un_lanceur

configuration_de_lanceurs

Il est possible d'ajouter des entrées dans les menus Applications et Système visibles par défaut à gauche sur le tableau de bord du haut.

Seule la méthode en ligne de commande permet de faire un raccourci accessible à tous les utilisateurs d'un même ordinateur.
Si vous utilisez Unity, c'est

Créer un lanceur de script

Si vous souhaitez créer un lanceur qui appelle un script bash, il s'agira généralement d'indiquer la commande suivante :

   sh -c /chemin/du/script.sh

Par exemple, si vous désirez créer un lanceur pour script test.sh se trouvant dans un dossier Script de votre Dossier Personnel vous indiquerez

   sh -c /home/<votre_nom_de_login>/Scripts/test.sh

Si malgré les bons droits attribués à votre script, celui-ci ne semble pas s' exécuter depuis le lanceur, vérifiez d'avoir bien choisi le Type.

Scripts et PATH

executer_un_script_-_modifier_le_path

Il peut être intéressant d'ajouter un répertoire au “PATH” pour pouvoir exécuter ses scripts sans avoir à se placer dans le bon dossier. Si vous tapez une commande (“ls” par exemple), le shell regarde dans le PATH qui lui indique où chercher le code de la commande.

Pour voir à quoi ressemble votre PATH, tapez dans votre console:

   echo $PATH

Exemple un

  /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

Exemple deux

  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

C'est à dire que le shell va aller voir si la définition de la commande tapée (“ls” pour continuer sur le même exemple) se trouve dans /usr/local/bin puis dans /usr/bin… jusqu'à ce qu'il la trouve.

Ajouter un répertoire au PATH peut donc être très pratique.

Prérequis

Vous avez créé un dossier contenant vos scripts bash utilisés en console :

  /home/user/scripts_console. 

Vous souhaitez les utiliser en tapant leur nom (sans le ”./”) depuis n'importe quel répertoire.

Il suffit d'indiquer au shell de chercher dans /home/user/scripts_console en l'ajoutant au PATH.

Méthode

    export PATH=$PATH:/home/user/scripts_console

La commande

echo $PATH

retourne maintenant

   /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/home/user/scripts_console

Le script “monScript” situé dans ”/home/user/scripts_console” est appelé en tapant :

   monScript

Rendre la modification permanente

Ajouter la commande dans le fichier texte caché .bashrc se trouvant dans votre dossier personnel ainsi que dans le dossier /root.

Exemples de commandes

Ne pas omettre "sh"

r51@r51-v-laptop:~/Bureau/thinkpad-acpi$ sudo tpfc_start.sh
sudo: tpfc_start.sh: command not found 

Cette commande ne peut fonctionner car bien qu'ayant pris les droits admin, la commande

tpfc_start.sh

n'est pas précédée de sh

Le fichier tpfc_start.sh n'est pas précédé d'un point, il est donc impossible de l' exécuter en lui adjoignant ce point qui n'existe pas dans son nom.
r51@r51-v-laptop:~/Bureau/thinkpad-acpi$ sudo sh .tpfc_start.sh
sh: Can't open .tpfc_start.sh 

Sudo est-il nécessaire ?

r51@r51-v-laptop:~/Bureau/thinkpad-acpi$  sh .tpfc_start.sh
sh: Can't open .tpfc_start.sh 

Oui, la bonne syntaxe est:

r51@r51-v-laptop:~/Bureau/thinkpad-acpi$ sudo sh tpfc_start.sh 

sudo gedit

Modifier un fichier système

En ce qui concerne l' exemple ci-dessus, dans le fichier readme.txt, on lit:

For example, in Debian Lenny (and Ubuntu 8.04), you must add the following to "/etc/modprobe.d/options"

   options thinkpad_acpi fan_control=1
   
In Ubuntu 9.10 you need to add this line to file "/etc/modprobe.d/alsa-base.conf"

Having done so, reboot. Now you'll be able to use this program easily.

Il est possible de lancer un éditeur de texte en mode console pour ajouter ces lignes dans ce fichier, mais il apparaît plus simple d'utiliser un éditeur de texte en mode graphique.

   sudo gedit /etc/modprobe.d/alsa-base.conf

Le fichier en question s'ouvre, vous le modifiez puis l'enregistrez, et le fermez.

Annexes

Devenir root

su root ?

Soyons clair, les façons de devenir root sont compétement différentes sous Ubuntu et sous d'autres systèmes linux, tel que Mandriva !

Sous Ubuntu la commande su root est inefficace quoi que l'on tente. Sous mandriva, elle est fonctionnelle !

r51@r51-v-laptop:~/Bureau/thinkpad-acpi$ su root
Mot de passe : 
su : Échec d'authentification 

Ubuntu en console mode admin

Commandes possibles:

  sudo bash
  sudo -s
  sudo -i

sudo -i

Cette commande vous place immédiatement dans le répertoire desktop de root “avec les droits root”.

sudo -s

Cette commande vous donne les droits admin, mais vous restez dans le répertoire de l' utilisateur courant.

En savoir plus

http://linux.die.net/man/8/sudo

http://askubuntu.com/questions/70534/difference-between-su-sudo-s-sudo-i

sudo lets you run commands in your own user account with root privileges. su lets you switch user so that you're actually logged in as root.

sudo -s runs a shell with root privileges. sudo -i also acquires the root user's environment.

To see the difference between su and sudo -s, do cd ~ and then pwd after each of them. In the first case, you'll be in root's home directory, because you're root. In the second case, you'll be in your own home directory, because you're yourself with root privileges.

There's more discussion of this exact question here: Difference between sudo su and sudo -s

Les programmes en mode console

Il arrive que l'on soit obligé de lancer une commande dans la console.

Il faudra auparavant se déplacer dans le répertoire du programme avec la commande cd.

Une fois dans le répertoire, dans notre exemple thinkpad-acpi enregistré sur le bureau, il faut lancer la commande en mode administrateur.

# on est dans le répertoire root

$ on est dans le répertoire utilisateur courant sans droit admin.

Fichiers cachés

Les fichiers préférences systèmes et ceux de logiciels dans le home sont précédés d'un point, ce qui les cache à notre vue. Pour les afficher, édition, montrer les fichiers cachés.

Plus simple: “CTRL h” fait apparaaître ces fichiers.
installer_un_programme_en_ligne_de_commandes.txt · Dernière modification: 2013/06/16 14:35 par wanica
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0