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 , , , | Laisser un commentaire

Filtrer les spams avec SpamAssassin et Postfix sous CentOS

Filtrage Anti-SPAMParfois le matin, en lançant Thunderbird, je me demande à quoi ressemblerait le monde si le courrier électronique n’existait pas. Toutes ces missives que je ne lirais pas. La supplique du fils d’un célèbre dictateur africain qui m’invite à dissimuler son trésor dans ma penderie, moyennant une modeste contribution initiale de ma part. Un courrier personnel de Bill Gates pour m’annoncer que j’ai gagné le jackpot de la loterie annuelle Microsoft avec une demande de confirmation pour savoir si l’adresse électronique de l’heureux gagnant est bien valide. Une exhortation à augmenter la taille de mon attribut viril afin de satisfaire ma partenaire frustrée par les dimensions ridicules dudit membre. Une fausse lettre d’amour de Britney Spears, accompagnée d’une bombe à retardement numérique censée détruire mon système. Nous vivons une époque formidable.

100 milliards de spams par jour

En janvier 2004, Bill Gates avait annoncé solennellement que “le problème du spam sera résolu d’ici 2006, car les ingénieurs Microsoft sont en train d’étudier la question”. En 2017, soit treize ans après cette prophétie optimiste, près de 100 milliards (!) de courriers non sollicités sont envoyés quotidiennement sur tous les réseaux de la planète, au grand dam des utilisateurs excédés par ce tsunami numérique.

En attendant que les ingénieurs Microsoft restent penchés sur la question, on peut déjà utiliser quelques solutions anti-spam qui fonctionnent. Dans un précédent article, j’avais détaillé le blocage d’un ou plusieurs domaines avec Postfix pour se débarrasser des spammeurs les plus virulents. Aujourd’hui, nous allons continuer notre luttre contre le spam avec SpamAssassin.

SpamAssassinSpamAssassin est un programme écrit en Perl qui agit au niveau du serveur mail. Il fait passer un certain nombre de tests à tous les messages. Ensuite, un score est attribué à chaque message en fonction du résultat de ces tests. Si le score dépasse un certain seuil, le message est considéré comme spam et marqué comme tel dans l’en-tête. Il suffit alors de créer un filtre correspondant dans le client de messagerie. Dans la pratique quotidienne, le filtrage est assez efficace. SpamAssassin permet d’éliminer un pourcentage significatif de spams sans pour autant envoyer les messages légitimes au nirvana numérique.

Prérequis

Dans l’exemple ci-dessous, nous allons installer SpamAssassin sur un serveur dédié tournant sous CentOS 7, et disposant d’un serveur mail IMAP avec Postfix et Dovecot.

Pour la durée de l’installation et des premiers tests de filtrage de spams, nous allons basculer SELinux en mode permissif pour éviter de nous retrouver confrontés à des blocages mystérieux.

# setenforce 0

Installation

SpamAssassin est fourni par les dépôts officiels.

# yum install spamassassin

On notera que l’application dépend d’une quantité importante de modules Perl.

Configuration de SpamAssassin

Éditer /etc/mail/spamassassin/local.cf comme ceci.

required_hits 5
report_safe 0
required_score 5
rewrite_header Subject [SPAM]

Quelques mots sur les options utilisées.

  • required_hits définit le seuil du filtrage. Un paramétrage à 5 est généralement considéré comme efficace pour une PME. Plus ce chiffre est réduit, plus le filtrage sera agressif. Si vous êtes un labo d’analyes et que vous recevez régulièrement des mails qui tentent de vous vendre des produits pharmaceutiques, vous avez intérêt à définir un score plus élevé, 8 par exemple.
  • report_safe décide si le message en question doit être supprimé (1) ou redirigé vers la boîte de réception avec une réécriture de l’en-tête (0).
  • required_score définit le score pour tous les messages envoyés au domaine, en allant du message légitime (0) au spam résolument pourri (5). Si nous abaissons ce score à 3, cela nous permettrait certes d’éliminer un plus grand nombre de courriers non sollicités. En revanche, on augmenterait la probabilité d’avoir des faux positifs, c’est-à-dire des messages légitimes identifiés comme spams.
  • rewrite_header se charge de réécrire l’en-tête du message. En l’occurrence, la chaîne de caractères [SPAM] est ajoutée au sujet du message.

