Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : pratique

Ralonger l'historique du shell

Edouard Bourguignon

En shell, l'historique joue un rôle bien pratique en nous permettant de rappeler et/ou de retrouver d'anciennes commandes. Par défaut il ne conserve que 1000 entrées, ce qui suffit bien souvent. Mais sur des serveurs très utilisés, ou pour n'importe quelle autre raison, il est possible de changer cette valeur. Pour cela il suffit d'ajouter dans votre ~/.bashrc la ligne suivante (où de la corriger si elle existe déjà):

export HISTSIZE=3000

Cette valeur sera prise en compte au prochain login, mais pour que ce soit pris en compte immédiatement, au choix:

  • source ~/.bashrc
  • ou taper la commande export HISTSIZE=3000

Pour s'en assurer:

echo $HISTSIZE

Pour voir la taille actuelle de l'historique:

history | wc -l

J'avais déjà cité il y a quelques temps des raccourcis bien pratiques, certains utilisent l'historique.

PS: cette méthode a été testé sous bash uniquement.

Glances, pour un aperçu condensé des signes vitaux d'une machine

Edouard Bourguignon

Vous connaissez certainement tous ces outils en mode texte pour surveiller l'activité d'une machine. Pour n'en citer que quelques uns: top, htop, iotop, vmstat, sar, collectl, iptraf...

Vient s'ajouter à cette longue liste un outil donc la vocation première est de rassembler un maximum d'information sur l'activité de la machine dans un espace le plus réduit possible: le fameux et ancestral terminal en 80x24. Et c'est là tout son intérêt.

Cet outil est codé en Python par l'auteur du blog nicolargo que vous connaissez surement aussi. Il sera bientôt disponible dans les dépôts Fedora officiels (d'ici une bonne semaine) mais vous pouvez déjà le tester depuis le dépôt de test:

yum install --enablerepo=updates-testing glances

Il sera aussi disponible sur EPEL6, par contre pour EPEL5 python est trop vieux...

La bibliothèque utilisée pour récupérer les statistiques est pystatgrab, qui sera certainement parmi les dépendances à installer.

N'hésitez pas à faire vos commentaires sur cet outil sur le billet le concernant.

A bientôt! Et bonne fêtes de fin d'année!

Création d'un fichier swap

Edouard Bourguignon

Un espace de swap est utilisé sous Linux quand il n'y a plus ou pas assez d'espace en mémoire vive. Il est donc important mais pas obligatoire d'en avoir un. Il est d'usage d'avoir au moins une partition de type swap, mais il est tout à fait possible de s'en passer ou d'en avoir plusieurs.

Dans certains cas, comme un besoin temporaire de swap, des tests, un manque de place pour ajouter une partition swap dédiée, ou un bête oubli lors de l'installation, nous pouvons être amener à créer un fichier de swap, plutôt qu'une partition.

Création du fichier

La création du fichier peut se faire avec l'outil dd, en ligne de commande, afin de définir une taille, prenons par exemple 512Mo:

dd if=/dev/zero of=/swap bs=1M count=512

A l'issue de cette commande, nous aurons un fichier /swap de 512Mo rempli de zéros.

Formatage du fichier

La swap utilise son propre système de fichier, simplifié et adapté à la gestion de données en mémoire. Notre fichier /swap doit donc être formaté et marqué pour être identifié comme espace swap:

mkswap /swap

Montage du fichier

Nous pouvons maintenant utiliser ce fichier directement à chaud avec la commande suivante:

swapon /swap

A l'inverse pour l'arrêter:

swapoff /swap

Pour vérifier que cette nouvelle swap est bien utilisée nous pouvons utiliser plusieurs commandes:

free
swapon -s

Ajout dans fstab

