Hébergement Dolibarr sous CentOS

Logo DolibarrCet article décrit l’installation et la maintenance de Dolibarr sur un serveur dédié tournant sous CentOS 7. Dolibarr est un ERP/CRM (Enterprise Resource Planing & Customer Relationship Management) libre qui permet aux entreprises, aux associations ou aux micro-entrepreneurs, de gérer une activité professionnelle ou associative : contacts, factures, commandes, stocks, agenda, etc.

La procédure d’installation présentée ici comporte quelques améliorations par rapport à la documentation officielle, notamment en termes de sécurité.

Dolibarr Microlinux

Prérequis

Configuration de l’hôte virtuel

La configuration de l’hôte virtuel respecte la nomenclature choisie par les développeurs de Dolibarr, notamment htdocs pour la racine du serveur. Voici à quoi cela ressemble sur ma machine de test.

# /etc/httpd/conf.d/20-gestion.slackbox.fr.conf

# http://gestion.slackbox.fr -> https://gestion.slackbox.fr
<VirtualHost *:80>
  ServerName gestion.slackbox.fr
  Redirect / https://gestion.slackbox.fr
</VirtualHost>

# https://gestion.slackbox.fr
<VirtualHost _default_:443>
  Header always set Strict-Transport-Security \
    "max-age=63072000; includeSubDomains"
  ServerAdmin info@microlinux.fr
  DocumentRoot "/var/www/slackbox-dolibarr/htdocs"
  ServerName gestion.slackbox.fr:443
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/chemin/vers/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/chemin/vers/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/chemin/vers/fullchain.pem
  BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
  ErrorLog logs/gestion.slackbox.fr-error_log
  CustomLog logs/gestion.slackbox.fr-access_log common
</VirtualHost>

Configuration de SELinux

Étant donné que nous installons Dolibarr en-dessous de /var/www, tous les fichiers nouvellement créés seront correctement étiquetés httpd_sys_content_t. Rien à signaler de ce côté-là.

Dolibarr doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser.

# setsebool -P httpd_can_sendmail on

Apache possède les droits d’écriture sur le répertoire documents ainsi que sur le fichier htdocs/conf/conf.php. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux.

# setsebool -P httpd_unified on

Notons au passage que la documentation officielle attribue à la louche les droits d’écriture d’Apache et ne fait aucune mention de l’autorisation d’envoi de mails.

Téléchargement

Créer un répertoire de téléchargement approprié pour ranger Dolibarr.

# mkdir -p /root/webapps/dolibarr

Avant de démarrer Links, vérifier la version du navigateur.

# links -version
ELinks 0.12pre6

Il s’agit d’une ancienne version, fournie par le paquet elinks. Nous allons la remplacer par une version plus récente, qui supporte les connexions SSL.

# yum remove elinks
# yum install links

Cette fois-ci, nous disposons bien de la bonne version.

# links -version
Links 2.13

Lancer Links depuis le répertoire de téléchargement.

# cd /root/webapps/dolibarr
# links https://www.dolibarr.fr

Suivre les liens Téléchargements > Espace téléchargement Sourceforge > Files > Dolibarr ERP-CRM > 5.0.6 > dolibarr-5.0.6.tgz > direct link > Enregistrer > OK.

Installation

Créer la base de données.

# mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.52-MariaDB MariaDB Server

MariaDB [(none)]> create database `slackbox-dolibarr`;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> grant all on `slackbox-dolibarr`.* 
    -> to slackboxuser@localhost 
    -> identified by '********';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye

Décompresser l’archive téléchargée à la racine des hôtes virtuels.

# cd /var/www/
# tar xzf /root/webapps/dolibarr/dolibarr-5.0.6.tgz

Renommer en fonction de l’hébergement.

# mv dolibarr-5.0.6 slackbox-dolibarr

La documentation officielle préconise l’attribution de l’ensemble des fichiers à l’utilisateur et au groupe système auquel appartient le processus httpd, ce qui est quelque peu aberrant en termes de sécurité. Nous allons donc attribuer ces fichiers à l’utilisateur “commun mortel” microlinux et au groupe correspondant, en limitant les droits d’écriture d’Apache aux fichiers et aux répertoires pour lesquels cela est strictement nécessaire.

# chown -R microlinux:microlinux slackbox-dolibarr/
# find slackbox-dolibarr/ -type d -exec chmod 0755 {} \;
# find slackbox-dolibarr/ -type f -exec chmod 0644 {} \;

Créer un fichier de configuration vide.

# cd slackbox-dolibarr/
# touch htdocs/conf/conf.php

Définir les permissions de ce fichier.

# chown microlinux:apache htdocs/conf/conf.php
# chmod 0660 htdocs/conf/conf.php

Créer le répertoire qui servira aux documents générés ou stockés par Dolibarr. Pour des raisons de sécurité évidentes, il se situe à l’extérieur de l’arborescence du site.

# mkdir documents

Définir les permissions de ce répertoire.

# chown -R microlinux:apache documents
# chmod 0770 documents/

Pointer le navigateur sur l’URL de l’application et suivre les instructions de l’installateur. Je ne fournis pas ici d’instructions détaillées, je relève juste sommairement les étapes de l’installation.

  1. Sélectionner la langue (French).
  2. Vérifier si tous les prérequis techniques sont remplis.
  3. Vérifier les chemins d’accès vers le site et les documents.
  4. Cocher Forcer les connexions sécurisées (HTTPS).
  5. Saisir l’identifiant et le mot de passe de l’utilisateur MySQL.
  6. Définir un identifiant et un mot de passe pour l’utilisateur Dolibarr.

Une fois l’installation terminée, on peut la verrouiller comme ceci.

# cd /var/www/slackbox-dolibarr/documents/
# touch install.lock
# chmod 0440 install.lock

À ce stade, Apache n’a plus besoin d’écrire dans le fichier htdocs/conf/conf.php.

# cd /var/www/slackbox-dolibarr/htdocs/conf/
# chown microlinux:microlinux conf.php
# chmod 0644 conf.php

Accéder à l’interface d’administration et procéder à la configuration de base. Saisir au minimum le nom de la société et le pays où elle est implantée, et activer les modules dont on a besoin. Voici comment se présente notre application.

Dolibarr Accueil

Mise à jour

Dans l’exemple qui suit, nous effectuons la mise à jour d’une installation existante de Dolibarr 3.9.1 vers la versions 5.0.6. Cette mise à jour peut s’effectuer directement, c’est-à-dire sans passer par toutes les versions intermédiaires 3.9.2, 3.9.3, 4.0.0, etc.

Supprimer le fichier documents/install.lock.

# cd /var/www/slackbox-dolibarr/documents/
# rm install.lock

Décompresser la nouvelle archive de Dolibarr à la racine des hôtes virtuels.

# cd /var/www/
# tar xzf /root/webapps/dolibarr/dolibarr-5.0.6.tgz

Recopier les nouveaux fichiers dans le répertoire /var/www/dolibarr-5.0.6 vers le répertoire contenant l’ancienne version de Dolibarr. Ceci a pour effet de remplacer les anciens fichiers par les nouveaux, tout en conservant les fichiers qui sont spécifiques à l’installation, comme le fichier conf.php, le contenu du répertoire documents ou encore les modules complémentaires installés. Au cas où la commande cp comporte un alias vers cp -i, il faudra provisoirement le désactiver.

# alias cp
alias cp='cp -i'
# unalias cp
# cp -Rf dolibarr-5.0.6/* slackbox-dolibarr/
# alias cp='cp -i'

À partir de là, on pourra supprimer l’arborescence initiale.

# rm -rf dolibarr-5.0.6/

Redéfinir les droits d’accès.

# chown -R microlinux:microlinux slackbox-dolibarr/
# find slackbox-dolibarr/ -type d -exec chmod 0755 {} \;
# find slackbox-dolibarr/ -type f -exec chmod 0644 {} \;
# cd slackbox-dolibarr/
# chown -R microlinux:apache documents/
# find documents/ -type d -exec chmod 0770 {} \;
# find documents/ -type f -exec chmod 0660 {} \;

Pointer le navigateur sur la page d’installation, dans le sous-répertoire install.

  • https://chemin_vers_dolibarr/install/

Choisir Mise à jour dans le menu proposé, en respectant les versions intermédiaires, et lancer les étapes de migration successives. L’interface de mise à jour affichera un avertissement relatif à l’échec de la suppression d’une série de fichiers. Il suffira de les supprimer manuellement.

# cd /var/www/slackbox-dolibarr/htdocs
# rm -f compta/facture/class/api_invoice.class.php
# rm -f commande/class/api_commande.class.php
# rm -f product/class/api_product.class.php
# rm -f societe/class/api_contact.class.php
# rm -f societe/class/api_thirdparty.class.php

Une fois la mise à jour terminée, verrouiller le répertoire d’installation.

# cd /var/www/slackbox-dolibarr/documents
# touch install.lock
# chmod 0440 install.lock

Installer le module Multi-société

Créer un répertoire custom qui contiendra les modules tiers.

# mkdir htdocs/custom

Éditer le fichier htdocs/conf/conf.php et définir le chemin vers les modules.
Il suffira éventuellement de décommenter les deux lignes correspondantes.

$dolibarr_main_url_root='http://myserver';
$dolibarr_main_document_root='/path/of/dolibarr/htdocs';
$dolibarr_main_url_root_alt='http://myserver/custom';
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom';
...

Décompresser le module.

# unzip module_multicompany_3.4.0.zip

Déplacer l’arborescence résultante vers l’endroit approprié.

# mv multicompany/ chemin_vers_dolibarr/htdocs/custom/

Régler les droits d’accès.

# chown -R microlinux:microlinux chemin_vers_dolibarr/htdocs/custom/

Élargir la colonne des libellés

Lorsqu’on affiche la liste des Produits ou des Services, la colonne Libellé n’est pas assez large pour afficher certains produits dont la dénomination est plus longue. Pour remédier à cela, on peut aller dans htdocs/product et éditer le fichier list.php, en remplaçant la valeur maximale 40 par une valeur supérieure, comme ceci par exemple.

// Label
if (! empty($arrayfields['p.label']['checked']))
{
print '<td>'.dol_trunc($objp->label,60).'</td>';
}

Logo Tiko OutdoorLorsqu’on inclut un logo de société, il faut faire attention au format de fichier utilisé. Sur une installation fraîche de Dolibarr, j’ai eu toute une série de bugs et de plantages bizarres, avec des fonctionnalités basiques comme la génération de devis et de factures qui ne marchaient plus et me renvoyaient des pages blanches. Un coup d’oeil dans les logs d’Apache m’a montré une erreur pour le moins surprenante.

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 

Après recherche dans le forum de Dolibarr, j’ai vérifié le logo de l’entreprise. Effectivement, il s’agissait d’un fichier PNG qui faisait plus de 6.000 x 2000 pixels, et c’est l’opération de redimensionnement du logo qui faisait systématiquement planter l’application. La solution consiste donc simplement à utiliser un logo de taille raisonnable et de préférer le format de fichier JPG.

Publié dans CentOS, Documentation Microlinux | Marqué avec , | Laisser un commentaire

Convertir un système Linux existant en RAID 1

RAIDLorsque j’installe une station de travail Linux, j’utilise assez régulièrement le RAID 1 logiciel pour la redondance du stockage. Les distributions de type serveur comme CentOS, Ubuntu Serveur ou Debian proposent généralement ce type de fonctionnalité dans l’installateur. Sur le matériel récent, j’ai un faible pour la distribution KDE neon, un mix assez épuré d’un bureau KDE en rolling release sur une base stable d’Ubuntu LTS. Malheureusement, l’installateur de cette distribution n’offre pas la possibilité de configurer les disques en grappe RAID. Du coup j’ai profité d’un long weekend pluvieux pour expérimenter. Voici donc un tutoriel complet sur la configuration d’un RAID 1 logiciel sur une installation classique.

KDE neon RAID 1

Nettoyage des disques et installation initiale

Le DVD d’installation de KDE neon offre deux options au démarrage.

  1. LiveCD
  2. Installation

Je démarre sur l’option LiveCD (Try without installing) pour pouvoir effectuer quelques manipulations préliminaires.

Dans ma session Live, j’active le compte root pour m’éviter d’invoquer sudo à tire-larigot.

$ sudo passwd root

La machine est munie de deux disques durs sda et sdb. Les disques sont identiques, ce qui nous facilitera le travail.

# fdisk -l /dev/sd?
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
...
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
...

Avant de lancer l’installateur, c’est une bonne idée de faire un brin de ménage sur les disques pour partir sur des bases saines. Dans mon cas précis, je dois d’abord supprimer les vestiges d’une ancienne grappe RAID. Je vais me servir de l’utilitaire mdadm, qui ne figure pas sur le LiveCD.