La prochaine étape consiste à ajouter l’utilisateur système spamd et le groupe système correspondant.

# groupadd spamd
# useradd -c "SpamAssassin User" -g spamd -s /bin/false \
  -d /var/log/spamassassin spamd

Définir les permissions du répertoire système de SpamAssassin.

# chown spamd:spamd /var/log/spamassassin

Activer et démarrer le service.

# systemctl enable spamassassin
# systemctl start spamassassin

Mettre à jour les règles de SpamAssassin.

# sa-update

Configuration de Postfix

Éditer /etc/postfix/master.cf. Ajouter une option tout en haut du fichier.

smtp    inet  n      -      n      -      -      smtpd
  -o content_filter=spamassassin

Ensuite, ajouter ceci tout à la fin du fichier.

spamassassin unix - n n - - pipe flags=R user=spamd 
  argv=/usr/bin/spamc -e /usr/sbin/sendmail 
  -oi -f ${sender} ${recipient}

Redémarrer Postfix.

# systemctl restart postfix

Premier test

Envoyer un mail depuis un compte externe. Le sujet peut être librement choisi. Dans le corps du message, copier/coller la chaîne de caractères suivante.

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Si tout s’est bien passé, la boîte de réception contient un message marqué [SPAM].

Test SpamAssassin

L’opération de filtrage est enregistrée comme ceci.

# journalctl | grep "identified spam"
Oct 06 12:11:26 sd-48011.dedibox.fr spamd[44922]: spamd: identified 
spam (18.5/5.0) for spamd:1002 in 1.3 seconds, 17666 bytes.

Mise à jour automatique des règles

Éditer un petit script shell pour la mise à jour des règles et le redémarrage du service.

#!/bin/bash
#
# update-spamassassin.sh

/usr/bin/sa-update
/usr/bin/systemctl restart spamassassin

Ranger ce script dans /usr/local/sbin et définir des permissions appropriées.

# chmod 0700 /usr/local/sbin/update-spamassassin.sh

Ensuite, définir une tâche automatique pour la mise à jour quotidienne.

# crontab -e
...
# Mettre à jour les règles pour SpamAssassin tous les jours à 1h00
00 01 * * * /usr/local/sbin/update-spamassassin.sh

Configuration de Thunderbird

Une méthode efficace pour séparer le bon grain de l’ivraie, c’est de définir un filtre dans Thunderbird. Ouvrir l’interface de définition des filtres dans Outils > Filtres de messages et créer un nouveau filtre comme ceci, par exemple.

Filtre Thunderbird

Dorénavant, les spams sont automatiquement redirigés vers le dossier correspondant, et il ne reste plus que quelques faux négatifs que l’on pourra trier manuellement dans la boîte de réception.

Spams Thunderbird

SpamAssassin et SELinux

Les premières tentatives de débogage avec SELinux peuvent mener à des résultats quelque peu déroutants. Voici ce que j’ai obtenu.

# sealert -a /var/log/audit/audit.log
*****  Plugin catchall (100. confidence) suggests   *****
If you believe that perl should be allowed create access on the
.spamassassin directory by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do allow this access for now by executing:
# ausearch -c '7370616D64206368696C64' --raw | audit2allow -M
my-7370616D64206368696C64
# semodule -i my-7370616D64206368696C64.pp

Le hic, c’est que la paire de commandes sugérée ici ne mène à rien.

# ausearch -c '7370616D64206368696C64' --raw | \
> audit2allow -M my-7370616D64206368696C64
Nothing to do

Une recherche Google m’a montré que je n’étais visiblement pas le seul à être confronté au problème. Et puis j’ai fini par tomber sur la solution dans la page de manuel spamd_selinux(8). Il suffisait de trouver le booléen qui va bien.

# setsebool -P spamd_enable_home_dirs 1

À partir de là, plus rien à signaler.

# getenforce
Enforcing
# sealert -a /var/log/audit/audit.log
100% done
found 0 alerts in /var/log/audit/audit.log
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 , | 6 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 , | Laisser un commentaire