Pour utiliser ce fichier de swap de manière plus permanente (c'est à dire même après un redemarrage), il faut l'ajouter dans /etc/fstab. Il suffit d'y ajouter la ligne:

/swap swap swap defaults 0 0

Avec ça, au prochain reboot, le fichier /swap sera monté en swap, il est de type swap et utilisera les options par défaut.

Passage de Fedora 13 à Fedora 14

Edouard Bourguignon

La procédure se répète comme pour chaque nouvelle Fedora, à croire que maintenant yum se sort de presque toutes les situations possibles.

En premier lieu, il faut télécharger les paquets fedora-release et fedora-release-notes de la Fedora 14:

Après les avoir téléchargées, l'installation de ces mises à jour se fait avec la commande yum ou rpm:

rpm -Uvh fedora-release-14-1.noarch.rpm fedora-release-notes-14.0.3-1.fc14.noarch.rpm

ou

yum install fedora-release-14-1.noarch.rpm fedora-release-notes-14.0.3-1.fc14.noarch.rpm

Premier soucis, le seul d'ailleurs, kudzu l'utilitaire de detection et configuration de nouveau matériel à disparu de la Fedora 14. Je ne sais pas par quoi il sera remplacé, mais il faut le supprimer si on veut éviter des problèmes de dépendances.

yum remove kudzu

Ensuite on met comme toujours en priorité à jour yum et rpm:

yum upgrade yum
yum upgrade rpm

Après quelques dizaines (voire centaines) de paquets mis à jour, un redémarrage s'impose. Il ne reste plus qu'à vérifier que le système a bien démarré sur un kernel Fedora 14 avec la commande "uname -r" par exemple.

Passage de Fedora 12 à Fedora 13

Edouard Bourguignon

La procédure se répète comme pour chaque nouvelle Fedora, à croire que maintenant yum se sort de presque toutes les situations possibles. Mais cela n'empêche pas de faire une sauvegarde avant, et surtout de tester la procédure dans une machine virtuelle par exemple. Vaut mieux être prudent.

Il faut d'abord télécharger les informations pour les RPMs de la Fedora 13, à savoir les paquets fedora-release et fedora-release-notes. Ils sont disponibles sur n'importe quel mirroir:

A installer avec yum install paquet.rpm ou rpm -Uvh paquet.rpm.

Ensuite on met comme toujours en priorité à jour yum et rpm:

yum upgrade yum
yum upgrade rpm

Et enfin terminer par la mise à jour globale:

yum update

On termine par un redemarrage, histoire de passer sur le kernel de la Fedora 13. Et voilà!

Passage de Fedora 11 à Fedora 12

Edouard Bourguignon

On suit la méthode habituelle, en commençant par un éventuel nettoyage des RPMs installés sur la machine avec la commande package-cleanup. Le but étant de trouver les doublons et les paquets orphelins (qui ne sont plus dans les dépôts). Normalement seuls les paquets en double peuvent poser problème.

package-cleanup --cleandupes
package-cleanup --orphans

Il peut être intéressant aussi avant de faire une mise à jour d'une telle ampleur de vérifier les fichiers de configuration non actualisés (les .rpmnew).

find / -name "*.rpmnew"

Nous pouvons commencer la mise à jour, en mettant d'abord à jour les paquets fedora-release:

rpm -Uvh ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-12-1.noarch.rpm ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-notes-12.0.0-4.fc12.noarch.rpm

Maintenant que notre Fedora pense être une Fedora 12, nous pouvons lancer la mise à jour à proprement parler:

yum clean all
yum upgrade rpm yum

Il vaut mieux commencer par nettoyer la base yum, histoire que celui-ci télécharge bien les informations des dépôts de la Fedora 12. Ensuite il est recommandé de mettre à jour yum et rpm, afin de gérer de nouvelles fonctionnalités éventuelles dans la gestion des paquets RPM.

Ensuite nous terminons avec la mise à jour globale:

yum update

NB: Pour rappel je teste ces mises à jour sur des machines virtuelles avant de passer aux machines physiques. Et celà concerne des Fedora installées pour jouer le rôle de serveur, donc avec un minimum de RPMs. Sur une installation classique (bureautique), il y aura plus de RPMs installés (> 1000 paquets), et donc d'autant plus de chance qu'un problème de dépendance se glisse dans votre mise à jour. N'oubliez donc pas de sauvegarder avant!

PS: désolé du retard, je n'ai pas eu le temps de valider la procédure plus tôt. Celle pour passer de F12 à F13 ne devrait pas tarder.

Rechercher une adresse MAC avec grep

Edouard Bourguignon

Pratique de pouvoir rechercher ou valider une adresse MAC avec une commande shell, et comme grep supporte très bien les expressions régulières cela est même facile à utiliser.

Pour construire notre expression régulière, il faut réfléchir sur ce que nous cherchons. Une adresse mac est toujours représentée comme suit: XX:XX:XX:XX:XX:XX soit 6 champs de 2 caractères. Mais il y a le séparateur ":" que nous devons aussi prendre en compte. Le plus simple est de ce dire que nous cherchons en fait 5 blocs de 2 caractères suivit du ":" avec à la fin un bloc de 2 caractères.

Concernant les caractères constituant nos blocs, vu qu'il s'agit en fait d'une notation hexadécimale, il faut aussi en tenir compte. Pas la peine par exemple de rechercher toute lettre de l'alphabet, l'hexadécimal s'arrête à F. Nous pouvons aussi avoir des chiffres de 0 à 9. Pour signifier en expression régulière que nous recherchons des chiffres de 0 à 9 il faut utiliser la syntaxe suivante:

[0-9]

Pour les lettres de A à F celle-ci:

[A-F]

Il suffit de mélanger les 2 pour avoir la plage hexadécimale de 0 à F, et nous allons rajouter les minuscules, ce qui donne:

[0-9a-fA-F]

Cette expression donne un résultat dès qu'elle tombe sur un chiffre de 0 à 9, ou 1 lettre de a à f, ou 1 lettre de A à F. C'est déjà un bon début.

Pour indiquer dans une expression régulière le nombre d'occurrence que nous recherchons, il suffit de préciser ce nombre entre accolade. Nos blocs sont toujours constitués de 2 caractères, donc:

[0-9a-fA-F]{2}

Il nous manque plus que le séparateur ":" qui est un caractère spéciaux en expression régulière, il faut donc l'échapper avec \. Notre premier bloc sera donc:

[0-9a-fA-F]{2}\:

Ce premier bloc dans une adresse mac est présent 5 fois, nous allons donc dire que tout ce bloc doit être vu 5 fois de suite. Pour délimiter un bloc, il faut utiliser les parenthèses:

([0-9a-fA-F]{2}\:){5}

Nous terminons avec le dernier bloc, qui est en fait similaire au premier mais sans le séparateur:

([0-9a-fA-F]{2}

L'expression régulière complète est donc:

([0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}

Nous pouvons la tester avec grep et l'option -E ou directement avec la commande egrep. Par exemple sur les fichiers de configuration réseau d'une Fedora:

cd /etc/sysconfig/network-scripts/
egrep -ho "([0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}" ifcfg-eth*

options: -h pour ne pas indiquer le nom du fichier et -o pour n'afficher que ce qui correspond au résultat et non toute la ligne complète

Darktable

Edouard Bourguignon

Si vous êtes passionnés de photo, ou simplement que vous disposez d'un reflex numérique, il existe déjà quelques bons logiciels sous Linux pour traiter les images RAW. Il y a depuis peu un petit nouveau très prometteur, il s'agit de Darktable (on apprecie le clin d'oeil dans le nom en rapport avec Adobe Lightroom).

darktable 0.6

Darktable est sortie en version 0.6 à la fin du mois d'août et il est déjà suffisamment fonctionnel pour l'utiliser. Il dispose des fonctionnalités principales suivantes:

  • Une édition des images complètement non destructive (souvent les logiciels de traitement ne savent pas prendre en compte toutes les informations de l'image).
  • Les opérations sur les images sont modulaires et extensibles (support des plug-ins)
  • Des requêtes de base de données flexibles, gestion avancée des tags
  • Notation des images
  • Support de nombreux standards pour l'importation (jpeg, cr2, hdr, pfm, etc)
  • Une interface sans latence, plein écran et zoomable
  • Des opérations évoluées sur les images: rotation/rognage, correction des couleurs, gestion des profils de couleurs, contrôle de l'exposition, zone flexible de correspondance des couleurs (ex rendre toutes les couleurs monochrome sauf le rouge, imiter un filtre polarisant, etc), correction des distorsions des objectifs (grâce à lensfun), balance des blancs, courbes, etc
  • Support des profils icc: sRGB, Adobe RGB, xyz, et RGB linéaire.
  • Exportation vers différents formats (.jpg, .png, .tiff) mais aussi en 16 bits (.ppm et .tiff) et en HDR linéaire (.exr, .pfm)
  • Lecture et écriture des données EXIF (grâce à libexiv2)
  • Re-importation automatique des images si celles-ci ont été modifié entre temps (grâce à inotify)
  • Fonctionne sous Linux et Mac OS X
  • Système d'exportation modulaire supportant les albums picasaweb, sur disque ou par mail.
  • Des plugins artistiques

Du coup, j'ai fais une demande pour packager ce logiciel, il est maintenant dans les dépôts update-testing et devrait être disponibles dans les jours qui suivent. N'hesitez pas à l'essayer:

su -c yum install --enablerepo=updates-testing darktable

Bash plus intelligent?

Edouard Bourguignon

Il est possible de rendre bash plus intelligent, en permettant le complètement des commandes (completion en anglais) jusque dans leurs arguments, du moins pour certaines. Pour cela il faut installer le logiciel bash-completion. Le paquet pour Fedora est bien adapté aux commandes Fedora ce qui le rend très utile. Il n'y a rien de magique, ce n'est pas non plus de l'introspection dynamique, bash-completion repose sur une sorte de base de données qui référence les commandes et leurs arguments.

Enfin bref, pour l'installer, sous Fedora, il suffit de taper la commande suivante:

yum install bash-completion

Pour l'activer sans avoir à se deloguer:

source /etc/bash-completion

Voici des exemples surpuissants que vous pouvez vous aussi utiliser chez vous:

ser[tab] ht[tab] res[tab] => service httpd restart
yu[tab] ins[tab] ligh[tab] => yum install lighttpd

Et oui encore un truc de faignasse d'admin :)

Une dernière petite astuce pratique, toujours sur la completion. Qui n'a jamais tapé trop vite au clavier un chemin, par ex "/Etc" au lieu de "/etc" à cause de la touche shift pour faire le "/"? Et bien il est possible de rendre insensible à la casse le complètement des commandes et chemins sous Bash. Pour cela il faut éditer le fichier "/etc/inputrc" pour imposer ce réglage de manière globale ou sinon "~/.inputrc" pour votre utilisateur seulement et ajouter une ligne (à la fin par exemple):

set completion-ignore-case on

Il faut se déloguer par contre, a moins que quelqu'un connaisse l'astuce pour faire relire ce fichier par bash. Pour vérifier que ça marche:

cd /E[tab] => cd /etc

Et voilà :)