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 !
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.
Ceci est d'un intérêt majeur pour qui veut apprendre et progresser.
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”.
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):
Une méthode rapide et fiable d'installer des programmes réside dans apt-get qui s'utilise en mode console.
sudo apt-get install <nom_du_programme>
Pour désinstaller
sudo apt-get remove <nom_du_programme>
Il sera inutile d'entrer manuellement votre souhait d'installer le paquet.
sudo apt-get install -y <paquet(s)>
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).
Il s'agira simplement de laisser un espace entre chaque paquet.
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 ?!
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
L'option autoremove permet de désinstaller les paquets indiqués avec leurs dépendances logicielles.
sudo apt-get autoremove <paquets(s)>
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)>
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à:
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.
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.
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
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
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
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.
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.
Lorsque le programme est une archive (et non un RPM ou un deb) il est généralement nécessaire de compiler les sources.
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
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.
La commande ./configure ne le requiert en principe pas mais les autres, make, install… oui !
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
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.
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.
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.
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.
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.
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.
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.
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.
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
Ajouter la commande dans le fichier texte caché .bashrc se trouvant dans votre dossier personnel ainsi que dans le dossier /root.
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
r51@r51-v-laptop:~/Bureau/thinkpad-acpi$ sudo sh .tpfc_start.sh sh: Can't open .tpfc_start.sh
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
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.
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
Commandes possibles:
sudo bash
sudo -s
sudo -i
Cette commande vous place immédiatement dans le répertoire desktop de root “avec les droits root”.
Cette commande vous donne les droits admin, mais vous restez dans le répertoire de l' utilisateur courant.
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
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.
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.