Construire des paquets RPM pour CentOS

Paquets RPMCet article décrit de façon succincte la mise en place d’un environnement de construction et la compilation de paquets pour CentOS. La construction de paquets RPM est un vaste chapitre. Ce petit tutoriel me sert avant tout de pense-bête pour les spécificités de la construction d’un paquet sous RHEL/CentOS. Il ne pourra pas remplacer une documentation détaillée.

Dans l’exemple qui suit, je vais construire le paquet Plank pour CentOS 7 depuis le paquet source de Fedora 22. Je vais partir d’un système minimal et installer pas à pas les outils et autres dépendances nécessaires.

Mettre en place l’environnement de construction

L’outil de construction rpmbuild est fourni par le paquet rpm-build.

# yum install rpm-build

On prendra soin de construire les paquets en tant que simple utilisateur. Les droits root seront uniquement nécessaires pour l’installation des paquets.

Créer l’arborescence de construction des paquets.

$ mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
mkdir: création du répertoire « /home/kikinovak/rpmbuild »
mkdir: création du répertoire « /home/kikinovak/rpmbuild/BUILD »
mkdir: création du répertoire « /home/kikinovak/rpmbuild/RPMS »
mkdir: création du répertoire « /home/kikinovak/rpmbuild/SOURCES »
mkdir: création du répertoire « /home/kikinovak/rpmbuild/SPECS »
mkdir: création du répertoire « /home/kikinovak/rpmbuild/SRPMS »

Ensuite, éditer un fichier ~/.rpmmacros comme ceci.

%_topdir /home/kikinovak/rpmbuild
%packager Niki Kovacs <info@microlinux.fr>
%dist .el7.microlinux

Construction d’un paquet RPM

Dans l’exemple, je pars d’un paquet SRPM (Source RPM) récupéré sur le portail http://rpm.pbone.net. , en l’occurrence plank-0.10.1-1.fc22.src.rpm. Dans la pratique quotidienne, on partira souvent d’un SRPM de Fedora que l’on recompilera pour l’intégrer à CentOS.

rpm.pbone.net

Créer un répertoire ~/SRPMS pour y ranger les paquets source téléchargés.

$ mkdir -v ~/SRPMS
mkdir: création du répertoire « /home/kikinovak/SRPMS »

Si l’on part d’un paquet source SRPM, on peut utiliser rpm en tant que simple utilisateur, et la commande rpm -ivh installera les fichiers au bon endroit.

$ rpm -ivh plank-0.10.1-1.fc22.src.rpm
attention : plank-0.10.1-1.fc22.src.rpm: Entête V3 
RSA/SHA256 Signature, clé ID 8e1431d5: NOKEY
Mise à jour / installation...
1:plank-0.10.1-1.fc22 ################################# [100%]

Voici comment se présentent les fichiers installés.

$ tree ~/rpmbuild/
/home/kikinovak/rpmbuild/
├── BUILD
├── RPMS
├── SOURCES
│   ├── 000_patentpatch.patch
│   └── plank-0.10.1.tar.xz
├── SPECS
│   └── plank.spec
└── SRPMS
  • le code source “vanillaplank-0.10.1.tar.xz
  • les instructions de compilation plank.spec
  • un patch 000_patentpatch.patch

Alternativement – si l’on ne trouve pas de paquet SRPM – on peut récupérer le fichier .spec pour le placer dans ~/rpmbuild/SPECS. Puis on récupère les sources correspondantes, et on les range manuellement dans le répertoire ~/rpmbuild/SOURCES.

Avant de tenter un premier essai, je vais quand-même installer un minimum d’outils de compilation.

# yum install gcc make

À cette étape, on peut éventuellement éditer le fichier .spec pour y apporter des modifications. En l’occurrence, j’annule l’application d’un patch qui désactive une fonctionnalité soumise à un brevet.

%prep
%setup -q
# %patch0 (commenter)

Je lance une première tentative de compilation.

$ cd ~/rpmbuild/SPECS/
$ rpmbuild -ba --clean plank.spec