# apt-get update && apt-get install mdadm

Une fois que j’ai identifié mes partitions, j’invoque mdadm comme ceci.

# mdadm --zero-superblock /dev/sda1
# mdadm --zero-superblock /dev/sda5
# mdadm --zero-superblock /dev/sdb1
# mdadm --zero-superblock /dev/sdb5

Notons que je me suis retrouve confronté à deux messages d’erreur pour les partitions /dev/sda5 et /dev/sdb5.

mdadm: Couldn't open /dev/sda5 for write - not zeroing
mdadm: Couldn't open /dev/sdb5 for write - not zeroing

Pour des raisons mystérieuses, l’installateur semble avoir décidé d’activer toutes les partitions swap existantes. Je les ai donc désactivées comme ceci avant de réinvoquer mdadm --zero-superblock.

# swapoff /dev/sda5
# swapoff /dev/sdb5

Une fois que j’ai supprimé toutes les traces des précédentes grappes RAID, j’efface le contenu du MBR des deux disques. Pour ma part, j’aime bien utiliser gdisk pour ce genre d’opération.

# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.1
...
Command (? for help): x
Expert command (? for help): z
About to wipe out GPT on /dev/sda. Proceed? (Y/N): y
GPT data structures destroyed! You may now partition the disk 
using fdisk or other utilities.
Blank out MBR? (Y/N): y

Je procède de même pour /dev/sdb.

À partir de là, je peux lancer l’installateur graphique. Je ne vais pas rentrer dans les détails de la procédure d’installation, à plus forte raison qu’elle est triviale. J’installe le système sur le disque sda, en acceptant le schéma de partitionnement automatique par défaut.

KDE neon partitionnement

Préparation de la grappe RAID

Après le redémarrage initial, j’active le compte root comme je l’avais fait sur le LiveCD.

$ sudo passwd root

Pareillement, je récupère l’outil mdadm, qui ne fait pas partie d’une installation standard.

# apt-get update && apt-get install mdadm

Le schéma de partitionnement par défaut est simpliste.

  • une partition principale /dev/sda1 formatée en ext4
  • une partition d’échange /dev/sda5

Mon disque sdb n’est pas encore partitionné. Étant donné qu’il est parfaitement identique à mon disque sda, je vais pouvoir utiliser l’outil sfdisk pour cloner le schéma de partitionnement du disque sda.

# sfdisk -d /dev/sda | sfdisk /dev/sdb

On constate que le disque sdb est partitionné exactement comme sda.

Partitionnement

La prochaine étape consiste à modifier les types de partitions pour sdb. Lancer fdisk ou cfdisk et définir le type FD (Linux RAID autodetect) pour /dev/sdb1 et /dev/sdb5.

RAID

Voici – à peu de choses près – ce que nous devons obtenir au final.

RAID

Une fois que les types de partitions sont correctement définis, nous pouvons créer la grappe RAID. Dans un premier temps, il s’agira d’une grappe incomplète, configurée à l’aide de l’option missing.

# modprobe raid1
# mdadm --create /dev/md1 --level=1 --raid-disks=2 --metadata=0.90 \
  missing /dev/sdb1
mdadm: array /dev/md1 started.
# mdadm --create /dev/md5 --level=1 --raid-disks=2 --metadata=0.90 \
  missing /dev/sdb5
mdadm: array /dev/md5 started.

Affichons l’état de cette grappe.

# cat /proc/mdstat 
Personalities : [raid1] 
md5 : active raid1 sdb5[1]
      7820224 blocks [2/1] [_U]
      
md1 : active raid1 sdb1[1]
      968939456 blocks [2/1] [_U]
      bitmap: 0/8 pages [0KB], 65536KB chunk

Pour formater cette grappe, nous utiliserons les mêmes systèmes de fichiers que ceux en vigueur sur le disque sda.

# mkfs.ext4 /dev/md1
# mkswap /dev/md5

Écrire une configuration provisoire dans /etc/mdadm/mdadm.conf. On conservera l’original pour plus tard, lorsqu’on ajoutera le disque sda à la grappe.

# cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.orig
# mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Créer un point de montage pour la grappe /dev/md1 et monter cette grappe.

# mkdir /mnt/md1
# mount /dev/md1 /mnt/md1

Copier l’intégralité du système de fichiers de notre installation vers le deuxième disque.

# cp -dpRx / /mnt/md1/

Les options utilisées méritent quelques explications.

  • -d préserve les liens symbolique sans les suivre
  • -p préserve l’horodatage et les permissions
  • -R effectue une copie récursive
  • -x reste sur le même système de fichiers

La prochaine étape consiste à éditer le fichier /etc/fstab de notre montage, en l’occurrence /mnt/md1/etc/fstab. Les entrées respectives de /dev/sda1 et /dev/sda5 (ou plus exactement les UUID correspondants) devront être remplacés par /dev/md1 et /dev/md5.

# /etc/fstab
#              
# / was on /dev/sda1 during installation
/dev/md1  /     ext4     errors=remount-ro  0       1
# swap was on /dev/sda5 during installation
/dev/md5  none  swap     sw                 0       0

Modifier le chargeur de démarrage

À présent, il va falloir configurer GRUB pour qu’il démarre sur la grappe. Le fichier /etc/grub.d/40_custom nous servira de modèle, faute de mieux. La nomenclature 09_raid1 s’explique par le fait que les fichiers sont traités en ordre alphanumérique, et que notre configuration provisoire est censée précéder celle du fichier 10_linux.

# cd /etc/grub.d
# cp 40_custom 09_raid1

Éditer 09_raid1 pour démarrer sur la grappe RAID.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom
# menu entries.  Simply type the menu entries you
# want to add after this comment.  Be careful not
# to change the 'exec tail' line above.
menuentry 'KDE neon RAID 1' \
  --class ubuntu --class gnu-linux --class gnu --class os { 
    recordfail 
    insmod mdraid09 
    insmod mdraid1x 
    insmod ext2 
    set root='(md/md1)' 
    linux /boot/vmlinuz-4.10.0-38-generic root=/dev/md1 ro quiet 
    initrd /boot/initrd.img-4.10.0-38-generic 
}

Là aussi, quelques explications sur les options utilisées, qui sont le fruit d’une série de tentatives et d’échecs dont je vous passe les détails.

  • Les modules de GRUB sont rangés dans /boot/grub/i386-pc.
  • Le module mdraid09 fournit le support RAID de base.
  • Le module mdraid1x fournit le support RAID 1.
  • Le module ext2 permet d’accéder aux systèmes de fichiers EXT2 et dérivés.
  • Pour trouver le nom md/md1 de ma grappe, il a fallu que je fasse un redémarrage initial et que j’appuie sur C à l’invite de GRUB pour accéder à la console interactive du chargeur de démarrage. Ensuite, la commande ls m’a affiché les systèmes de fichiers théoriquement accessibles dans la nomenclature biscornue de GRUB.
  • Pour le reste, on indique l’emplacement du kernel et du disque mémoire initial, avec les options de démarrage qui vont bien.

Mettre à jour la configuration de GRUB. Si tout se passe bien, on doit voir quelque chose comme ceci.

# update-grub
Generating grub configuration file ...
Found theme: /boot/grub/themes/breeze/theme.txt
Found linux image: /boot/vmlinuz-4.10.0-38-generic
Found initrd image: /boot/initrd.img-4.10.0-38-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

Copier le fichier de configuration personnalisé de GRUB vers le deuxième disque.

# cp /etc/grub.d/09_raid1 /mnt/md1/etc/grub.d/

Mettre à jour le disque mémoire initial. L’option -u force simplement la mise à jour d’un fichier existant.

# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.10.0-38-generic

Copier le disque mémoire mis à jour vers le deuxième disque.

# cp /boot/initrd.img-4.10.0-38-generic /mnt/md1/boot/

Installer GRUB sur les deux disques, ce qui lui permettra ultérieurement, en cas de défaillance d’un disque, de démarrer sur l’autre.

# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
# grub-install /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.

Il ne reste plus qu’à croiser les doigts et à redémarrer.

# reboot

Redémarrage initial

Une fois qu’on a redémarré, on vérifie qu’on est bien sur la moitié de grappe RAID.

# mount | grep md1
/dev/md1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

Maintenant que le disque sdb est actif, nous allons pouvoir définir les types de partitions corrects pour le disque sda, comme nous l’avons fait plus haut. Lancez fdisk ou cfdisk et changez le type des partitions /dev/sda1 et /dev/sda5 en FD (Linux RAID autodetect). Pour être sûr, vérifiez si le schéma de partitionnement des deux disques est absolument identique.

RAID

À partir de là, je peux compléter ma grappe RAID en ajoutant le disque sda comme ceci.

# mdadm --add /dev/md1 /dev/sda1
mdadm: added /dev/sda1
# mdadm --add /dev/md5 /dev/sda5
mdadm: added /dev/sda5

La commande watch cat /proc/mdstat me permet de surveiller l’état de la synchronisation des disques. Suivant la taille des disques et la puissance de la machine, il va falloir patienter un petit moment.

RAID

Une fois que la synchronisation est terminée, on peut remettre à jour la configuration du chargeur de démarrage.

# update-grub

Remettre à jour le disque mémoire initial.

# update-initramfs -u

Redémarrer une dernière fois.

# reboot

Si tout s’est bien passé. on peut supprimer /etc/grub.d/09_raid1 et passer par la configuration automatique de GRUB.

Publié dans Documentation Microlinux | Marqué avec , , , , | 2 commentaires

Comment devenir un client de l’enfer ?

Clients From HellLe site américain Clients From Hell recense de façon humoristique – mais néanmoins véridique – les pires insanités qu’un client peut vous dire ou faire, dans la même lignée que Vie De Merde. Le site vous dévoile donc des citations et échanges divers et variés au-delà du bien et du mal, issues de clients de l’infographie et du Web. Exemple :

1 000 dollars, c’est très cher vous savez. On veut seulement un site Internet basique avec nos contenus actuels, et un formulaire de contact. Sans oublier une gestion CMS : nous voulons éditer et ajouter nous-mêmes du contenu. Et la galerie d’image, nous souhaiterions quelque chose de sobre et d’animé. Le header devrait également être animé. Et notre logo nous paraît vieux, pouvez-vous le refaire ? Le prix idéal serait 300 dollars pour le tout, ca devrait être plus que suffisant.

Au fil des années, mon entreprise Microlinux a eu droit à son lot de clients de l’enfer. Pas beaucoup, j’ai pu les compter sur les doigts d’une main. Si vous souhaitez entrer au Panthéon des clients de l’enfer de Microlinux, voici quelques conseils utiles tirés de mon vécu quotidien.

  • Discutez le bien-fondé de toutes les décisions techniques relatives à la configuration de votre réseau, surtout si vous n’avez aucune connaissance en informatique.
  • Demandez l’établissement d’un devis, ignorez-le et réitérez l’établissement de ce même devis à intervalles réguliers.
  • Évitez de signer le devis et exigez que l’on fasse exactement le contraire de ce qui y est indiqué.
  • Lorsque je dois passer trois jours dans vos locaux pour mettre en place votre réseau informatique, évitez à tout prix de me proposer un café ou un verre d’eau.
  • Vos employés mangent tous à la cantine le midi ? N’hésitez pas à m’envoyer à la boulangerie du village voisin, qui doit vendre des sandwichs.
  • Une panne dans votre réseau ? Débranchez tout, puis recablez tout au hasard. Demandez éventuellement au cousin Gérard ou au technicien Orange pour qu’il vous file un coup de main.
  • À partir du moment où plus rien ne fonctionne, n’hésitez pas à m’appeler, en prenant soin d’exprimer votre mécontentement à tout moment de l’échange.
  • Évitez toute précision inutile dans la description d’une panne. « Googol a disparu », c’est déjà beaucoup trop précis.
  • Demandez à ce que je vous forme en deux heures à l’administration d’un serveur Linux.
  • Payez toutes vos factures avec trois mois de retard.
  • Etc.
Publié dans Divers | Marqué avec | 3 commentaires

Installation de CentOS 7 sur un MacBook Pro

Think LinuxCet article décrit l’installation d’un poste de travail CentOS 7 sur un MacBook Pro, en remplacement du système propriétaire Mac OS X de chez Apple. Dans un précédent article, j’avais décrit en détail l’installation de la distribution Ubuntu 16.04 LTS sur un MacBook. Une première tentative d’installation de CentOS 7 s’était soldée par un échec. J’ai expérimenté un peu plus, et voici donc tout ce qu’il faut savoir pour installer et configurer ma distribution préférée sur ce genre de matériel. En termes d’environnement graphique, j’opte pour ma variante personnalisée du bureau Xfce. La procédure d’installation est décrite en détail ici. Le présent article se penchera uniquement sur les particularités du hardware de chez Apple.