Quelques remarques sur les options utilisées.

  • L’option -ba construit les paquets binaires et les sources (RPM et SRPM).
  • L’option --clean nettoie l’arborescence de construction.

Cette première tentative se solde par une erreur, étant donné qu’il manque un certain nombre de dépendances.

rpmbuild-deps

J’installe les dépendances de construction, qui sont fournies par les dépôts [base], [epel] et [nux-dextop].

Je relance rpmbuild, et au terme de la compilation, j’obtiens ceci.

$ tree ~/rpmbuild/
/home/kikinovak/rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
│   └── x86_64
│       ├── plank-0.10.1-1.el7.microlinux.x86_64.rpm
│       ├── plank-debuginfo-0.10.1-1.el7.microlinux.x86_64.rpm
│       └── plank-devel-0.10.1-1.el7.microlinux.x86_64.rpm
├── SOURCES
│   ├── 000_patentpatch.patch
│   └── plank-0.10.1.tar.xz
├── SPECS
│   └── plank.spec
└── SRPMS
    └── plank-0.10.1-1.el7.microlinux.src.rpm

Il ne me reste plus qu’à installer les paquets RPM résultants avec rpm -ivh ou yum localinstall.

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

Virtualisation avec KVM sous CentOS

Virtualisation KVMJ’ai parfois besoin de construire des paquets pour différentes distributions Linux, avec des versions et des architectures qui peuvent également varier. Les solutions multiboot ne sont pas ce qu’il y a de plus simple à mettre en oeuvre, sans oublier le manque de flexibilité. J’ai également testé la virtualisation avec VirtualBox, qui pose d’autres contraintes. La meilleure solution consiste ici à mettre en place une série de machines virtuelles avec Qemu/KVM et LibVirt.

Dans cet article, je décris la mise en place d’un hôte KVM (également appelé hyperviseur) dans mon réseau local et d’une série de machines virtuelles installées sur cet hôte. Nous allons éviter de nous compliquer la vie avec les myriades d’options en ligne de commande de Qemu. Au lieu de cela, nous allons profiter des fonctionnalités de LibVirt et de Virt-Manager, qui nous faciliteront considérablement la tâche.

Il serait aisé d’écrire un ou même plusieurs gros livres sur le sujet de la virtualisation avec KVM, ce qui a d’ailleurs été fait. Ce tutoriel est conçu avant tout pour une prise en main de KVM par la pratique.

Prérequis

La virtualisation doit être activée dans le BIOS. Sur mon serveur HP, l’option correspondante est bien cachée dans le sous-menu Security > System Security > Virtualization Technology du BIOS. Dans certains cas, l’option peut même se trouver dans le sous-menu Power. Dans un cas comme dans l’autre, il faudra choisir Enable.

Pour que Qemu/KVM ait des performances acceptables, il faut vérifier que notre processeur soit compatible avec les extensions de virtualisation. Sous Linux, il est facile de vérifier cela avec la commande suivante.

$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo >/dev/null && echo OK
OK

Le serveur peut donc supporter la virtualisation hardware.

Attention tout de même, ça ne marche pas sur une Dedibox SC de chez Online. Le processeur VIA affiche des capacités KVM sans en être capable dans la pratique. Cette anomalie fâcheuse m’a coûté un après-midi entier à m’arracher les cheveux face à une série de plantages inexplicables.

Pour éviter d’avoir à saisir des mots de passe à répétition, il est fortement recommandé de configurer l’authentification par clé SSH depuis le poste client vers le serveur KVM.

$ ssh-copy-id -i .ssh/id_rsa.pub root@nestor.microlinux.lan

Installation côté serveur

CentOS fournit certes un groupe de paquets Virtualization, mais je préfère voyager léger, et je n’installe que le minimum syndical sur le serveur.

# yum install qemu-kvm libvirt

Un redémarrage n’est pas vraiment nécessaire, mais je le fais quand-même pour voir si le module kvm est chargé automatiquement.

# lsmod | grep kvm
kvm_amd                64937  0 
kvm                   554609  1 kvm_amd
irqbypass              13503  1 kvm

Bien évidemment, rien n’empêche de charger le module manuellement.

# modprobe kvm

Lancement initial

Activer et démarrer libvirtd et afficher l’état du démon.

# systemctl enable libvirtd
# systemctl start libvirtd
# systemctl status libvirtd

Le journal affiche une erreur quant à l’interface réseau utilisée. Sans trop rentrer dans les détails, nous devons remédier à cela en créant un pont.

Création d’un bridge

Dans la configuration par défaut, mon serveur dispose de deux interfaces réseau.

  • enp2s0 côté Internet
  • enp3s0 côté réseau local

Pour créer un pont (ou bridge), je vais d’abord éditer /etc/sysconfig/network-scripts/ifcfg-enp3s0.

DEVICE=enp3s0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=virbr0

Ce bridge recevra la configuration de l’ancienne interface enp3s0. Pour ce faire, il faudra créer un fichier /etc/sysconfig/network-scripts/ifcfg-virbr0 et l’éditer comme ceci.

DEVICE=virbr0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.2.1
NETMASK=255.255.255.0

Étant donné que l’interface réseau côté LAN s’appelle désormais virbr0 et non plus enp3s0, il faudra modifier la configuration du serveur en conséquence, en l’occurrence le pare-feu et la configuration de Dnsmasq.

J’ai supprimé le pare-feu à la sauce Red Hat firewalld, que j’ai remplacé par un simple script iptables. Ce script sera donc modifié comme ceci.

#!/bin/sh
#
# firewall.sh

# Commandes
IPT=/usr/sbin/iptables
MOD=/usr/sbin/modprobe
SYS=/usr/sbin/sysctl
SERVICE=/usr/sbin/service

# Internet
IFACE_INET=enp2s0

# Réseau local
IFACE_LAN=virbr0
IFACE_LAN_IP=192.168.2.0/24

Je procède de même avec Dnsmasq et je renomme l’interface côté réseau local.

# /etc/dnsmasq.conf
domain-needed
bogus-priv
interface=virbr0
dhcp-range=192.168.2.100,192.168.2.200,24h

À partir de là, je peux redémarrer le serveur.

Régler un problème avec rpcbind

Le redémarrage se solde par l’erreur suivante.

# systemctl --failed
  UNIT           LOAD   ACTIVE SUB    DESCRIPTION
● rpcbind.socket loaded failed failed RPCbind Server Activation 
  Socket

Après une recherche Google, le problème s’avère être lié à la désactivation de l’IPv6 sur mon serveur. La solution consiste ici à forcer la reconstruction du disque mémoire initial.

# dracut -f

Au prochain redémarrage, le problème semble être résolu.

# systemctl status
● nestor
    State: running

Préparer les images ISO

Sur le serveur, on utilisera principalement des fichiers ISO pour installer les machines virtuelles. Dans la configuration par défaut, ces images sont censées être rangées dans le répertoire /var/lib/libvirt/images. On pourra les attribuer à l’utilisateur système qemu et au groupe système du même nom.

# ls -lh /var/lib/libvirt/images/
total 18G
-rw-r--r--. 1 qemu qemu 2,3G 11 mai 11:32 slackware-14.0.iso
-rw-r--r--. 1 qemu qemu 3,6G 11 mai 11:34 slackware-14.1.iso
-rw-r--r--. 1 qemu qemu 2,7G 11 mai 11:34 slackware-14.2.iso
-rw-r--r--. 1 qemu qemu 2,3G 11 mai 11:35 slackware64-14.0.iso
-rw-r--r--. 1 qemu qemu 3,7G 11 mai 11:36 slackware64-14.1.iso
-rw-r--r--. 1 qemu qemu 2,6G 11 mai 11:37 slackware64-14.2.iso

Installation côté client

Le serveur ne dispose pas d’interface graphique, et nous allons éviter de nous compliquer la vie en gérant les machines virtuelles en ligne de commande. Au lieu de cela, nous allons confortablement piloter Qemu/KVM en mode graphique depuis un poste client tournant sous CentOS 7 et muni de l’environnement de bureau KDE. Virt-Manager constitue sans doute l’interface la plus confortable.

# yum install virt-manager openssh-askpass ksshaskpass

Fermer et relancer la session KDE pour permettre l’intégration de Virt-Manager avec KWallet.