La configuration du matériel n’est pas une opération triviale et nécessite de plonger les mains dans le cambouis, surtout pour les deux cartes réseau et la carte graphique. En revanche, on se retrouve au final avec un poste de travail Linux qui fonctionne très proprement sur du matériel tout aussi propre.

MacBook Pro

Démarrage

La machine dispose d’un lecteur optique, je peux donc utiliser le DVD d’installation de CentOS confectionné depuis le fichier CentOS-7-x86_64-DVD-1708.iso. Il faut insérer le DVD machine allumée, éteindre, appuyer sur la touche C et allumer en même temps, ce qui fait démarrer sur le DVD.

Les machines de chez Apple utilisent normalement un BIOS EFI, mais apparemment, l’installation fonctionne également en mode traditionnel (legacy). Côté BIOS, c’est un peu une boîte noire. Le démarrage en mode EFI ou traditionnel me semble quelque peu erratique et aléatoire, et c’est finalement une question de tentative et d’échec avec une bonne dose d’obstination.

Réseau

La section Réseau de l’installateur n’affiche ni carte filaire, ni carte wifi. Aucun périphérique réseau disponible. Il va falloir se retrousser les manches.

Partitionnement

J’opte pour un partitionnement classique.

  • une partition /boot de 500 Mo formatée en ext2
  • une partition swap de 4 Go
  • une partition principale de 145 Go formatée en ext4

À partir de là, j’installe un système minimal, sans serveur graphique ni environnement de bureau.

Configurer la carte réseau filaire

Au premier redémarrage, la première impression se confirme. Aucune carte réseau disponible.