Créer une machine virtuelle

Démarrer le gestionnaire de machines virtuelles.

Configurer une connexion à l’hyperviseur via Fichier > Ajouter une connexion. Dans mon réseau, la connexion s’établit depuis ma station de travail.

La connexion à l’hyperviseur est établie.

Un clic droit sur l’hôte permet de créer une nouvelle machine virtuelle.

Pour installer notre machine virtuelle, nous utiliserons un fichier ISO rangé sur le serveur.

Nous choisissons l’image ISO dans la liste des fichiers disponibles.

Slackware Linux ne figure pas dans la liste des systèmes d’exploitation. Je garde donc la dénomination Generic.

Je définis la quantité de RAM et le nombre de processeurs pour ma machine virtuelle.

Je procède de même pour l’espace disque disponible.

La fenêtre subséquente me permet de choisir un nom pour ma machine virtuelle. Je prends soin de cocher Personnaliser la configuration avant l’installation pour peaufiner quelques détails importants. Le pont virbr0 constituera l’interface réseau partagée entre l’hôte et la machine virtuelle.

La vue d’ensemble sur la configuration de la machine virtuelle s’affiche.

Je spécifie le périphérique virtio pour la carte réseau. J’ai également la possibilité de personnaliser l’adresse MAC de la carte réseau.

Je remplace la carte vidéo QXL définie par défaut par un modèle VGA.

Une astuce consiste ici à ajouter une tablette graphique à la machine virtuelle, ce qui évite les mouvements de souris saccadés et aléatoires si jamais on utilise une interface graphique.

Il ne reste plus qu’à cliquer sur Commencer l’installation en haut à gauche de la fenêtre.

Si l’on utilise KVM en mode plein écran, la combinaison de touches [Ctrl]+[Alt] permet de récupérer le focus de la souris.

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

Installer X11 et WindowMaker sous CentOS 7

X11Cet article décrit l’installation du serveur graphique X.org et du gestionnaire de fenêtres WindowMaker sous CentOS 7, en partant d’une installation minimale et/ou de type serveur. L’intérêt d’une telle démarche, c’est de pouvoir offrir un environnement graphique très léger dans certains contextes. On disposera également d’une base saine pour installer un environnement de bureau léger comme Xfce.

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.

Installer le gestionnaire de fenêtres WindowMaker. On le trouve dans le dépôt tiers Nux Dextop, qu’il faudra configurer au préalable. Notez que ce dépôt requiert le dépôt EPEL.

# yum install WindowMaker

On installera également un terminal et une panoplie de polices.

# yum install xterm xorg-x11-fonts-*

Éditer un fichier ~/.Xresources pour configurer l’aspect du terminal.

XTerm*background: #000000
XTerm*foreground: LightGrey
XTerm*font: 9x15
XTerm*VT100.geometry: 105x35

Ensuite, éditer ~/.xinitrc pour prendre en compte ce fichier.

/usr/bin/xrdb -merge $HOME/.Xresources
/usr/bin/wmaker

Lancer WindowMaker.

$ startx

Le thème défini par l’équipe de CentOS n’est pas très joli à voir. Il vaut mieux utiliser le thème par défaut de WindowMaker en sélectionnant Apparence > Thèmes > Default dans le menu principal. Voilà à quoi cela ressemble au final.

WindowMaker

Si la taille de la police du terminal est trop petite, on peut jeter un oeil dans le fichier /usr/share/X11/app-defaults/XTerm. La section VT100.font affiche les tailles de polices disponibles.

*fontMenu*font2*Label: Tiny
*VT100.font2: 5x7
*fontMenu*font3*Label: Small
*VT100.font3: 6x10
*fontMenu*font4*Label: Medium
*VT100.font4: 7x13
*fontMenu*font5*Label: Large
*VT100.font5: 9x15
*fontMenu*font6*Label: Huge
*VT100.font6: 10x20

Au cas où la résolution de l’affichage n’est pas adaptée, on peut créer un fichier /etc/X11/xorg.conf.d/10-custom-screen.conf en adaptant la configuration comme ceci.

Section "Screen"
  Identifier "Default Screen"
  Device "Intel HD Graphics"
  Monitor "Default Monitor"
  DefaultDepth 24
  Subsection "Display"
    Depth 24
    Modes "1280x1024" 
  EndSubSection
EndSection
Publié dans CentOS, Documentation Microlinux | Marqué avec , , | Laisser un commentaire

Installer Ubuntu Linux 16.04 sur un MacBook Pro

Linux MacBook ProCet article décrit l’installation d’Ubuntu Linux 16.04 LTS sur un ordinateur portable MacBook Pro datant de 2009, en remplacement de Mac OS X 10.5.7. J’aurais voulu garder un système Mac OS X, étant donné qu’il est taillé sur mesure pour ce genre de matériel. Hélas, ce MacBook Pro est un bel exemple de ce que Richard Stallman appelle “the jail made cool“. Heureusement pour nous, Linux permet de s’affranchir de tous ces verrous endémiques du logiciel propriétaire.

Ubuntu 16.04

Mac OS X et l’obsolescence programmée

Mac OS XHier après-midi, une cliente m’a apporté son MacBook Pro pour que je lui fasse un débogage de l’application Mail, qui n’arrivait plus à se connecter à son compte Gmail. J’ai fait une petite recherche, et je me suis vite aperçu que l’application était trop ancienne et que les protocoles sécurisés requis par Google Mail n’étaient plus supportés. J’ai voulu installer une mise à jour, mais le système m’a informé que le système OS X installé était trop ancien.

Dans un premier temps j’ai essayé de remplacer Mail par Mozilla Thunderbird, et là aussi, j’ai été gratifié du même message d’erreur qui m’informait que ma version d’OS X était obsolète. D’après le numéro de série, la dernière version supportée est OS X El Capitan. J’ai essayé de télécharger cette version, mais l’Apple Store m’a informé que ma version d’OS X était trop ancienne pour utiliser l’Apple Store. Autrement dit, pour avoir une version plus récente du système, il faut avoir une version plus récente du système. Bon bon bon.

J’ai donc récupéré Mac OS X El Capitan sur un site de téléchargement alternatif, et j’ai sauté à travers quelques cerceaux en feu pour confectionner un DVD d’installation bootable sur ma station de travail Linux. J’ai compilé depuis les sources l’utilitaire dmg2img pour gérer les formats d’images bizarres de chez Apple. J’ai installé le module de kernel hfsplus pour pouvoir gérer les systèmes de fichiers bizarres de chez Apple. J’ai déboursé vingt-cinq euros pour acheter un pack de DVD double couche, vu que les ingénieurs de chez Apple ne sont pas capables de produire des fichiers ISO d’une taille potable.Tout cela pour finalement booter sur le DVD et être informé que l’architecture n’était pas prise en compte, contrairement à ce que prétend la documentation officielle. Retour à la case départ.

Avant d’informer ma cliente que même si son ordinateur tournait parfaitement d’un strict point de vue matériel, mais qu’elle n’avait d’autre choix que de le jeter à la poubelle, j’ai quand-même voulu tenter d’installer un système Linux moderne sur ce matériel. J’ai sorti pas moins d’une demi-douzaine de DVD d’installation, j’ai fait des tests, j’ai pris des notes, et j’en viens à la conclusion que sur un MacBook Pro datant de 2009, Ubuntu 16.04 LTS est sans doute le meilleur choix.

Démarrage et installation

J’effectue l’installation à partir d’un DVD Ubuntu 16.04.3 64-bits. Il faut insérer le CD machine allumée, éteindre, appuyer sur la touche C et allumer en même temps, ce qui fait démarrer sur le DVD.

Rien de particulier à signaler pour l’installation. Je m’attendais à devoir sauter à travers des cerceaux en feu pour la gestion de l’EFI, mais apparemment, un partitionnement GPT et GRUB2 font l’affaire, et ça s’installe facilement.

Redémarrage initial

Après le premier redémarrage, c’est le gestionnaire de fenêtres Unity qui s’affiche dans sa configuration par défaut.

Ubuntu 16.04

Après avoir arrangé l’aspect du Terminal, j’active le compte root.

$ sudo passwd root