[root@macbook-pro ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 
   state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

La solution pour configurer une carte réseau non reconnue, c’est d’installer un noyau plus récent et voir ce que ça donne. La meilleure adresse pour ce genre de chose, c’est le dépôt de paquets elrepo-kernel, qui fournit pas moins de deux familles de kernels plus récents.

  • la famille kernel-lt avec le dernier noyau LTS
  • la famille kernel-ml avec le dernier noyau stable

Sur ma station de travail, je télécharge les deux kernels directement depuis un site miroir du dépôt ELRepo. Voici les deux kernels.

  • kernel-lt-4.4.90-1.el7.elrepo.x86_64.rpm
  • kernel-ml-4.13.5-1.el7.elrepo.x86_64.rpm

Je les copie sur un disque dur externe pour les transférer sur le MacBook, et je les installe comme ceci.

# yum localinstall kernel-lt-* kernel-ml-*

Dans la mesure du possible, je préfère utiliser le kernel LTS. Je fais donc un premier essai en redémarrant sur ce kernel (4.4.90) en premier. Apparemment notre problème de carte réseau filaire est résolu. Nous disposons dorénavant d’une nouvelle interface réseau enp0s10.

[root@macbook-pro ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 
   state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s10: <BROADCAST,MULTICAST,UP,LOWER_UP> 
   mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:25:4b:ca:37:ec brd ff:ff:ff:ff:ff:ff
inet 192.168.2.121/24 brd 192.168.2.255 scope global dynamic enp0s10
valid_lft 86300sec preferred_lft 86300sec
inet6 fe80::9052:632d:db85:8711/64 scope link
valid_lft forever preferred_lft forever

Je décide de garder ce kernel, et j’en profite pour faire un peu de ménage.

# yum remove kernel-ml-*
# yum remove kernel-3.10.0-693.el7
# yum remove kernel-tools-*

Je vérifie si tout est bien propre et qu’il n’y a pas de résidus d’autres versions.

# rpm -qa | grep kernel
kernel-lt-4.4.90-1.el7.elrepo.x86_64

À partir de là, je suis la procédure d’installation habituelle. La prochaine étape consistera à configurer la carte graphique.

Configurer la carte graphique

La carte graphique de ce MacBook est une NVidia GeForce 9400.

# lspci | grep -i vga
02:00.0 VGA compatible controller: NVIDIA Corporation C79
[GeForce 9400M] (rev b1)

Le pilote libre nouveau fonctionne de manière acceptable. Je vais quand-même le remplacer par le pilote propriétaire nvidia, qui est bien plus performant.

Pour commencer, j’installe ce qu’il faut pour la compilation.

# yum --enablerepo=elrepo-kernel install gcc

Cette dernière commande installe automatiquement la dépendance kernel-lt-headers pour le noyau installé.

Il nous faudra également installer les sources du noyau.

# yum --enablerepo=elrepo-kernel install kernel-lt-devel

Je me rends sur le site de NVidia et je cherche le driver qui va bien.

Pilote NVidia

Je télécharge le pilote.

Pilote NVidia

Pour les détails de l’installation de ce pilote, on pourra jeter un oeil sur cet article.

Configurer la carte wifi

La carte wifi de notre MacBook est une infâme Broadcom BCM4322.

# lspci | grep -i network
03:00.0 Network controller: Broadcom Limited BCM4322 802.11a/b/g/n 
Wireless LAN Controller (rev 01)

Là aussi, il va falloir construire le driver propriétaire fourni par le fabricant. Nous disposons déjà des outils de construction. Il ne nous reste plus qu’à aller sur le site de Broadcom.

Chercher “linux sta 64-bit” depuis la page d’accueil.

Broadcom

Voici le driver qu’il nous faut.

Broadcom

L’archive de ce constructeur respecte une nomenclature pour le moins folklorique.

  • hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz

Je télécharge ce fichier et je le range en un endroit approprié, par exemple /root/broadcom.

Créer un emplacement pour construire le driver, décompresser l’archive et lancer la compilation.

# mkdir -pv /usr/local/src/hybrid-wl
mkdir: création du répertoire « /usr/local/src/hybrid-wl »
# cd /usr/local/src/hybrid-wl/
# tar xvzf /root/broadcom/hybrid-*.tar.gz
# make -C /lib/modules/$(uname -r)/build/ M=$(pwd)

Le module résultant pèse 8.5 Mo.

# ls -lh wl.ko
-rw-r--r--. 1 root root 8,5M 7 oct. 12:12 wl.ko

On peut réduire la taille quelque peu.

# strip --strip-debug wl.ko
# ls -lh wl.ko
-rw-r--r--. 1 root root 7,2M 7 oct. 12:14 wl.ko

Installer manuellement le module vers un endroit approprié.

# cp -vi wl.ko /lib/modules/$(uname -r)/extra/
« wl.ko » -> « /lib/modules/4.4.90-1.el7.elrepo.x86_64/extra/wl.ko »

Mettre à jour l’arbre des dépendances entre les modules.

# depmod $(uname -r)

Charger le module à la main.

# modprobe wl

Avant de pouvoir utiliser notre carte, nous devons encore blacklister une série de modules qui risquent d’entrer en conflit. Ouvrir /etc/modprobe.d/blacklist.conf et ajouter les lignes suivantes.

blacklist bcm43xx
blacklist b43
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist ssb
blacklist ndiswrapper

Au prochain redémarrage de la machine, nous disposons d’une nouvelle interface réseau sans fil wlp3s0.

# ifconfig -a
...
wlp3s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 22:b4:ca:ea:ae:89  txqueuelen 1000  (Ethernet)
...

Une fois qu’on a installé le paquet network-manager-applet, la gestion du réseau se fait de manière complètement transparente.

MacBook Pro NetworkManager

Support de la webcam

La webcam incorporée est un modèle Apple iSight.

# lsusb
...
Bus 001 Device 003: ID 05ac:8507 Apple, Inc. Built-in iSight

À ce stade, on est presque agréablement surpris par le support “out of the box” de ce périphérique.

Webcam iSight

Support de la carte son

La carte son est une NVidia MCP79 High Definition Audio.

# lspci | grep -i audio
00:08.0 Audio device: NVIDIA Corporation MCP79 High Definition 
Audio (rev b1)

Ce modèle est également supporté dans la configuration par défaut et ne nécessite aucune intervention de notre part.

Support du touchpad et de la souris

Le touchpad fonctionne sans problèmes, mais il manque la possibilité d’effectuer un clic droit. C’est tout à fait normal, vu que Steve Jobs trouvait ça cool de ne pas pouvoir afficher un menu contextuel dans une application. Au lieu de ça, on a droit à une émulation du clic droit en utilisant deux ou trois doigts, et qui engendre rapidement une furieuse envie de balancer le MacBook dans le geyser le plus proche.

La meilleure solution consiste ici à brancher une souris filaire classique de type PC au port USB pour dépasser cette limitation saugrenue.

Publié dans CentOS, Documentation Microlinux | Marqué avec , , , | 2 commentaires

Installation de KDE neon sur un portable Asus X751S

KDE neonUn ami m’a récemment confié l’ordinateur portable de sa compagne pour le passer de Windows à Linux. C’est un Asus X751S, doté d’une carte mère Intel Atom. Une première tentative d’installer un poste de travail CentOS 7 a lamentablement échoué, même en utilisant un kernel récent du dépôt ELRepo. Pour ce genre de matériel exotique, la seule solution viable passe par l’utilisation d’une distribution bleeding edge. Mon choix s’est porté sur KDE neon, un mélange assez sympathique de rolling release sur base d’une Ubuntu LTS 16.04.

Installation KDE neon

Confection du support d’installation

Télécharger l’ISO de la User Edition.

L’ISO est hybride et peut s’écrire directement sur une clé USB.

# dd if=neon-userltsedition-20171108-0018-amd64.iso of=/dev/sdc

Configuration du BIOS

Le portable était initialement livré avec Windows 8 dessus, ce qui veut dire que tout est verrouillé à la sauce Microsoft.

Étant donné que Windows 8 est le genre de système qui refuse de s’éteindre pour de bon, il faut d’abord appuyer avec insistance sur le bouton Off pendant au moins dix secondes. Ensuite, l’accès au BIOS se fait de manière classique par la touche F2.

Dans un premier temps, je charge la configuration par défaut via Restore Defaults > Load Optimized Defaults > Yes.

Dans l’onglet Boot, je définis Boot Option #1 > UEFI: USB DISK 2.0 PMAP. Quant à Boot Option #2, je remplace Windows Boot Manager par Disabled.

Je me débarrasse ensuite de l’infâme Secure Boot de Microsoft. Dans l’onglet Security > Secure Boot Menu, je passe Secure Boot Control à Disabled.

Enfin, j’enregistre les modification du BIOS : Save Changes & Exit.

Installation

KDE neon utilise l’installateur d’Ubuntu, et la procédure d’installation est triviale. Une fois qu’on a démarré le système Live, cliquer sur l’icône Install neon userlts sur le Bureau.

Installation KDE neon

  1. Sélectionner la langue : Français.
  2. Cocher Télécharger les mises à jour pendant l’installation de neon.
  3. Cocher Installer les logiciels tiers pour le matériel graphique et le Wifi, Flash, MP3 et autres supports.
  4. Opter pour le partitionnement assisté – utiliser un disque entier.
  5. Définir le fuseau horaire.
  6. Choisir la disposition du clavier.
  7. Saisir le nom et l’identifiant correspondant, choisir un mot de passe  et définir un nom d’hôte pour la machine.

Redémarrage initial

Après le premier redémarrage, on se retrouve dans une version très épurée et très propre de KDE, une base saine pour pouvoir configurer un poste de travail aux petits oignons.

KDE neon

Après avoir arrangé l’aspect du Terminal (thème solarisé, police Monospace 11), j’active le compte root.

$ sudo passwd root

Curieusement, SSH n’est pas installé par défaut.

# apt-get install openssh-server

Configuration initiale de KDE

La configuration de KDE est assez potable telle quelle, mis à part le fond d’écran aux couleurs criardes. Je modifie juste quelques menus détails.

  • Dans les Effets de Bureau, j’active les Fenêtres en gélatine, un effet que je trouve assez réussi.
  • Je remplace le simple clic de la souris par un double clic pour ouvrir les fichiers et les dossiers.
  • Pour le thème du pointeur, j’opte pour Brise neigeuse.
  • Je change la disposition du bureau par Vue de dossier, et je supprime les deux icônes ~/Bureau/Home.desktop et ~/Bureau/Trash.desktop.
  • J’agrandis la taille par défaut des icônes dans Dolphin.
  • J’augmente l’intervalle de verrouillage de l’écran de 5 à 30 minutes.

Installer une panoplie d’applications

Pour l’instant, l’installation de KDE est réduite au strict minimum. À première vue, on dispose de Firefox, Dolphin, Konsole, VLC, Okular, Gwenview, KWalletManager et KSysGuard, et c’est tout.

Internet & Réseau

La prochaine étape consiste donc à installer une panoplie cohérente d’applications. Pour faire ça de manière organisée, on va procéder catégorie par catégorie, et on va commencer par les applications Internet et Réseau.

  • Un bloqueur de pubs pour Mozilla Firefox
  • Le client mail Mozilla Thunderbird
  • Le client de messagerie instantanée Pidgin
  • Le client BitTorrent Transmission
  • Le client FTP/SFTP Filezilla
  • Le client de stockage réseau Dropbox

Une remarque en passant. Autant j’aime bien KDE et je l’utilise au quotidien sur ma station de travail, autant j’évite certaines applications de type “usine à gaz” comme KMail, Kopete ou KTorrent. Je préfère les remplacer par des équivalents GTK plus légers comme Thunderbird, Pidgin ou Transmission.

Installer un bloqueur de pubs pour Mozilla-Firefox :

# apt-get install xul-ext-ublock-origin

Note : le bloqueur de pubs semble être rendu obsolète par les versions plus récentes de Firefox. Il faut passer par l’installateur de la section Modules de Firefox.

Installer Mozilla Thunderbird :

# apt-get install thunderbird thunderbird-locale-fr

Quelques paquets optionnels pour Thunderbird :

  • enigmail pour chiffrer les mails
  • xul-ext-lightning pour le calendrier

Installer Pidgin :

# apt-get install pidgin pidgin-plugin-pack

Installer Transmission :

# apt-get install transmission-gtk

Installer Filezilla :

# apt-get install filezilla

L’ajout de Dropbox se fait depuis un dépôt tiers. Éditer un fichier /etc/apt/sources.list.d/dropbox.list comme ceci.

deb http://linux.dropbox.com/ubuntu xenial main

Note : Dropbox, c’est mal, je suis au courant. Lorsqu’un client me demande de l’installer, je le fais, mais je prends soin d’expliquer les risques liés notamment à la confidentialité des données.

Récupérer la clé d’authentification du projet.

# apt-key adv --keyserver pgp.mit.edu --recv-keys 5044912E

Recharger la liste des paquets et installer Dropbox.

# apt-get update
# apt-get install dropbox

Bureautique

Dans le rayon Bureautique, nous installerons les applications suivantes.

  • La suite bureautique LibreOffice intégrée à KDE
  • Un jeu complet de polices Microsoft
  • La visionneuse PDF Evince en supplément d’Okular

Installer LibreOffice avec l’intégration KDE :

# apt-get install libreoffice libreoffice-kde libreoffice-l10n-fr

Définir un jeu d’icônes plus lisible : Outils > Options > Affichage > Style et taille d’icônes > Elementary (Grand)

Installer un jeu de polices Microsoft :

# apt-get install ttf-mscorefonts-installer

L’installateur affiche quelques avertissements sans conséquence, visiblement parce que la commande n’a pas été invoquée via sudo. Ne pas oublier d’accepter la licence pour les polices téléchargées.

Ubuntu ne fournit aucun paquet pour installer les polices Vista comme Calibri ou Cambria, nécessaires pour afficher correctement les documents confectionnés avec les versions récentes de Microsoft Office. En revanche, on trouve une série de scripts en ligne pour extraire ces polices depuis PowerPoint Viewer.

Voici un script qui fonctionne parfaitement :

Récupérer le script, installer la dépendance fontforge et rendre le script exécutable avant de le lancer.

# apt-get install fontforge
# chmod +x ttf-vista-fonts-installer.sh
# ./ttf-vista-fonts-installer.sh

Les documents PDF sont déjà gérés par Okular. J’installe Evince en plus, parce qu’il gère mieux certains PDF générés par les portails en ligne de l’administration française.

# apt-get install evince

Graphisme

Une panoplie raisonnablement complète d’applications graphiques peut ressembler à ceci.

  • L’application GIMP avec une série de plugins pratiques
  • Le gestionnaire de photos Digikam
  • L’application de DAO LibreCAD
  • L’application de PAO Scribus
  • Le logiciel de dessin vectoriel Inkscape
  • Le logiciel d’acquisition d’images Skanlite

Installer GIMP :

# apt-get install gimp gimp-data-extras gimp-help-fr gimp-lensfun \
  gimp-ufraw pandora

Installer Digikam :

# apt-get install digikam digikam-doc

Note : j’ai tenté d’installer KSnapshot, ce qui s’est soldé par une erreur, étant donné que l’utilitaire de capture d’écran de KDE 5, c’est Spectacle (paquet kde-spectacle), qui est déjà installé. Il n’apparaît pas dans le menu, mais on peut l’invoquer par la touche ImprÉcran.

Installer LibreCAD :

# apt-get install librecad

Installer Scribus :

# apt-get install scribus scribus-doc

Installer Inkscape :

# apt-get install inkscape

Installer Skanlite :

# apt-get install skanlite

Multimédia

Dans le domaine Multimédia, nous disposons déjà de VLC et d’une série de codecs et de plug-ins. Voici les applications que nous allons installer en plus.

  • Le lecteur de musique simple Audacious
  • Le lecteur vidéo MPlayer en version sans interface graphique
  • L’éditeur audio Audacity
  • L’encodeur vidéo HandBrake
  • L’extracteur audio Asunder
  • L’éditeur vidéo Openshot
  • Le transcodeur vidéo WinFF
  • Le logiciel de gravure K3B

Installer Audacious :

# apt-get install audacious

Installer MPlayer sans interface graphique :

# apt-get install mplayer

Installer Audacity :

# apt-get install audacity

Installer HandBrake :

# apt-get install handbrake

Installer Asunder :

# apt-get install asunder

Installer Openshot :

# apt-get install openshot

Installer WinFF :

# apt-get install winff-qt

Installer K3B :

# apt-get install k3b k3b-i18n k3b-extrathemes normalize-audio sox

Touches finales

Le fond d’écran par défaut n’est probablement pas au goût de tout le monde. On va donc installer un jeu de fonds d’écran.

# apt-get install kdewallpapers

Supprimer les paquets inutiles.

# apt-get autoremove fontforge
Publié dans Documentation Microlinux | Marqué avec , , | 4 commentaires

Gérer les mises à jour WordPress avec WP-CLI

Mises à jour WordPressDans notre article détaillé sur l’hébergement de WordPress, nous avons vu que ce moteur de CMS constitue une cible de prédilection des attaques malveillantes, au vu de la popularité de l’application. Il est donc crucial de garder son installation à jour pour éviter de se faire pirater son installation. Certes, WordPress est théoriquement capable d’effectuer des mises à jour automatiques, mais cette façon de procéder nécessiterait l’ouverture des droits d’accès en écriture du serveur Web sur l’ensemble de l’installation, ce qui constitue un risque de sécurité. Reste la procédure manuelle décrite ici, qui s’avère quelque peu pénible. Si vous avez comme moi un certain nombre d’installations WordPress sur différents serveurs à gérer, cela devient vite pénible.

C’est là où WP-CLI va nous faciliter la tâche, en nous permettant une gestion automatisée des mises à jour tout en respectant une sécurisation maximale de notre installation. WP-CLI est une interface en ligne de commande qui permet de gérer une ou plusieurs installations WordPress sur un serveur, sans avoir recours à une interface graphique. Les fonctionnalités de WP-CLI sont nombreuses, mais nous n’allons pas toutes les aborder. Nous nous contenterons d’utiliser cet outil pour la maintenance de WordPress et de tout ce qui va avec, c’est-à-dire les extensions et les thèmes.

Installation de WP-CLI

Je me connecte à mon serveur en tant qu’utilisateur microlinux. Cet utilisateur est propriétaire des installations WordPress sur la machine. Je veille à ce qu’il fasse partie du groupe wheel pour avoir accès à la commande sudo.

$ groups
microlinux wheel

Télécharger le fichier wp-cli.phar sur le site du projet WP-CLI avec wget ou curl. La variable DOWNLOAD m’évite juste d’avoir une ligne à rallonge.

$ DOWNLOAD=https://raw.githubusercontent.com
$ wget -c $DOWNLOAD/wp-cli/builds/gh-pages/phar/wp-cli.phar

Vérifier que tout fonctionne.

$ php wp-cli.phar --info
PHP binary:     /usr/bin/php
PHP version:    5.6.32
php.ini used:   /etc/php.ini
WP-CLI root dir:        phar://wp-cli.phar
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/microlinux
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.4.1

Pour utiliser WP-CLI à partir de la ligne de commande en tapant wp, on va rendre le fichier exécutable tout en le déplaçant vers un endroit approprié quelque part dans le PATH et en le renommant.

$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

Maintenance de WP-CLI

WP-CLI peut gérer lui-même ses propres mises à jour. L’option check-update affiche les mises à jour disponibles.

$ wp cli check-update
Success: WP-CLI is at the latest version.

Pour des raisons évidentes, la mise à jour ne pourra pas s’effectuer en tant qu’utilisateur du commun des mortels.

$ wp cli update
Error: /usr/local/bin is not writable by current user.

Dans ce cas, il faudra invoquer la commande avec sudo et en spécifiant le chemin complet.

$ sudo /usr/local/bin/wp cli update
You have version 1.4.0. Would you like to update to 1.4.1? [y/n] y
Downloading from https://github.com/wp-cli/.../wp-cli-1.4.1.phar...
md5 hash verified: df26444df533a0fb9a0159036ae2773b
New version works. Proceeding to replace.
Success: Updated WP-CLI to 1.4.1.

Mises à jour WordPress manuelles avec WP-CLI

WP-CLI devra être invoqué depuis la racine du site WordPress.

$ cd /var/www/microlinux-site/html/

Vérifier s’il y a une mise à jour.

$ wp core check-update
+---------+--------+-----------------------------------+
| version | update | package_url                       |
+---------+--------+-----------------------------------+
| 4.9.1   | minor  | https://<url>/wordpress-4.9.1.zip |
+---------+--------+-----------------------------------+

Récupérer et installer la mise à jour.

$ wp core update
Updating to version 4.9.1 (fr_FR)...
Téléchargement de la mise à jour depuis 
https://downloads.wordpress.org/release/fr_FR/wordpress-4.9.1.zip...
Décompression de la mise à jour...
Success: WordPress updated successfully.

Avant de procéder avec les extensions, il faudra éventuellement régler un problème de permissions. Le répertoire wp-content appartient certes à l’utilisateur microlinux et au groupe apache. En revanche, les extensions ajoutées depuis le tableau de bord WordPress appartiennent à l’utilisateur apache et au groupe apache et ne sont donc plus accessibles au simple utilisateur microlinux. Il va falloir rectifier le tir comme ceci.

$ sudo chown -R microlinux:apache wp-content/
$ sudo find wp-content/ -type d -exec chmod 0775 {} \;
$ sudo find wp-content/ -type f -exec chmod 0664 {} \;

Afficher la liste des extensions.

$ wp plugin list
+---------+----------+-----------+---------+
| name    | status   | update    | version |
+---------+----------+-----------+---------+
| akismet | active   | available | 3.3.2   |
| hello   | inactive | none      | 1.6     |
+---------+----------+-----------+---------+

Mettre à jour l’ensemble des extensions.

$ wp plugin update --all
...
+---------+-------------+-------------+---------+
| name    | old_version | new_version | status  |
+---------+-------------+-------------+---------+
| akismet | 3.3.2       | 4.0.1       | Updated |
+---------+-------------+-------------+---------+
Success: Updated 1 of 1 plugins.

On procèdera de même pour les thèmes. Dans un premier temps, afficher l’état des thèmes installés.

$ wp theme status
3 installed themes:
 UI twentyfifteen   1.8
 UA twentyseventeen 1.3
 UI twentysixteen   1.3

Legend: I = Inactive, A = Active, U = Update Available

Mettre à jour l’ensemble des thèmes installés.

$ wp theme update --all
...
+-----------------+-------------+-------------+---------+
| name            | old_version | new_version | status  |
+-----------------+-------------+-------------+---------+
| twentyfifteen   | 1.8         | 1.9         | Updated |
| twentyseventeen | 1.3         | 1.4         | Updated |
| twentysixteen   | 1.3         | 1.4         | Updated |
+-----------------+-------------+-------------+---------+
Success: Updated 3 of 3 themes.

Scripter la procédure

Une fois que tout fonctionne comme prévu, nous pouvons scripter la procédure. Voici un exemple de script shell qui identifie les installations existantes de WordPress sur le serveur et se charge de la définition correcte des permissions ainsi que de la mise en jour de tous les composants.

#!/bin/bash
#
# wordpress-update.sh
#
# Mise à jour automatique de toutes les installations WordPress
#
# (c) Nicolas Kovacs <info@microlinux.fr>

# WP-CLI doit être installé
WP='/usr/local/bin/wp'

# Apache
HTUSER='apache'
HTGROUP='apache'

# Utilisateur normal
WPUSER='microlinux'
WPGROUP='microlinux'

# Racine du serveur Web
WPROOT='/var/www'

# Identifier les installations WordPress 
WPDIRS=$(dirname $(find $WPROOT -type f -name 'wp-config.php'))

for WPDIR in $WPDIRS; do
  echo
  echo "---------- $WPDIR ----------"
  echo
  cd $WPDIR
  # Définir les permissions correctes
  chown -R $WPUSER:$WPGROUP $WPDIR
  find $WPDIR -type d -exec chmod 0755 {} \;
  find $WPDIR -type f -exec chmod 0644 {} \;
  chown -R $WPUSER:$HTGROUP $WPDIR/wp-content
  find $WPDIR/wp-content -type d -exec chmod 0775 {} \;
  find $WPDIR/wp-content -type f -exec chmod 0664 {} \;
  # Mettre à jour le moteur WordPress
  su -c "$WP core update" $WPUSER
  # Mettre à jour les extensions
  su -c "$WP plugin update --all" $WPUSER
  # Mettre à jour les thèmes
  su -c "$WP theme update --all" $WPUSER
done

echo
 
exit 0

Mise à jour quotidienne automatique

Il ne nous reste plus qu’à définir un lancement automatique de la mise à jour sur notre serveur. On pourra définir une tâche programmée comme ceci, par exemple.

# crontab -e
# Mettre à jour WordPress tous les jours à 4h30
30 4 * * * /usr/local/sbin/wordpress-update.sh 1> /dev/null

 

Publié dans Documentation Microlinux, Hébergement | Marqué avec , , | Laisser un commentaire

Si Linux m’était conté

screencastLa webradio Poli Sons m’avait invité au printemps 2015 pour raconter l’histoire d’Unix, de GNU et de Linux, d’une manière accessible aux non-informaticiens. Au lieu d’en faire un cours magistral plus ou moins barbant, je m’étais pointé les mains dans les poches pour traiter le sujet de manière plus spontanée, à la manière d’un conteur arabe, et montrer aux auditeurs profanes comme Monsieur et Madame Michu qu’il y a bien une vie avant – et après – Windows.

Ces émissions ont malheureusement été perdues suite à une série de contretemps informatiques. Ou c’est ce que je croyais, car un auditeur a eu la riche idée d’archiver ces émissions sur son propre serveur, en les éditant au passage. Un grand merci à lui.

Émission n° 1 (14’32”)

  • Les années 1950 à 1970
  • De la préhistoire de l’informatique au premier système d’exploitation portable
  • Qu’est-ce qu’un système d’exploitation?
  • L’informatique avant Microsoft et Apple

Émission n° 2 (25’13”)

  • Les années 1970 et 1980
  • La fin de l’âge d’or d’Unix
  • L’arrivée des PC et le projet GNU de Richard Stallman
  • La création de la Free Software Foundation

Émission n° 3 (20’35”)

  • Les années 1990 à 1992
  • Linus Torvalds et le noyau Linux
  • Un “vrai” Unix sur un ordinateur personnel
  • Les toutes premières versions de Linux
  • Qu’est-ce qu’un logiciel libre ?

Émission n° 4 (25’02”)

  • Les années 1992 au début des années 2000
  • Les premières distributions : Slackware, Red Hat, Debian
  • La branche BSD

Émission n° 5 (32’07”)

  • Quelle est la meilleure distribution Linux ?
  • Pourquoi autant de distributions ?
  • Linux en entreprise

Note : Par la suite, je me suis basé sur cette série d’émissions pour rédiger le premier chapitre de mon ouvrage Débuter avec Linux, publié chez Eyrolles. Ce chapitre est disponible en PDF téléchargeable.

Publié dans Divers | Marqué avec , | 2 commentaires

Mettre en place un serveur Dnsmasq sous CentOS

Logo DnsmasqCette page décrit la configuration d’un serveur Dnsmasq sous CentOS et Red Hat Enterprise Linux. Dnsmasq est un serveur léger qui fournit les services DHCP et DNS pour des réseaux locaux, même de taille importante. Il est extrêmement facile à configurer, et l’on pourra l’utiliser pour remplacer DHCPD et Bind. Ce dernier n’est pas très adapté pour les DNS de réseaux locaux, notamment à cause de sa syntaxe farfelue.

Prérequis

Ouvrir les ports suivants dans le pare-feu.

  • 53 en TCP et UDP (requêtes DNS)
  • 67 et 68 en UDP (requêtes DHCP)

Le fichier /etc/hosts du serveur local doit comporter au moins les deux lignes suivantes.

# /etc/hosts
127.0.0.1     localhost.localdomain localhost
192.168.3.1   amandine.sandbox.lan  amandine

C’est surtout la deuxième ligne qui est d’une importance capitale. Elle fait correspondre le nom de la machine locale avec l’adresse IP dans le réseau local.

Installation

Vérifier si Dnsmasq est installé.

# rpm -qa | grep dnsmasq          (RHEL 5)
dnsmasq-2.45-1.1.el5_3

# rpm -qa | grep dnsmasq          (RHEL 6)
dnsmasq-2.48-17.el6.i686
dnsmasq-utils-2.48-17.el6.i686

# rpm -qa | grep dnsmasq          (RHEL 7)
dnsmasq-utils-2.66-12.el7.x86_64
dnsmasq-2.66-12.el7.x86_64

Configuration de base

La configuration de Dnsmasq s’effectue par le biais du fichier de configuration /etc/dnsmasq.conf. Le fichier fourni par défaut comporte près de 600 lignes de commentaires et sert également de documentation. On pourrait très bien activer l’une ou l’autre option en la décommentant. Dans le cas présent, il vaut mieux effectuer une copie de sauvegarde et commencer par un fichier vide.

# cd /etc
# mv dnsmasq.conf dnsmasq.conf.orig
# touch dnsmasq.conf

Éditer une configuration minimale.

# /etc/dnsmasq.conf
domain-needed
bogus-priv
interface=enp3s1                             
dhcp-range=192.168.3.100,192.168.3.200,24h
local=/sandbox.lan/
domain=sandbox.lan
expand-hosts
server=192.168.2.1
  • Les deux premières options domain-needed et bogus-priv évitent que Dnsmasq ne relaie les noms d’hôtes locaux à un ou plusieurs serveurs DNS en amont.
  • L’option interface spécifie l’interface réseau que l’on souhaite utiliser.
  • L’option dhcp-range définit la plage d’adresses dynamiques utilisée parle serveur DHCP. Dans le cas présent, les adresses attribuées auront une durée de validité de 24 heures. Passé ce délai, elles devront être renouvelées par les clients.
  • L’option local indique que les réponses aux requêtes pour le domaine spécifié doivent être fournies directement par Dnsmasq, et non pas par un serveur DNS en amont.
  • L’option domain attribue le nom de domaine spécifié aux clients. Pour des raisons évidentes, il doit coïncider avec le domaine défini dans l’option local.
  • L’option expand-hosts concerne les requêtes DNS sans le domaine et se charge d’ajouter celui-ci automatiquement. Concrètement, lorsqu’on essaie d’envoyer un ping sur bernadette, Dnsmasq retournera automatiquement l’adresse IP de bernadette.sandbox.lan.
  • L’option server spécifie l’adresse IP d’un ou plusieurs serveurs DNS en amont.

Démarrage et utilisation

Activer Dnsmasq.

# chkconfig dnsmasq on                  (RHEL 5/6)
# systemctl enable dnsmasq              (RHEL 7)

Gérer le lancement et l’arrêt.

# service dnsmasq start                 (RHEL 5/6)
# systemctl start|stop|restart dnsmasq  (RHEL 7)

Attribuer des adresses statiques

On pourra attribuer une adresse IP et un nom d’hôte fixe en fonction de l’adresse MAC des interfaces réseau respectives, en ajoutant une série d’entrées comme ceci.

# /etc/dnsmasq.conf
...
dhcp-host=00:1E:C9:43:A7:BF,bernadette,192.168.3.2
dhcp-host=00:1D:09:15:4A:D8,raymonde,192.168.3.3
...

On choisira les adresses IP en-dehors de la plage d’adresses dynamiques.

Si l’on souhaite attribuer une adresse IP et un nom d’hôte fixe à un portable que l’on connecte aussi bien par le wifi que par une connexion filaire, on peut utiliser la syntaxe suivante.

# /etc/dnsmasq.conf
...
dhcp-host=44:1E:A1:E6:FA:93,E4:D5:3D:BD:EA:05,buzz,192.168.3.6
dhcp-host=00:27:19:F1:BC:3A,00:19:E0:83:3A:C1,bebette,192.168.3.7
...

Ajouter des hôtes statiques

L’ajout d’hôtes statiques est extrêmement simple avec Dnsmasq. Il suffit d’ajouter l’entrée correspondante dans le fichier /etc/hosts du serveur, et celui-ci se chargera de relayer l’info.

# /etc/hosts 
...
192.168.3.254   wifi
...

Relancer Dnsmasq pour prendre en compte les modifications.

# service dnsmasq restart    (RHEL 5/6)
# systemctl restart dnsmasq  (RHEL 7)

On peut également ajouter un raccourci pour une adresse IP externe.

# /etc/hosts
...
88.191.189.120  dedibox
...

Si le serveur héberge une série de sites web sous formes d’hôtes virtuels, on peut ajouter les entrées correspondantes comme ceci.

# /etc/hosts 
...
192.168.3.1   mirror.amandine.sandbox.lan mirror.amandine
192.168.3.1   cmsms.amandine.sandbox.lan cmsms.amandine
...

Résolution des noms d’hôtes

Les postes clients sur le réseau utilisent les informations sur les noms d’hôtes fournies par Dnsmasq. Pour que le serveur lui-même puisse les prendre en compte aussi, il faudra éditer /etc/resolv.conf comme ceci.

# /etc/resolv.conf
nameserver 127.0.0.1

Vérifions.

[root@amandine:~] # host bernadette
bernadette has address 192.168.3.2
[root@amandine:~] # host raymonde
raymonde has address 192.168.3.3

Afficher en direct l’attribution des baux DHCP

Sur le serveur, on peut suivre en direct l’attribution des baux DHCP en affichant en continu le journal /var/log/messages.

# tail -f /var/log/messages
... DHCPREQUEST(enp3s1) 192.168.3.2 00:1e:c9:43:a7:bf
... DHCPACK(enp3s1) 192.168.3.2 00:1e:c9:43:a7:bf bernadette
... DHCPREQUEST(enp3s1) 192.168.3.3 00:1d:09:15:4a:d8
... DHCPACK(enp3s1) 192.168.3.3 00:1d:09:15:4a:d8 raymonde
Publié dans CentOS, Documentation Microlinux | Marqué avec , , , , | Laisser un commentaire

Installer un poste de travail léger avec Xfce sous CentOS 7

Logo CentOSCet article décrit pas à pas et de manière détaillée l’installation d’un poste de travail léger de qualité entreprise basé sur CentOS 7 et l’environnement de bureau Xfce. Pour plus de détails, lire la documentation officielle. CentOS 7 est officiellement supporté jusqu’au 30 juin 2024. On choisira cette branche sur du matériel raisonnablement récent qui supporte un OS 64-bits. L’installateur de CentOS 7 requiert au moins 1 Go de RAM. Sur une machine disposant de moins de mémoire vive ou dotée d’un processeur 32-bits, on pourra opter pour CentOS 6.

Pour en savoir plus sur la configuration de Xfce, on pourra également lire cet article.

Xfce CentOS

Le poste de travail présenté ici offre une série d’améliorations par rapport à un poste de travail CentOS standard.

  • L’esthétique de l’environnement Xfce est améliorée de manière significative.
  • Plank, Whiskermenu et Caja rendent le bureau bien plus fonctionnel.
  • Une panoplie d’applications populaires est installée pour toutes les tâches courantes.
  • Les codecs et plug-ins multimédia permettent de gérer les contenus audio et vidéo.
  • Les polices TrueType offrent une meilleure interopérabilité avec l’univers Microsoft.
  • Infinality permet d’obtenir un affichage aussi net que sur les systèmes de chez Apple.

Support d’installation

On choisira le CD minimal, mais rien n’empêche d’utiliser le DVD.

  • CentOS-7-x86_64-Minimal-1708.iso
  • CentOS-7-x86_64-DVD-1708.iso

Graver le CD ou le DVD à partir de l’ISO téléchargé.

Sur les machines dépourvues de lecteur optique, il faudra confectionner une clé USB d’installation. L’image ISO est hybride et peut s’écrire directement sur une clé USB.

# dd if=CentOS-7-x86_64-Minimal-1708.iso of=/dev/sdX

Démarrage

Débrancher clés USB, disques externes et autres périphériques amovibles. Autrement l’installateur les proposera au formatage.

Sur un ordinateur portable, il vaut mieux passer par une connexion cablée le temps de l’installation. La connexion wifi sera réglée en mode graphique par NetworkManager une fois que le bureau sera installé.

Langue et clavier

Dans l’écran de bienvenue, sélectionner la langue (Français) et la localisation (Français – France). La disposition du clavier sera définie par le biais de l’écran principal de l’installateur.

Interfaces réseau

Le réseau n’est pas activé par défaut, il faut donc songer à l’activer explicitement.

Les noms des interfaces réseau ont changé avec cette nouvelle version. Désormais, on n’a plus affaire à eth0, eth1, eth2, wlan0, etc. Le nouveau schéma de nommage est moins arbitraire et offre davantage de consistance en se basant sur l’emplacement physique de la carte dans la machine.

  • enp2s0
  • enp3s0
  • enp3s1
  • etc.

Date et heure

Vérifier si le fuseau horaire (Europe/Paris) est correctement configuré. Éventuellement, activer Heure du réseau et vérifier les serveurs NTP.

Désactivation de Kdump

Kdump est un mécanisme de capture lors du plantage d’un noyau. Il peut être désactivé.

Partitionnement manuel

L’outil de partitionnement graphique de CentOS n’est pas très intuitif. Voici un exemple de schéma de partitionnement courant.

  • une partition /boot de 500 MiB, formatée en ext2
  • une partition /boot/efi de 100 MiB sur les systèmes EFI
  • une partition swap, équivalent à la RAM disponible
  • une partition principale, formatée en ext4

Sur une station de travail munie de deux disques durs, on choisira le RAID 1.

  1. Cliquer sur Destination de l’installation.
  2. Vérifier si le ou les disques durs sont bien sélectionnés.
  3. Cocher Je vais configurer le partitionnement et cliquer sur Terminé.
  4. Dans le menu déroulant, sélectionner Partition standard au lieu de LVM.

Partition /boot

La taille de la partition /boot sera relativement réduite. Il faudra veiller à ne pas laisser s’entasser les vieux kernels sous peine de la remplir assez rapidement.

  1. Cliquer sur le bouton “+” pour créer un nouveau point de montage.
  2. Créer le point de montage /boot avec une capacité de 500 MiB.
  3. Définir le type de périphérique standard ou RAID 1.
  4. Choisir le système de fichiers ext2 et l’étiquette boot.
  5. Confirmer Mise à jour des paramètres.

Partition EFI

Sur les systèmes UEFI, il faut créer un point de montage /boot/efi pour une partition de type EFI, au début du disque.

  1. Cliquer sur le bouton “+” pour créer un point de montage.
  2. Créer le point de montage /boot/efi et spécifier une taille de 100 MiB.
  3. Définir le type de périphérique standard.
  4. Choisir le système de fichiers EFI System Partition et l’étiquette efi.
  5. Confirmer Mise à jour des paramètres.

Partition swap

Dans certains cas, la partition swap pourra être reléguée à la fin du disque par l’installateur pour une utilisation optimale.

  1. Cliquer sur le bouton “+” pour créer un autre point de montage.
  2. Créer le point de montage swap en spécifiant sa capacité en GiB.
  3. Définir le type de périphérique standard ou RAID 1.
  4. Choisir l’étiquette swap.
  5. Confirmer Mise à jour des paramètres.

Partition principale

La partition principale occupera tout l’espace disque restant.

  1. Cliquer sur le bouton “+” pour créer un dernier point de montage.
  2. Créer le point de montage / sans spécifier la capacité souhaitée.
  3. Définir le type de périphérique standard ou RAID 1.
  4. Choisir le système de fichiers ext4 et l’étiquette root.
  5. Confirmer Mise à jour des paramètres, puis Terminé.

Choix des paquets

Dans l’écran de sélection des logiciels du DVD, on optera pour le groupe de paquets Installation minimale proposé par défaut. Le CD minimal ne laisse pas le choix de toute façon.

Utilisateur initial

Créer un utilisateur provisoire install. Éventuellement, cocher l’option Faire de cet utilisateur un administrateur pour l’ajouter au groupe wheel et lui permettre d’utiliser sudo. Cet utilisateur sera supprimé une fois l’installation terminée.

Démarrer le service RNGD

Il se peut que tous les services du système n’aient pas démarré comme prévu.

# systemctl status
● amandine
  State: degraded
   Jobs: 0 queued
 Failed: 1 units
 ...

Afficher le service fautif.

# systemctl --failed
  UNIT         LOAD   ACTIVE SUB    DESCRIPTION
● rngd.service loaded failed failed Hardware RNG 
  Entropy Gatherer Daemon

RNGD, c’est le générateur d’entropie du système. Dans sa configuration par défaut, il se base sur un périphérique /dev/hwrandom qui n’existe pas sur notre machine. Pour corriger ce comportement, il faut éditer le fichier de configuration du service.

# /usr/lib/systemd/system/rngd.service
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon

[Service]
ExecStart=/sbin/rngd -f -r /dev/urandom

[Install]
WantedBy=multi-user.target

Recharger la configuration.

# systemctl daemon-reload

Démarrer le service et vérifier son statut.

# systemctl start rngd.service
# systemctl status rngd.service
● rngd.service - Hardware RNG Entropy Gatherer Daemon
   Loaded: loaded (/usr/lib/systemd/system/rngd.service; ...

Configuration provisoire du réseau

L’installation par défaut ne fournit pas la commande ifconfig, qui fait partie du paquet net-tools. Dans un premier temps, il faudra afficher la configuration réseau en utilisant la commande ip fournie par le paquet iproute2.

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 ...
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
   qdisc mq state UP qlen 1000
 link/ether 2c:27:d7:15:54:a1 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.2/24 brd 192.168.1.255 scope global dynamic enp2s0
 ...
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
 ...
# ip route
default via 192.168.1.1 dev enp2s0

Mise à jour initiale

Installer le paquet deltarpm, qui permet d’accélérer la procédure de mise à jour en téléchargeant la différence binaire entre un paquet et son correctif.

# yum install deltarpm

Procéder à la mise à jour initiale de l’installation.

# yum update

Redémarrer.

# systemctl reboot

Installer l’éditeur Vim

Pour faciliter l’édition des fichiers de configuration, on peut déjà installer l’éditeur de texte Vim.

# yum install vim-enhanced

Faire le ménage dans les kernels

Le paquet yum-utils nous facilitera la tâche.

# yum install yum-utils

Afficher les kernels installés.

# rpm -q kernel
kernel-3.10.0-327.el7.x86_64
kernel-3.10.0-327.13.1.el7.x86_64

Supprimer l’ancien kernel.

# package-cleanup --oldkernels --count=1

L’option --count=x spécifie le nombre de kernels que l’on souhaite garder.

Éditer /etc/yum.conf et définir le nombre de kernels à préserver.

# /etc/yum.conf
...
installonly_limit=2
...

Récupérer les scripts d’installation

Installer Git.

# yum install git

Récupérer mes scripts et mes fichiers de configuration.

# cd
# git clone https://github.com/kikinovak/centos

Les répertoires centos/el7/install/ et centos/el7/xfce contiennent une série de scripts qui facilitent la configuration post-installation.

Élaguer l’installation initiale

Dans certains cas, il est souhaitable d’élaguer une installation existante pour revenir à un système de base plus épuré. Pour ce faire, je fournis le script 00-elaguer-paquets.sh dans le répertoire centos/el7/install/. Ce script se charge de supprimer tous les paquets qui ne font pas partie du système de base à proprement parler, c’est-à-dire l’équivalent de ce que l’on obtient lorsqu’on effectue une installation minimale.

# cd centos/el7/install
# ./00-elaguer-paquets.sh

Le script se sert de la liste de paquets centos/el7/pkglists/minimal qui a été établie auparavant moyennant la commande suivante.

# rpm -qa --queryformat '%{NAME}\n' | sort > minimal

Afficher la vue d’ensemble sur les groupes de paquets.

# yum group list hidden | less

Il faudra rectifier à la main le statut des groupes installés.

# yum group mark remove "Core"
# yum group mark remove "Base"

Configurer les dépôts de paquets officiels

Éditer /etc/yum.repos.d/CentOS-Base.repo et activer les dépôts [base], [updates] et [extras] avec une priorité maximale.

# /etc/yum.repos.d/CentOS-Base.repo
[base]
enabled=1
priority=1
name=CentOS-$releasever - Base
...
[updates]
enabled=1
priority=1
name=CentOS-$releasever - Updates
...
[extras]
enabled=1
priority=1
name=CentOS-$releasever - Extras
...

Laisser le dépôt [centosplus] désactivé.

# /etc/yum.repos.d/CentOS-Base.repo
...
[centosplus]
enabled=0
name=CentOS-$releasever - Plus
...

Configurer le dépôt CR

Le dépôt CR (Continuous Release) permet d’obtenir les dernières mises à jour et de migrer en douceur vers la prochaine version mineure de CentOS avant la sortie de l’ISO officiel.

La commande yum-config-manager fournie par le paquet yum-utils permet d’activer ce dépôt.

# yum-config-manager --enable cr

Éditer le fichier /etc/yum.repos.d/CentOS-CR.repo en définissant la même priorité que pour les dépôts officiels.

[cr]
name=CentOS-$releasever - cr
baseurl=http://mirror.centos.org/centos/$releasever/cr/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
priority=1

Configurer le dépôt tiers EPEL

Le dépôt tiers EPEL (Extra Packages for Enterprise Linux) fournit des paquets qui ne sont pas inclus dans la distribution CentOS. Une fois que le dépôt officiel [extras] est configuré, le dépôt EPEL peut se configurer très simplement à l’aide du paquet correspondant.

# yum install epel-release

Définir les priorités du dépôt EPEL.

# /etc/yum.repos.d/epel.repo
[epel]
enabled=1
priority=10
name=Extra Packages for Enterprise Linux 7 - $basearch
...

[epel-debuginfo]
enabled=0
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
...

[epel-source]
enabled=0
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
...

Activer les priorités

Installer le plug-in yum-plugin-priorities.

# yum install yum-plugin-priorities

Vérifier s’il fonctionne correctement.

# yum check-update
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: mirror.plusserver.com
 * epel: mirrors.neterra.net
 * extras: centos.mirror.ate.info
 * updates: mirrors.ircam.fr
125 packages excluded due to repository priority protections

Configurer le dépôt tiers Nux-Dextop

Le dépôt tiers Nux-Dextop fournit des paquets orientés poste de travail et multimédia. Il a besoin du dépôt EPEL pour fonctionner correctement.

Aller sur le site du projet, naviguer vers le répertoire nux/dextop/el7/x86_64/, télécharger et installer le paquet nux-dextop-release.

# yum localinstall nux-dextop-release-*.rpm

Activer le dépôt [nux-dextop] avec une priorité de 10.

# /etc/yum.repos.d/nux-dextop.repo
[nux-dextop]
name=Nux.Ro RPMs for general desktop use
baseurl=http://li.nux.ro/download/nux/dextop/el7/$basearch/ 
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro
protect=0

Laisser le dépôt [nux-dextop-testing] désactivé, en lui attribuant une priorité de 10.

# /etc/yum.repos.d/nux-dextop.repo
[nux-dextop-testing]
name=Nux.Ro RPMs for general desktop use - testing
baseurl=http://li.nux.ro/download/nux/dextop-testing/el7/$basearch/
enabled=0
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro
protect=0

Configurer le dépôt tiers Adobe

Ce dépôt nous servira uniquement pour le plugin Macromedia Flash.

  1. Aller sur le site d’Adobe.
  2. Tout en bas de la page d’accueil, suivre le lien Flash Player.
  3. Sur la page de sélection, choisir le système d’exploitation (Linux 64-bit) et la version (Flash Player YUM).
  4. Télécharger le paquet adobe-release et installer ce paquet.
# yum localinstall adobe-release-*.rpm

Configurer le dépôt [adobe-linux-x86_64] avec une priorité de 10 :

# /etc/yum.repos.d/adobe-linux-x86_64.repo
[adobe-linux-x86_64]
name=Adobe Systems Incorporated
baseurl=http://linuxdownload.adobe.com/linux/x86_64/
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

Configurer le dépôt tiers ELRepo

Le dépôt ELRepo est un autre dépôt tiers pour CentOS, qui se concentre sur les drivers.

  • systèmes de fichiers
  • cartes graphiques
  • cartes réseau
  • cartes son
  • webcams
  • etc.

Aller sur le site du projet, télécharger et installer le paquet elrepo-release pour les versions 7.x.

# yum localinstall elrepo-release-*.rpm

Désactiver l’ensemble des dépôts [elrepo].

# /etc/yum.repos.d/elrepo.repo 
[elrepo]
enabled=0
...
[elrepo-testing]
enabled=0
...
[elrepo-kernel]
enabled=0
...
[elrepo-extras]
enabled=0
...

On activera ce dépôt ponctuellement en cas de besoin.

# yum --enablerepo=elrepo install nvidia-detect

Installer les outils de base

Le script 01-installer-outils.sh installe une poignée d’outils en ligne de commande qui ne sont pas fournis par l’installation par défaut.

# cd /root/centos/el7/install
# ./01-installer-outils.sh

Agrémenter la console

Le script 02-configurer-base.sh agrémente la console pour root et les utilisateurs.

# ./02-configurer-base.sh

Outre la personnalisation du shell, le script se charge également de peaufiner la configuration de l’éditeur Vim.

Prendre en compte la personnalisation du shell pour root.

# source ~/.bashrc

Passer SELinux en mode permissif

Éditer le fichier /etc/selinux/config.

# /etc/selinux/config
SELINUX=permissive
SELINUXTYPE=targeted

À partir de là, on va récolter les éventuelles alertes SELinux.

Désactiver l’IPv6

Créer un fichier /etc/sysctl.d/disable-ipv6.conf et l’éditer comme ceci.

# /etc/sysctl.d/disable-ipv6.conf
# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

La désactivation de l’IPv6 peut entraîner des problèmes avec le service SSH. Il faut donc adapter sa configuration en conséquence.

Éditer /etc/ssh/sshd_config et spécifier les directives suivantes.

# /etc/ssh/sshd_config 
...
AddressFamily inet
ListenAddress 0.0.0.0
...

La directive inet désigne l’IPv4 et inet6 l’IPv6. Là aussi, les modifications seront prises en compte au prochain redémarrage.

Désactiver le pare-feu

Sur un poste de travail, un pare-feu n’a pas beaucoup de sens à partir du moment où l’on pense à désactiver les services inutiles.

Arrêter le pare-feu.

# systemctl stop firewalld

Supprimer le démon correspondant.

# yum remove firewalld

À partir de là, on a toujours la possibilité de configurer un pare-feu traditionnel avec iptables.

Installer le serveur graphique

Installer le système X Window.

# yum groupinstall "X Window System"

Au prochain redémarrage, CentOS affichera un dialogue d’acceptation de licence. La  logique de ce dialogue est quelque peu déroutante. Voici ce qu’il faut faire, dans l’ordre.

  1. Appuyer sur [1] pour afficher la licence.
  2. Appuyer sur [2] pour accepter la licence.
  3. Appuyer sur [C] pour continuer le démarrage initial.
  4. Appuyer sur [C] une deuxième fois pour confirmer le tout.

L’installation et la configuration du serveur graphique sont traitées un peu plus en détail dans cet article.

Si vous disposez d’une carte graphique NVidia, jetez un oeil ici.

Système invité VirtualBox

Si l’on a installé CentOS comme système invité VirtualBox, la résolution du bureau sera trop réduite pour pouvoir travailler correctement.

Installer les paquets prérequis pour la compilation des drivers.

# yum install gcc kernel-devel dkms

Insérer l’image CD des Additions Invité et lancer la compilation.

# mount /dev/cdrom /mnt
# cd /mnt
# ./VBoxLinuxAdditions.run

Installer l’environnement Xfce

L’environnement Xfce est fourni par le dépôt EPEL, par le groupe de paquets du même nom. Notez que ce groupe installe le gestionnaire de connexion GDM.

# yum groupinstall Xfce

Installer les applications

Le script installer-xfce.sh dans le répertoire centos/el7/xfce récupère une panoplie cohérente d’applications, de codecs et de plug-ins. Il supprime une poignée de paquets inutiles et installe également une poignée de polices TrueType ainsi qu’une collection de fonds d’écran.

# cd /root/centos/el7/xfce
# ./installer-xfce.sh

Le script nettoyer-menus.sh dans ce même répertoire remplace les entrées de menu Xfce par des entrées de menu personnalisées plus cohérentes et plus lisibles.

# ./nettoyer-menus.sh

Installer le profil Xfce

Enfin, le script installer-profil.sh installe une configuration personnalisée du bureau Xfce pour les futurs utilisateurs.

# ./installer-profil.sh

Créer un utilisateur

Maintenant que le profil par défaut est installé, on peut créer un ou plusieurs utilisateurs. On l’ajoutera éventuellement au groupe wheel.

# useradd -c "Nicolas Kovacs" kikinovak
# passwd kikinovak
# usermod -a -G wheel kikinovak

Se connecter en tant que ce nouvel utilisateur et supprimer l’utilisateur initial.

# userdel -r install

Premier lancement du bureau

Basculer manuellement en mode graphique.

# systemctl isolate graphical.target

Si tout se passe bien, le gestionnaire de connexion GDM s’affiche. Au cas où votre installation comporte un autre gestionnaire de fenêtres que Xfce (par exemple WindowMaker), il faudra explicitement définir la Session Xfce avant de fournir le mot de passe.

GDM Xfce

Si tout se passe bien, Xfce s’affiche dans la configuration par défaut. À partir de là, on peut définir la session graphique au démarrage de manière permanente.

# systemctl set-default graphical.target

Configurer le réseau sur un poste de travail

Dans la configuration par défaut, le réseau est géré par NetworkManager, qui est pratique sur un portable, mais ne sert pas à grand-chose sur un poste de travail ou une station de travail. Notons au passage que contrairement à ce qui se dit dans des blogs un peu partout sur le Web, NetworkManager n’est pas nécessaire pour la gestion du réseau. C’est juste une couche d’abstraction et de complexité supplémentaire, et dont on peut aisément se passer.

# systemctl stop NetworkManager
# yum remove NetworkManager

Voici un exemple de configuration simple.

# /etc/sysconfig/network-scripts/ifcfg-enp2s0
DEVICE=enp2s0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp

Si l’on gère les noms d’hôtes de manière centralisée avec Dnsmasq, il faut supprimer les occurrences correspondantes dans /etc/hosts.

# /etc/hosts
127.0.0.1 localhost.localdomain localhost

Le fichier /etc/hostname devra juste contenir ceci.

localhost

Configurer le réseau sur un portable

Sur un ordinateur portable, on utilisera le NetworkManager et l’applet correspondant network-manager-applet, qu’il faudra installer.

# yum install network-manager-applet

Pour éviter les conflits, il vaut mieux supprimer les fichiers ifcfg-<interface> dans /etc/sysconfig/network-scripts et garder uniquement ifcfg-lo. Ensuite, il suffit de vérifier si NetworkManager est actif.

# systemctl status NetworkManager

Remerciements

Merci à Frédéric Bézies pour le beta-testing et les nombreuses suggestions, ainsi que la vidéo d’installation très détaillée.

Publié dans CentOS, Documentation Microlinux | Marqué avec , | 7 commentaires

Xfce bien mitonné sous CentOS 7

Logo XfceCet article détaille pas à pas l’installation et la configuration “aux petits oignons” d’un poste de travail basé sur Xfce sur un système CentOS 7. Le poste de travail présenté ici offre une série d’améliorations par rapport à la configuration standard. Le but de l’opération est d’obtenir un environnement de bureau léger, robuste et plaisant à voir, et qui constitue une alternative fonctionnelle aux deux poids lourds GNOME et KDE fournis par Red Hat et CentOS.

Pour la procédure d’installation détaillée, consulter cet article.

Xfce CentOS

Prérequis

Bon nombre de tutoriels décrivant l’installation de Xfce sous CentOS partent d’une installation poste de travail standard de CentOS et se contentent d’ajouter l’environnement de bureau Xfce. On se retrouve ainsi avec un système souffrant d’un certain embonpoint et encombré de toute une série de paquets inutiles.

Nous partons donc d’une installation minimale de type serveur, à laquelle nous ajoutons le serveur graphique X Window.

Les paquets seront téléchargés depuis les dépôts officiels ainsi que les dépôts EPEL, Nux-Dextop et Adobe. On pourra se reporter à cet article pour la mise en place de ces dépôts.

Installation

L’environnement Xfce est fourni par le dépôt EPEL, par le groupe de paquets du même nom. Notez que ce groupe installe le gestionnaire de connexion GDM.

# yum groupinstall Xfce

Il faudra éventuellement installer une police manquante.

# yum install urw-fonts

Premier lancement

Si l’on a installé plusieurs environnements graphiques, il faudra choisir la Session Xfce dans le gestionnaire de connexion GDM.

GDM Xfce

Au premier lancement, choisir l’option Utiliser les paramètres par défaut.

Configuration Xfce

L’interface graphique laisse à désirer avec son aspect nord-coréen dans la configuration par défaut. Nous allons bientôt remédier à cela.

Configuration Xfce

Installer le thème GTK Clearlooks Phenix

Le thème GTK de l’interface est plus ou moins acceptable dans la configuration par défaut. Je vais quand-même le remplacer par Clearlooks Phenix, mon thème GTK préféré ces dernières années.

# yum install clearlooks-phenix-gtk2-theme \
  clearlooks-phenix-gtk3-theme \
  clearlooks-phenix-xfwm4-theme

Ouvrir le Gestionnaire de paramètres > Apparence > Style et définir le thème Clearlooks-Phenix.

Configuration Xfce

Note importante : le thème Clearlooks Phenix semble actuellement souffrir d’un bug dans la représentation des applets de la zone de notification. En attendant qu’il soit résolu, on peut opter pour le thème Clearlooks tout court, qui fonctionne correctement.

Installer le jeu d’icônes Elementary-Xfce

Le jeu d’icônes Elementary a été développé initialement pour Elementary OS, une distribution originale à l’esthétique extrêmement réussie. Malheureusement, les mainteneurs du jeu d’icônes initial ont décidé de “simplifier” la panoplie des icônes disponible, et il en résultait des jeux d’icônes incomplets. Elementary-Xfce est un fork du projet initial, qui vise à maintenir un jeu d’icônes complet pour Xfce. Notez au passage que, malgré ce que son nom peut suggérer, il fonctionne également très bien sur d’autres environnements de bureau comme GNOME, MATE, Cinnamon ou Unity.

Sous CentOS, Elementary-Xfce est fourni par le dépôt Nux-Dextop.

# yum install elementary-xfce-icon-theme

Définir le jeu d’icônes Elementary-Xfce dans le Gestionnaire de paramètres > Apparence > Icônes.

Configuration Xfce

Améliorer la police de l’interface

La police de l’interface définie par défaut est quelque peu terne, et c’est le moins que l’on puisse dire. Nous allons la remplacer par Droid Sans, une police de caractères développée spécialement pour les interfaces graphiques par Google. Elle est également fournie par le dépôt Nux-Dextop.

# yum install google-droid-sans-fonts

Définir la police Droid Sans avec une taille 11 dans le Gestionnaire de paramètres > Apparence > Polices.

https://fonts.google.com/specimen/Droid+Sans

Supprimer les icônes du bureau

Les icônes sur le bureau sont une question de goût. Pour ma part, je considère qu’elles ne servent pas à grand-chose, à plus forte raison que nous installerons un peu plus loin un lanceur d’applications qui nous permettra un accès rapide aux emplacements divers et variés du système.

Dans le Gestionnaire de paramètres > Bureau, ouvrir l’onglet Icônes. Repérer la section Icônes par défaut et décocher Répertoire personnel, Système de fichiers et Corbeille. On conservera uniquement l’affichage des périphériques amovibles sur le bureau.

Configuration Xfce

Installer et définir les applications favorites

La section Applications favorites du Gestionnaire de paramètres nous permet de définir les applications centrales de notre environnement.

  • Navigateur Web : notre choix de portera sur Mozilla Firefox.
  • Client de messagerie : ici, nous optons pour Mozilla Thunderbird.
  • Gestionnaire de fichiers : Thunar sera remplacé par Caja.
  • Émulateur de terminal : nous conservons le Terminal Xfce.

Installer Mozilla Firefox et Mozilla Thunderbird.

# yum install firefox thunderbird

Le navigateur de fichiers Caja est issu du projet MATE. Il est plus fonctionnel – et un peu plus esthétique – que Thunar, tout en restant léger et rapide.

# yum install caja

Note importante : le paquet Thunar ne doit pas être supprimé, étant donné qu’il constitue une dépendance pour xfdesktop, un composant central de notre bureau.

Dans le Gestionnaire de paramètres, ouvrir la section Applications favorites. Définir Mozilla Firefox comme Navigateur Web et Mozilla Thunderbird comme Client de messagerie.

Configuration Xfce

Passer à l’onglet Utilitaires et définir Caja comme Gestionnaire de fichiers. Conserver Terminal Xfce comme Émulateur de Terminal.

Configuration Xfce

Définir un fond d’écran par défaut

Dans la configuration par défaut, notre bureau affiche une couleur bleu nuit en guise de fond d’écran, et c’est tout. Ouvrir le Gestionnaire de paramètres > Bureau > Fond d’écran. Dans le menu déroulant Dossier en bas à gauche, sélectionner le dossier backgrounds. Ce dossier contient les fonds d’écran fournis par l’équipe de CentOS pour l’environnement GNOME. Dans cette collection, opter pour l’image default.jpg en précisant le style Étendu.

https://mate-desktop.org/fr/

Réduire le nombre de bureaux virtuels

Xfce offre pas moins de quatre bureaux virtuels par défaut. Là encore, c’est une question de préférences personnelles. La plupart de mes utilisateurs ne les utilisent pas du tout, ou alors il leur en faut deux tout au plus.

Dans le Gestionnaire de paramètres, ouvrir Espaces de travail et passer de quatre à deux espaces de travail.

Configuration Xfce

Peaufiner le compositeur d’affichage

Dans le Gestionnaire de paramètres, ouvrir la section Peaufinage des fenêtres, puis l’onglet Compositeur.

Décocher l’option Afficher des ombres sous les fenêtres dock. Elle assure la compatibilité avec le dock Plank que nous installerons un peu plus loin.

Ensuite, modifier les réglages de l’opacité des fenêtres dans la partie inférieure.

  • Opacité des décorations des fenêtres : laisser tel quel
  • Opacité des fenêtres inactives : réduire d’un cran
  • Opacité des fenêtres durant leur déplacement : réduire de deux crans
  • Opacité des fenêtres durant leur redimensionnement : réduire d’un cran
  • Opacité des fenêtres contextuelles : laisser tel quel

Configuration Xfce

Installer une sélection d’applications

Avant d’aller plus loin dans la configuration de notre environnement de bureau, le moment est venu d’installer une poignée d’applications de base pour les tâches courantes et moins courantes. Notre environnement Xfce est ainsi transformé pas à pas en bureau fonctionnel et complet qui n’a rien à envier à ses grands concurrents propriétaires.

Voici la panoplie d’applications que j’utilise au quotidien sous Xfce.

  • Internet & réseau : Filezilla, Pidgin, Transmission
  • Bureautique : Evince, LibreOffice
  • Graphisme : GIMP, gThumb, Inkscape, Scribus, Simple Scan
  • Multimédia : Asunder, Audacious, Audacity, HandBrake, Openshot, VLC, WinFF
  • Accessoires : Brasero, CherryTree, Conky, Engrampa, Gedit, Xfce4-Screenshooter

Je fournis un petit script dans mon dépôt Github pour automatiser la procédure d’installation.

# yum install git
# cd
# git clone https://github.com/kikinovak/centos
# cd centos/el7/xfce

Le script installer-xfce.sh récupère une panoplie cohérente d’applications, de codecs et de plug-ins. Il supprime une poignée de paquets inutiles et installe également une poignée de polices TrueType ainsi qu’une collection de fonds d’écran.

# ./installer-xfce.sh

Le script nettoyer-menus.sh dans ce même répertoire remplace les entrées de menu Xfce par des entrées de menu personnalisées plus cohérentes et plus lisibles.

# ./nettoyer-menus.sh

Remplacer le menu Applications par Whisker Menu

Whisker Menu est un menu moderne et fonctionnel pour l’environnement Xfce. Nous allons l’installer en remplacement du menu Applications traditionnel.

# yum install xfce4-whiskermenu-plugin
  1. Cliquez-droit sur le menu Applications et supprimez-le.
  2. Un clic droit sur une zone vide du tableau de bord supérieur vous affiche le menu contextuel. Nous allons Ajouter de nouveaux éléments.
  3. Sélectionnez le Menu Whisker dans la liste et cliquez sur Ajouter, puis Fermer.
  4. Le nouveau menu s’installe sur le bord supérieur droit de l’écran. Cliquez-droit sur l’icône de la souris pour le Déplacer.
  5. Faites glisser le menu vers l’extrémité gauche du tableau de bord, à gauche du petit séparateur. Cliquez-droit sur l’icône de la souris et ouvrez les Propriétés du Menu Whisker.

Dans l’onglet Apparence, sélectionnez Icône et texte dans le menu déroulant Affichage. Si l’icône par défaut ne vous plaît pas, vous pouvez la remplacer par le logo du distributeur. Cliquez dessus et choisissez system-logo-icon dans la liste des Icônes des applications.

Configuration Xfce

Passez à l’onglet Comportement et cochez Changer de catégories au survol.

Configuration Xfce

Dans l’onglet Commandes, décochez Changer d’utilisateur, Modifier les applications et Modifier le profil.

Configuration Xfce

Enfin, supprimez toutes les actions de recherche dans l’onglet correspondant.

Configuration Xfce

Il ne reste plus qu’à ajouter les applications les plus courantes au menu des Favoris. On pourra éventuellement redimensionner le menu à l’aide de la petite flèche en bas à droite.

Configuration Xfce

Remplacer le tableau de bord inférieur par le dock Plank

Dans la configuration par défaut, le tableau de bord inférieur du bureau Xfce est censé fournir un lanceur d’applications pour accéder en un simple clic aux logiciels les plus utilisés comme le terminal graphique, le gestionnaire de fichiers ou le navigateur Web. Certes, ce tableau de bord fait ce qu’il est censé faire, mais il suffit de le comparer au dock de Mac OS X pour constater qu’on peut mieux faire en matière d’esthétique et de fonctionnalité.

Dock Mac OS X

Le monde de Linux et du libre propose toute une série de docks – ou barres de lancement animées, et il existe une série de projets similaires en apparence comme  Docky, Cairo Dock, Avant Window Navigator, Plank, etc. J’ai testé tous ces docks, et j’ai décidé d’opter pour Plank, qui constitue de loin le plus fonctionnel et le plus stable. Il offre juste la poignée de paramétrages qu’il faut, ses animations sont jolies à voir tout en restant discrètes, et il est très peu gourmand en ressources. Tout comme le jeu d’icônes que nous avons vu plus haut, Plank est développé par l’équipe d’Elementary OS.

Sous CentOS, Plank est fourni par le dépôt tiers Nux-Dextop.

# yum install plank

Le lanceur d’applications Plank est censé remplacer le deuxième tableau de bord situé en bas de l’écran. Avant toute chose, nous devons donc nous débarrasser de cet élément obsolète.

Rendez-vous dans le Gestionnaire de paramètres et ouvrez la section Tableau de bord. Le menu déroulant en haut de la fenêtre vous propose de choisir entre Tableau de bord 1 en haut de l’écran et Tableau de bord 2 en bas de l’écran. Sélectionnez le Tableau de bord 2 et cliquez sur le petit bouton orné d’un signe “” pour le supprimer. Assurez-vous bien de supprimer le tableau de bord inférieur en vérifiant la présence d’un petit liseré rouge autour de la sélection active.

Configuration Xfce

Maintenant que la voie est libre, essayez de lancer Plank à la main. Appuyez sur Alt+F2 pour afficher la fenêtre de lancement manuel, saisissez plank et confirmez.

Configuration Xfce

Plank s’affiche en bas de l’écran dans sa configuration par défaut.

Dock Plank

Pour l’instant, Plank n’est pas encore trop fourni en applications. Notre prochain souci consistera à nous assurer qu’il soit lancé automatiquement au démarrage du bureau Xfce. Rendez-vous dans le Gestionnaire de paramètres et ouvrez Session et démarrage. Affichez l’onglet Démarrage automatique d’application. Vous y verrez une liste de tous les programmes lancés automatiquement à l’ouverture d’une session.

Nous allons ajouter Plank à cette liste. Cliquez sur Ajouter et renseignez la petite fenêtre qui s’ouvre. Dans le champ Nom, vous pourrez mettre Plank. Le champ Description sera quelque chose comme Lanceur d'applications. Quant à la Commande, c’est tout simplement /usr/bin/plank. Cliquez sur Valider, fermez le Gestionnaire de paramètres et testez la configuration de la session en vous déconnectant et en vous reconnectant.

Configuration Xfce

Pour configurer l’aspect et le comportement de Plank, invoquez plank --preferences depuis un terminal. Sélectionnez le thème Transparent dans le menu déroulant, activez le Zoom sur icône et réduisez le facteur de grossissement de 150 à 120.

Dock Plank

Dans l’onglet Comportement, désactivez l’affichage de l’icône du dock.

Dock Plank

Il ne reste plus qu’à ajouter des lanceurs pour les applications que l’on utilise le plus souvent.

Dock Plank

Configurer l’apparence du terminal graphique

L’apparence du Terminal Xfce peut être améliorée. Ouvrir l’entrée de menu Édition > Préférences pour accéder aux paramètres du terminal.

Dans l’onglet Général, on peut éventuellement désactiver la barre de défilement si l’on préfère se servir des raccourcis clavier pour naviguer dans l’historique d’affichage.

Xfce Terminal

Passer à l’onglet Apparence et définir une police personnalisée selon les préfèrences personnelles. Pour ma part, j’ai une préférence marquée pour la police Monaco en taille 12, la police par défaut des terminaux de Mac OS X. L’arrière plan est transparent, avec un taux de transparence de 0,80. On peut éventuellement définir une géométrie personnalisée, comme par exemple 105 colonnes sur 38 lignes.

Xfce Terminal

Enfin, l’onglet Couleurs permet de choisir une palette de couleurs, et nous optons pour le préréglage Tango. Les thèmes solarisés sont certes jolis à voir, mais rendent les menus NCurses à peu près illisibles.

Xfce Terminal

Et voilà ce que cela donne au final.

Xfce Terminal

Installer et configurer un économiseur d’écran

Dans sa configuration par défaut, Xfce ne comporte aucun économiseur d’écran. Nous allons donc installer XScreenSaver.

# yum install xscreensaver

Le Gestionnaire de paramètres comporte désormais une nouvelle entrée Économiseur d’écran.

La qualité des différents économiseurs est très variable. Certains sont plutôt jolis à voir, alors que d’autres sont franchement laids. Non content de cela, certains semblent assez gourmands en ressources graphiques, et ils ont tendance à faire planter les configurations modestes.

Pour ma part, j’ai opté pour l’économiseur GLMatrix, léger et plaisant à voir. Dans les sélecteur Mode, optez pour Seulement un économiseur d’écran. Augmentez la durée de verrouillage et de changement à 30 minutes.

XScreenSaver

Peaufiner le tableau de bord supérieur

La zone droite du tableau de bord supérieur peut être organisée de façon plus ergonomique.

Dans un premier temps, on peut déplacer la zone de notifications à gauche du sélecteur de bureaux virtuels.

Ensuite, on peut ajouter un bouton de mixage entre ces deux zones.

  1. Cliquer-droit sur une zone vide du tableau de bord.
  2. Dans le menu contextuel, choisir Ajouter de nouveaux éléments.
  3. Choisir Greffon PulseAudio dans la liste et cliquer sur Ajouter.

Placer le bouton mixage entre la zone de notifications et le sélecteur de bureaux virtuels. L’opération est un peu délicate à effectuer. Voici ce que l’on obtient au final.

Configuration Xfce

Modifier le pointeur de la souris

Le pointeur noir par défaut est un peu terne et pas très visible. Nous allons installer et configurer un thème plus visible et plus agréable à l’oeil.

# yum install bluecurve-cursor-theme

Ouvrir le Gestionnaire de paramètres dans la section Souris et pavé tactile. Dans l’onglet Thème, définir le thème Bluecurve-inverse.

Configuration Xfce

Activer l’écran de démarrage

Xfce dispose d’un écran de démarrage pas trop laid, que l’on peut éventuellement activer. Ouvrir le Gestionnaire de paramètres > Session et démarrage à l’onglet Écran de démarrage et sélectionner le thème Simple.

Configuration Xfce

Création du profil par défaut

La configuration que nous venons de créer peut être définie comme profil par défaut pour les futurs utilisateurs. Admettons que nous ayons personnalisé Xfce en tant qu’utilisateur template. Nous pourrions créer le profil comme ceci.

# mkdir -p /etc/skel/.config/xfce4
# cd /home/template
# cp -R .config/xfce4/{panel,terminal,xfconf,helpers.rc} \
  /etc/skel/.config/xfce4/
# cp -R .config/{plank,autostart} /etc/skel/.config/

Éventuellement, nous pouvons empaqueter le profil.

# cd /etc/skel
# tar cjf config.tar.bz2 .config/

Remerciements

Un grand merci à Lucian, le mainteneur du dépôt Nux-Dextop, pour son soutien à ce projet, notamment l’ajout du paquet elementary-xfce-icon-theme et l’adaptation du paquet modifié plank.

Publié dans CentOS, Documentation Microlinux | Marqué avec , | 2 commentaires