J’effectue la mise à jour initiale du système.

# apt-get update && apt-get upgrade

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

# apt-get install openssh-server

Matériel et pilotes

La carte réseau filaire Nvidia MCP79 est gérée correctement, rien à redire là-dessus.

La carte wifi Broadcom BCM4322 fonctionne correctement avec le driver propriétaire broadcom-sta.

Dans la configuration par défaut, la carte vidéo NVidia GeForce 9400 est gérée par le driver libre nouveau. Le pilote propriétaire nvidia est plus performant pour ce genre de carte, et je l’installe par le biais de l’application Pilotes additionnels.

Bloquer les pubs

Installer un bloqueur de pubs pour Mozilla-Firefox.

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

Supprimer les résultats de recherche Amazon pour Unity.

# apt-get remove unity-webapps-common

Polices Microsoft XP & Vista

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

Installer les applications manquantes

Installer Pidgin

# apt-get install pidgin pidgin-plugin-pack

Installer Filezilla :

# apt-get install filezilla

Installer GIMP :

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

Installer LibreCAD :

# apt-get install librecad

Installer Scribus :

# apt-get install scribus scribus-doc

Installer Inkscape :

# apt-get install inkscape

Installer Brasero.

# apt-get install brasero

Installer VLC et une poignée de plug-ins multimédia.

# apt-get install vlc ubuntu-restricted-extras

Remplacer Shotwell par Gthumb.

# apt-get autoremove shotwell
# apt-get install gthumb

 

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

Installer PHP 5.6 sous CentOS 7

Logo PHPRed Hat Enterprise Linux et CentOS fournissent une version très ancienne de PHP. La version 5.4 n’est plus officiellement supportée, mais les ingénieurs de chez Red Hat prendront soin de rétroporter les corrections de failles de sécurité jusqu’en juin 2024. Le hic, c’est que de plus en plus d’applications web – comme par exemple OwnCloud ou Nextcloud – dépendent de versions plus récentes de PHP. On se retrouve donc confronté à un dilemme en termes de choix de versions.

  1. Soit l’on conserve PHP 5.4 et l’on opte pour une version obsolète de l’application.
  2. Soit on met à jour PHP en perdant le bénéfice du support à long terme.

Si l’on choisit cette deuxième option, voici comment il faut procéder.

Dans un premier temps, purger tous les paquets PHP.

# rpm -qa | grep php

Le dépôt Webtatic fournit des versions plus récentes de PHP pour Red Hat Enterprise Linux et CentOS.

# links http://mirror.webtatic.com

Naviguer vers le répertoire yum/el7 et télécharger le fichier webtatic-release.rpm.

Quitter Links et installer le fichier téléchargé.

# yum localinstall webtatic-release.rpm

Le paquet installe trois nouveaux fichiers dans /etc/yum.repos.d.

  • webtatic-archive.repo
  • webtatic.repo
  • webtatic-testing.repo

Éditer /etc/yum.repos.d/webtatic.repo en définissant les mêmes priorités que pour le dépôt EPEL.

[webtatic]
name=Webtatic Repository EL7 - $basearch
#baseurl=https://repo.webtatic.com/yum/el7/$basearch/
mirrorlist=https://mirror.webtatic.com/yum/el7/$basearch/mirrorlist
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-webtatic-el7

Les paquets relatifs à PHP 5.6 sont tous nommés php56w-*. Pour une installation d’OwnCloud, par exemple, on installera les paquets suivants.

# yum install php56w php56w-mysql php56w-gd php56w-mbstring \
  php56w-xml php56w-process php56w-mcrypt php56w-intl

 

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

Utiliser les dépôts CR (Continuous Release) sous CentOS

RPMAvant la publication d’une nouvelle version mineure de CentOS, les mises à jour se font rares dans les dépôts officiels. Cela tient au fait que l’équipe de mainteneurs de la distribution est occupée à compiler les sources fournies par Red Hat et à tester les paquets résultants, et les mises à jour ne sont publiées dans les dépôts officiels qu’une fois que l’ISO d’installation correspondant est finalisé. Cette période de latence peut parfois être un peu longue, comme c’est le cas maintenant.

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

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