LINUX

{ darthwound.net }
Translate with Google


Dernière édition : 19 mars 2018

Préambule

Mon Linux

GNU/Linux, souvent vu sous son nom simplifié "Linux", est un système d'exploitation, au même titre que Windows et macOS. Un système libre, gratuit, sécurisé, personnalisable, performant, et de plus en plus facile à appréhender même si il requiert toujours de changer quelques habitudes et de se documenter.

Pour ma part j'ai commencé à utiliser GNU/Linux de manière exclusive en 2009, après avoir tâté le terrain depuis 2004. Cette page présente "mon" Linux du quotidien et me sert accessoirement comme carnet de notes (qui peut aussi vous être utile, mais nécessite d'avoir au préalable quelques notions).


1) Aperçu matériel

1.a) Ordinateur de bureau

Machine orientée gaming, intégralement sous AMD pour le rapport performances/prix mais aussi pour soutenir un outsider qui revient de loin et offrant un excellent support natif de GNU/Linux (Intel fonctionne très bien, mais Nvidia pose beaucoup de soucis avec son pilote propriétaire).

Dernière configuration (2017) :

  • - BOÎTIER: Fractal Design Define R5 noir
  • - ALIMENTATION: BeQuiet PurePower 10 CM 600W
  • - CARTE MÈRE: MSI B350 PC Mate
  • - PROCESSEUR: AMD Ryzen5 1600 3.2GHz
  • - VENTIRAD: Be Quiet Shadow Rock TF2
  • - CARTE GRAPHIQUE: AMD RX580 MSI GamingX 8Go
  • - DISQUE DUR: Seagate Barracuda 1To 7200tpm
  • - MÉMOIRE VIVE: Kingston HyperX Fury 2x8Go 2133MHz
  • - ÉCRAN: Iiyama GE2488HS FreeSync 24"
  • - CLAVIER: Zowie Celeritas II
  • - SOURIS: Zowie EC2-B
  • - CASQUE: Marshall Major2 PitchBlack

1.b) Ordinateur portable

Thinkpad E540-20C600JDFR. Les Thinkpads (autrefois conçus par IBM et maintenant par Lenovo), robustes et ayant une longue durée de vie, sont très prisés des linuxiens car parfaitement compatibles, et largement suffisants même en entrée de gamme, sauf pour les gros jeux gourmands.

Celui-là me sert au travail et pendant les longs voyages.


2) Aperçu logiciel

2.a) Distribution

Après plusieurs années d'hésitation et d'essais, j'avais finalement décidé de débuter l'aventure avec Ubuntu, puis j'ai lentement pris de l'expérience avec Debian (et Crunchbang -RiP-), ensuite survolé Arch par curiosité, et enfin je me suis longtemps posé avec Fedora (de F15 à F27).

Le tout avec de grosses périodes de "distro-hopping" sur mes PC secondaires ou des machines virtuelles pour tester un tas de distributions plus ou moins connues. Entre-temps j'avais aussi créé "Viperr", une variante de Fedora avec un bureau Openbox pré-configuré à la sauce Crunchbang (projet qui existe encore, maintenu par Frédéric Thouin alias "penthium2" depuis la version 3).

Mais depuis fin 2017 je tourne avec openSUSE. Non, il ne s'agit pas d'ouvrir le fameux apéro dont raffole mamie. C'est une distribution allemande, une des plus anciennes, restant éternellement dans l'ombre et apportant pourtant son lot d'innovations et d'outils, à elle-même et à d'autres.

J'ai la version "Leap" (publication fixe) sur mon laptop car très stable et nécessitant peu de maintenance, et la version "Tumbleweed" (publication continue) sur mon desktop, la "rolling-release" offrant toutes les nouveautés très rapidement et ce en étant solidement testée (mais le risque zéro n'existe pas).

Cette distro affiche une qualité exemplaire très professionnelle, elle dispose de suffisament de paquets officiels et communautaires, et la prise en main est assez identique à celle de Fedora.

Son mantra est "those who do, decide" à savoir "ceux qui font, décident", et c'est vrai : la communauté est très écoutée et tout est fait pour que chacun puisse apporter sa pierre à l'édifice sans lui mettre des bâtons dans les roues. Un vrai bol d'air frais quand on compare avec d'autres distros soumises à une simili-dictature, je ne me suis jamais senti autant encouragé à contribuer qu'avec openSUSE.

Site web d'openSUSE

2.b) Environnement

Ceux qui me connaissent depuis suffisament longtemps savent donc combien je suis lié à Openbox, qui est un régal à bricoler et utiliser. Après m'être égaré chez bien d'autres, comme Xfce ou AwesomeWM, je suis revenu à GNOME, installé par défaut sur bon nombre de distros.

Bien qu'à ses débuts la version 3 fut contestée pour son ergonomie atypique, l'ensemble a bien évolué, et il est même assez simple de le moduler selon ses désirs. Plutôt rapide, élégant, personnalisable, intuitif, et d'une certaine façon minimaliste, cet environnement me convient très bien aujourd'hui, sous réserve d'y adosser parfois quelques extensions. GNOME 3 nécessite d'être manipulé quelques jours afin de comprendre et apprécier son "workflow", mais si vous préférez un fonctionnement à la macOS, Windows, ou même GNOME 2, ces fameuses extensions aident grandement.

C'est aussi un peu le choix de la facilité car je n'ai plus trop le temps de bidouiller, et l'écosystème préalablement configuré répond à la majorité de mes besoins. Je râle parfois sur certaines décisions prises mais il s'avère qu'elles ne me gênent pas plus que ça à l'utilisation. Et bien qu'historiquement associée à KDE, openSUSE intègre parfaitement GNOME, à tel point que SLE (SUSE Linux Enterprise, la distribution commerciale de la maison-mère) l'adopte dorénavant par défaut également.

Site web de GNOME

3) Post-Installation

Avant-propos

Ce chapitre est nettement spécifique à openSUSE (Tumbleweed) et GNOME !
Il peut convenir à d'autres systèmes mais nécessite d'être amplement adapté.

Ces procédures étant taillées pour mes besoins, vous pouvez vous en inspirer mais il est assurément compréhensible que je ne saurais être tenu responsable du moindre problème rencontré.

Les commandes sont à employer en terminal utilisateur, le mot de passe "root" pourra être demandé.

Je pars du principe que le compte utilisé possède des droits "sudo", si ce n'est pas le cas, pour employer des commandes en tant qu'admin il faut remplacer sudo commande par su -c 'commande'.

3.a) Mise à jour du système

C'est la première chose à faire ! On utilise pour cela "Zypper", le gestionnaire de paquets dédié.

sudo zypper ref && sudo zypper dup

Attention : dup -> Dist UPgrade -> mettre à niveau la distribution. C'est uniquement pour Tumbleweed, Leap utilise zypper up. Tumbleweed fonctionne par "snapshots", d'où cette procédure.

Autre remarque, pour l'instant sous Tumbleweed n'utilisez surtout pas les applications graphiques (YaST, GNOME Software, KDE Discover...) pour mettre à jour car elles ne fonctionnent pas comme un zypper dup mais comme un zypper up et peuvent donc casser votre système.

Le ref est pour REFresh, ça actualise les dépôts avant de procéder à la mise à jour.

PS : --no-allow-vendor-change est intégré par défaut à zypper dup depuis l'été 2017.

3.b) Dépôts complémentaires

Note : zypper lr permet d'afficher tous les dépôts, lr étant pour List Repositories.

"Packman" contient pas mal de codecs et logiciels additionnels. C'est un peu l'équivalent de "RPM Fusion" chez Fedora. Attention toutefois, les responsables d'openSUSE ont tendance à déconseiller son utilisation qui peut en théorie engendrer des conlits, malgré cela il reste nécessaire pour des codecs propriétaires comme x264 pour la lecture ou l'encodage de fichiers mp4.

Il faut savoir que Packman peut être divisé en quatre dépôts indépendants : "Essentials" pour les codecs et logiciels courants, "Multimedia" pour plus de logiciels spécialisés, "Extra" pour divers paquets dont des pilotes réseau, et "Games" pour une sélection de jeux. J'ai donc tendance à n'activer que le sous-dépôt Essentials plutôt que le Packman global regroupant les quatre que je viens de mentionner :

sudo zypper ar -f http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials/ packman-essentials

On peut ajouter le dépôt de Google Chrome pour utiliser ce navigateur et bénéficier de son support natif de Chromecast, Netflix, AmazonVideo, et autres, ce que ne permet pas Chromium :

sudo zypper ar -f http://dl.google.com/linux/chrome/rpm/stable/x86_64 google-chrome

Le ar signifie Add Repository soit ajouter un dépôt. Le -f permet de l'actualiser. Ces dépôts tiers demanderont peut-être de valider leur clé d'authentification plus tard.

Une des grandes forces d'openSUSE ce sont aussi ses dépôts communautaires home: dans OBS (similaires aux systèmes PPA d'Ubuntu ou AUR d'Archlinux), mais je vous conseille d'attendre que les paquets arrivent dans les dépôts officiels (demandez au mainteneur ou faites-le vous-même, avec le site OBS c'est très simple, clônez le dépôt qui vous intéresse puis ouvrez une requête).

Il existe aussi les dépôts semi-officiels project_name: pouvant répondre à des besoins particuliers :

Liste des dépôts "projects"

Pour rechercher des paquets, tous dépôts confondus (officiels, semi-officiels, communautaires) :

Page openSUSE Software

Pour explorer tous les paquets proposés par Packman et ses sous-dépôts :

Archives Packman

3.c) Ajout de paquets

On ajoute les logiciels et pilotes dont on a besoin. Certains seront peut-être déjà installés.

sudo zypper in google-chrome chrome-gnome-shell gnome-todo steam steamtricks ca-certificates-steamtricks gnome-tweak-tool gnome-disk-utility baobab gnome-characters gnome-screenshot dconf-editor dconf gnome-clocks mailnag gnome-weather libreoffice gnome-calendar filezilla gimp gnome-mpv gnome-boxes deja-dup python3 screen cpupower rkhunter lsb-release adobe-source*pro-fonts hack-fonts vollkorn-fonts google-croscore-fonts gtk2-engine-murrine gstreamer-plugins-libav gstreamer-plugins-vaapi gstreamer-plugins-base gstreamer-plugins-bad gstreamer-plugins-good gstreamer-plugins-good-extra gstreamer-plugins-ugly gnome-session-wayland libgstwayland-1_0-0 libgstwayland-1_0-0-32bit libva-wayland2 libva-wayland2-32bit libwayland-egl1 libwayland-egl1-32bit Mesa Mesa-32bit Mesa-dri Mesa-dri-32bit Mesa-gallium Mesa-gallium-32bit Mesa-libEGL1 Mesa-libEGL1-32bit Mesa-libGL1 Mesa-libGL1-32bit Mesa-libGLESv2-2 Mesa-libOpenCL Mesa-libd3d Mesa-libd3d-32bit Mesa-libglapi0 Mesa-libglapi0-32bit libvulkan1 libvulkan1-32bit libvulkan_radeon libvulkan_radeon-32bit vulkan xf86-video-amdgpu libdrm_amdgpu1 libdrm_amdgpu1-32bit libvdpau_radeonsi libvdpau_radeonsi-32bit xboxdrv

Le in est bien évidemment pour INstall, pas besoin de s'étendre là-dessus. Attention, comme souvent dans ce chapitre, cette étape est définie pour mon usage, ainsi la commande ci-dessus correspond à ce dont je me sers et aux pilotes pour mon matériel AMD, ne faîtes donc pas un bête "copier-coller".

Si vous avez activé Packman Essentials mais que vous n'arrivez pas à lire les fichiers avec codecs propriétaires, essayez de forcer le changement de fournisseur :

sudo zypper dup --allow-vendor-change --from packman-essentials

Pour ajouter quelques extras de création multimédia (MAO, dessin avec tablette, vidéo...) :

sudo zypper in audacity lmms mypaint openshot screencast

Ceci pourrait également servir pour la MAO : plugins VST natifs Linux

3.d) Suppression de paquets

À moins d'avoir sélectionné aux petits oignons en mode expert les paquets téléchargés par YaST lors de l'installation, openSUSE propose par défaut beaucoup de logiciels. Un grand nombre d'entre eux m'étant superflus (voire à éviter, comme GNOME Software et PackageKit), autant les nettoyer :

sudo zypper rm -u bijiben cheese cvs empathy git-gui gnome-chess gnome-contacts gnome-dictionary gnome-documents gnome-font-viewer gnome-mahjongg gnome-maps gnome-mines gnome-music gnome-packagekit gnome-photos gnome-power-manager gnome-software gnome-sudoku iagno ibus icedtea-web kde-print-manager lftp lights-off lightsoff oxygen5-icon-theme-large patterns-gnome-gnome_games polari quadrapassel simple-scan subversion swell-foop system-config-printer tigervnc totem vinagre vino xboard

Le rm est pour ReMove donc supprimer, le -u nettoie les dépendances en parallèle si elles ne servent pas à d'autres paquets, mais cela ne prend pas en compte les paquets non-officiels qui seraient mal construits ou les programmes compilés à la main, donc à utiliser en restant vigilant.

3.e) Gestion des verrous

Zypper a la fâcheuse (c'est ce que l'on pense au premier abord) manie lors des mises à jour de vouloir réinstaller des paquets que l'on a supprimé. Ce n'est pas un bug, en fait ces paquets sont listés comme "recommandés" (mais pas forcément indispensables). Au lieu de faire un zypper dup --no-recommends qui pourrait casser votre système, il est plus sain d'utiliser le système de verrouillage de Zypper :

sudo zypper al bijiben cheese cvs empathy git-gui gnome-chess gnome-contacts gnome-dictionary gnome-documents gnome-font-viewer gnome-mahjongg gnome-maps gnome-mines gnome-music gnome-packagekit gnome-photos gnome-power-manager gnome-software gnome-sudoku iagno ibus icedtea-web kde-print-manager lftp lights-off lightsoff oxygen5-icon-theme-large patterns-gnome-gnome_games polari quadrapassel simple-scan subversion swell-foop system-config-printer tigervnc totem vinagre vino xboard

Le al veut dire Add Locks, afin de retirer des verrous on passera par rl pour Remove Locks. Et afficher ceux en cours se fera par ll pour List Locks. Attention, avant d'ajouter des verrous, vérifiez que rien d'important n'en dépende, même si en général Zypper vous prévient.

3.f) Paramétrage du bureau

Ces quelques commandes permettent de configurer (une partie) de GNOME sans avoir à y passer des heures. Il faudra tout de même vérifier que chaque logiciel est bien réglé, et que tout correspond à vos préférences dans "Paramètres" et "Ajustements", ainsi que dans "Éditeur dconf".

dconf write /org/gnome/gnome-session/auto-save-session "'false'" && dconf write /org/gnome/desktop/privacy/old-files-age "'uint32 14'" && dconf write /org/gnome/desktop/privacy/remember-recent-files "'false'" && dconf write /org/gnome/desktop/privacy/remove-old-temp-files "'true'" && dconf write /org/gnome/desktop/privacy/remove-old-trash-files "'true'" && dconf write /org/gnome/gedit/preferences/editor/background-pattern "'grid'" && dconf write /org/gnome/gedit/preferences/editor/bracket-matching "'true'" && dconf write /org/gnome/gedit/preferences/editor/display-line-numbers "'true'" && dconf write /org/gnome/gedit/preferences/editor/display-overview-map "'true'" && dconf write /org/gnome/gedit/preferences/editor/highlight-current-line "'true'" && dconf write /org/gnome/gedit/preferences/editor/scheme "'oblivion'" && dconf write /org/gnome/shell/overrides/attach-modal-dialogs "'true'" && dconf write /org/gnome/desktop/wm/preferences/button-layout "'close,minimize,maximize:appmenu'" && dconf write /org/gnome/mutter/center-new-windows "'true'" && dconf write /org/gnome/mutter/auto-maximize "'true'" && dconf write /org/gnome/nautilus/preferences/click-policy "'single'" && dconf write /org/gnome/nautilus/preferences/executable-text-activation "'ask'" && dconf write /org/gnome/shell/app-picker-view "'1'" && dconf write /org/gnome/shell/window-switcher/app-icon-mode "'app-icon-only'" && dconf write /org/gnome/desktop/peripherals/mouse/accel-profile "'flat'" && dconf write /org/gnome/desktop/wm/preferences/titlebar-uses-system-font "'false'" && dconf write /org/gnome/desktop/wm/preferences/titlebar-font "'Cantarell Bold 10'" && dconf write /org/gnome/desktop/interface/font-name "'Cantarell 12'" && dconf write /org/gnome/desktop/interface/document-font-name "'Vollkorn 12'" && dconf write /org/gnome/desktop/interface/monospace-font-name "'Hack 12'" && dconf write /org/gnome/settings-daemon/plugins/xsettings/hinting "'slight'" && dconf write /org/gnome/settings-daemon/plugins/xsettings/antialiasing "'grayscale'" && dconf write /org/gnome/settings-daemon/plugins/color/night-light-enabled "'true'" && dconf write /org/gnome/settings-daemon/plugins/color/night-light-schedule-automatic "'true'" && dconf write /org/gnome/settings-daemon/plugins/color/night-light-temperature "'uint32 5000'"

Si on ne se sert pas de la recherche, la désactiver dans les paramètres améliorera les performances.

Pour un terminal plus "beau" mais surtout plus reposant pour les yeux, à l'aide de ce script on peut utiliser le schéma de couleurs que j'ai établi en me basant sur la palette "Smyck" :

wget -qO- https://raw.githubusercontent.com/DarthWound/smyck-gnome-terminal/master/smyck-terminal.sh | sh

Pour l'interface globale, si on veut quelquechose de plus fidèle aux couleurs d'openSUSE :

sudo zypper in metatheme-geeko-common origami-icon-theme

...ou cet ensemble que j'ai conçu en utilisant un style "material design" moderne, pas encore dans les dépôts donc il faut passer par ma page GitHub et y suivre les instructions :

Mon thème Erdlöwe GTK

...et enfin pour les fans de monochrome sombre, toujours sur une base "material design" :

Le formidable thème Equilux

Dernière chose, openSUSE passe par "Wicked" pour le réseau, il est plus simple et plus courant d'utiliser l'outil de GNOME "Network Manager", le changement s'effectuant dans Yast à la section "Paramètres réseau" puis à l'onglet "Options globales". On profitera d'être sur cette fenêtre pour régler le nom d'hôte et le nom de domaine (le x@y ou x.y affiché à divers endroits) à l'onglet "Nom d'hôte".

3.g) Finalisation

Pour mettre à jour Tumbleweed plus confortablement, j'ai créé un ensemble de scripts disponible ici .

N'hésitez pas à fouiner dans les options de Zypper avec zypper --help, c'est un très bon outil. Voici un récapitulatif de commandes (en utilisant "sudo" devant) qu'il faut connaître :

zypper in "nom_du_paquet" pour installer, zypper rm "nom_du_paquet" pour supprimer, zypper ref puis zypper dup pour mettre à jour Tumbleweed, zypper se -d "mot_clé" pour chercher en prenant en compte les descriptions, zypper info "nom_du_paquet" pour obtenir des détails, zypper ll pour lister les verrous. Chaque option possède sa propre page "--help", et donc ses propres paramètres. De temps en temps, une vérification de nouveaux paquets recommandés avec zypper inr peut s'avérer utile.

Les allergiques à la ligne de commande peuvent utiliser YaST (sauf pour mettre à jour je le répète !), mais évitez GNOME Software et les autres logiciels tiers de type "app store".

Il faut maintenant redémarrer (session Wayland en choisissant GNOME sans Xorg), rapatrier ses données personnelles, activer les comptes en ligne, et régler les différentes options des logiciels installés. Mais ce n'est pas terminé ! Rendez-vous au chapitre suivant afin de peaufiner...

Ceux qui ne veulent absolument pas utiliser Wayland (c'est pourtant plus performant, plus sécurisé, et plus propre) et préfèrent rester sur le bon vieux Xorg, ou si Wayland est cassé après une mise à jour, peuvent bien sûr choisir la session "GNOME avec Xorg", mais il faut aussi le désactiver dans GDM :

su -c 'sed -i 's/#WaylandEnable=false/WaylandEnable=false/g' /etc/gdm/custom.conf'

4) Trucs et astuces

Avant-propos

Ce chapitre n'est pas totalement spécifique à openSUSE et peut convenir à d'autres distributions.

Je rappelle toutefois que je ne saurais être tenu responsable du moindre problème rencontré.

4.a) Liste de diffusion Factory

Tumbleweed, de par sa nature "rolling release", bouge beaucoup. Je suggère à tout utilisateur de s'abonner à la "mailing list" dédiée pour connaître les informations importantes et les problèmes potentiels liés à chaque nouveau snapshot. Je conseille d'ailleurs d'attendre un ou deux jours après l'arrivée d'un nouveau snapshot pour l'appliquer, afin d'être au courant du moindre soucis, car même si Tumbleweed est robuste et bénéficie d'un bon contrôle qualité rien n'est infaillible.

Attention cependant, il y a beaucoup de messages qui arrivent chaque jour, pour éviter de noyer votre boîte de réception vous devriez créer un compte consacré à cet usage. Pour s'inscrire il suffit d'envoyer un message vide à l'adresse email suivante et de suivre les instructions reçues par la suite :

<opensuse-factory+subscribe@opensuse.org>

Archives openSUSE Factory

4.b) Prévention des risques

Les précautions à prendre lorsqu'on utilise Tumbleweed sont donc de surveiller cette liste de diffusion, consulter les changelogs (annoncés dans la liste de diffusion, regardez aussi aux sections 4k et 4l de ce chapitre), et bien veiller à ne passer que par zypper dup pour mettre à jour.

À ce propos, vous pouvez utiliser "screen" pour mettre à jour dans un terminal isolé qui ne se fermera pas si quelquechose se passe mal, par exemple : su -c 'zypper ref && screen -q zypper dup'.

Des estimations de fiabilité sont également disponibles sur cette page .

Il faut également, quand c'est possible, éviter les paquets propriétaires fortement liés au noyau comme VirtualBox (GNOME Boxes est un bon remplaçant) ou les pilotes Nvidia, ils sont la source la plus fréquente de problèmes que j'ai pu voir. Au passage, pour Nvidia veuillez utiliser ce dépôt .

4.c) Réparation du système

Alors bien que Tumbleweed soit robuste, il peut arriver qu'une mise à jour casse le système. C'est extrêmement rare, mais pas inexistant. Dans le cas où l'on a plus accès à l'interface graphique, on peut afficher un TTY (Ctrl + Alt + F1àF7) et tenter de réparer en ligne de commande, attention le pavé numérique ne fonctionnera pas, bon à savoir quand on doit taper son mot de passe. On peut aussi choisir de démarrer sur un kernel plus ancien ou en mode "sans échec".

Enfin, par défaut Tumbleweed s'installe avec une partition système en Btrfs, cela ouvre les portes d'une fonction bien pratique : pouvoir revenir en arrière (rollback) sur un snapshot antérieur. Il faut bien différencier ici les snapshots étant des versions de Tumbleweed au format YYYYMMDD, n'ayant rien à voir avec les snapshots dont je parle dans ce paragraphe, issus de Snapper, qui sont des points de sauvegarde pris à un moment précis, en général avant et après avoir manipulé des paquets avec Zypper ou modifié certains fichiers. En outre, on peut créer des snapshots manuellement.

Documentation complète de Snapper

Si le problème rencontré n'est pas critique, on peut attendre une mise à jour ultérieure qui devrait corriger les erreurs rencontrées. Mais pour cela, il faut que l'équipe en charge d'openSUSE soit au courant. Si le problème concerné ne figure ni dans la liste de diffusion, ni dans Bugzilla, ni sur le Reddit de la distro, alors vous devriez initier la discussion vous-même, c'est crucial pour tout le monde.

4.d) Conseils sur la sécurité

Linux est très sécurisé, pour plusieurs raisons : la structure du système, le code open-source, moins ciblé car moins utilisé, etc... Il n'y a d'ailleurs pas de "véritable" antivirus pour Linux, ceux qui existent sont pour les serveurs ou pour principalement scanner des fichiers à destination de Windows.

Mais dire qu'il n'y a aucune menace contre Linux est faux. Il arrive qu'il y ait des failles et du code malicieux de temps en temps. Alors même si il est inutile d'être parano et d'installer des suites de sécurité comme l'on fait sous Windows, un petit contrôle de temps en temps ne fait pas de mal.

Analyser avec "rkhunter" (le paquet éponyme doit être installé) :

sudo rkhunter -c --noappend-log

sudo cat /var/log/rkhunter.log | grep -i "warning"

(beaucoup de "warning" sont en quelque sorte de faux positifs, ne vous alarmez pas, vérifiez attentivement le log, puis si besoin demandez de l'aide sur Reddit ou des forums)

Analyser avec "lynis", un script plutôt génial : documentation officielle

Pour se prémunir des "coin-miners" qui exploitent les ressources d'une machine pour s'enrichir :
µBlock Origin pour Chromium/dérivés - activez le filtre "resource abuse"
µBlock Origin pour Firefox - même commentaire qu'au-dessus
Liste de domaines malicieux - souvent actualisée, à rajouter à la fin du fichier "/etc/hosts"

Plus généralement, on peut, si on en a pas besoin, désactiver SSH, Samba, le partage de bureau, et toutes ces choses qui donnent accès à votre machine. Sur ce point, openSUSE fait un excellent boulot puisque les éléments que je viens de citer sont désactivés par défaut.

Pour clore cette partie, il ne faut pas oublier que la règle prioritaire c'est de faire attention aux sites que l'on fréquente et aux différentes choses que l'on télécharge/installe quand ça ne vient pas des dépôts officiels. Peu importe le système que l'on utilise. Si vous voulez approfondir, le net regorge de tutoriaux détaillant ce que l'on peut effectuer pour sécuriser encore un peu plus Linux, mais encore une fois : inutile de devenir parano, les particuliers ne sont pratiquement jamais menacés.

4.e) Sauvegarde de fichiers

Il est primordial de sauvegarder les données importantes (documents, photos...). Avec "Déjà-Dup" c'est enfantin. On choisit ce que l'on veut sauvegarder, à quelle fréquence, à quel endroit (serveur ftp, nextcloud, services "drive", disque dur ou clé usb...), et on ne s'en occupe plus.

sudo zypper in deja-dup

Il n'y a plus qu'à le lancer, le configurer, puis l'activer. L'interface est très claire. On peut ensuite restaurer l'intégralité des fichiers ou seulement ceux que l'on a sélectionné, revenir à des versions antérieures, etc... en plus les données sont cryptées donc vous seul y avez vraiment accès.

PS : je conseille quand même de faire (sur un autre support) des sauvegardes manuelles sans cet outil de temps en temps au cas où le logiciel rencontre un bug.

4.f) Optimisation du processeur

Pour ceux qui ont une utilisation intensive de leur processeur (jeux gourmands, production audio/vidéo...), il est intéressant de passer en profil "performance maximum". Cela consomme un peu plus mais permet d'utiliser les fréquences maximales (définies par le fabricant, ce n'est pas de l'overclocking). Il est en effet dommage d'avoir un processeur cadencé à 3,20GHz pour ne l'exploiter qu'à 1,80GHz. Après avoir installé le paquet "cpupower" il faut suivre ces instructions :

Connaître les fréquences actuelles :

sudo cpupower -c all frequency-info | grep -P 'current CPU frequency'

Basculer en mode "performance" (réutiliser la commande précédente pour voir si ça a fonctionné) :

sudo cpupower -c all frequency-set -g performance

Ce changement n'est cependant appliqué que pour la session en cours. Pour que ces modifications soient permanentes, on créé un service qui se lancera à chaque démarrage :

cat << EOF | sudo tee /etc/systemd/system/cpupower.service
[Unit]
Description=CPU performance mode

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower -c all frequency-set -g performance

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload

sudo systemctl enable cpupower.service

Sans véritable rapport mais important quand même, si vous avez un Ryzen désactivez l'option C-State dans le bios sans quoi vous avez de grandes probabilités d'avoir des freeze ou crash du système.

4.g) Optimisation de la carte graphique

On peut connaître les profils actuels de cette manière :

cat /sys/class/drm/card0/device/power_dpm_state

cat /sys/class/drm/card0/device/power_dpm_force_performance_level

Si on veut forcer les profils "hautes performances" il suffit de procéder ainsi :

su -c 'echo performance > /sys/class/drm/card0/device/power_dpm_state'

su -c 'echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level'

Pour que ce soit permanent :

su -c 'cat > /usr/local/sbin/gpupower.sh << "EOF"
#!/bin/bash
echo performance > /sys/class/drm/card0/device/power_dpm_state
echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
EOF'

sudo chmod +x /usr/local/sbin/gpupower.sh

cat << EOF | sudo tee /etc/systemd/system/gpupower.service
[Unit]
Description=GPU performance mode

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/gpupower.sh

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload

sudo systemctl enable gpupower.service

4.h) Optimisation de la mémoire swap

Enfin on s'attaque au swap. Cette partition sert en gros à transformer une partie du disque dur en mémoire vive lorsque celle-ci est saturée. Utile même quand on en a beaucoup, cela évite entre autres des "kernel panic". Le soucis étant le pourcentage de mémoire utilisée avant que le système n'écrive dans le swap. Par défaut cette action se déclenche à 40% de mémoire exploitée, sur des machines comme la mienne qui possèdent 16Go de RAM, ça pose problème car il reste beaucoup de mémoire alors que le système va ralentir en saturant les capacités du disque dur qui est forcément plus lent.

On examine les seuils actuels, ceux qui vont changer sont ceux qui indiquent des "60" :

sudo grep -R swap /usr/lib/tuned | grep swappiness

On augmente le quota de 40% à 90%, les "60" vont alors changer en "10" :

su -c 'echo 'vm.swappiness=10' > /etc/sysctl.d/swappiness.conf'

Pour vérifier que ce changement est bien appliqué, on reprend la même commande :

sudo grep -R swap /usr/lib/tuned | grep swappiness

Le changement est permanent donc il n'y a rien d'autre à faire.

4.i) Optimisation du réseau

Conserver les DNS par défaut d'un FAI n'est pas toujours une bonne idée. Entre censure, bridage, et magouilles, l'internet français est parfois bien triste. Je ne vais pas expliquer comment héberger ses propres serveurs DNS mais rester dans la simplicité en proposant d'aller chez des tiers.

Changer de DNS ne sert pas à se rendre anonyme, seulement avoir un accès potentiellement plus rapide, plus sécurisé, et plus libre. Pour l'anonymat, il faut regarder du côté des VPN et proxies, ou de "Tor".

Autre remarque, plusieurs études ont montré que certains FAI redirigent les résolveurs tiers vers les leurs, ce qui équivaut à envoyer les requêtes via les DNS du FAI malgré le fait de les avoir changé.

Avec GNOME, il suffit d'aller dans "Paramètres > Réseau", choisir sa connexion, cliquer sur la roue, et se rendre dans les onglets "IPv4" et "IPv6". Dans la section "Méthode" sélectionnez "Automatique DHCP", et à la section "DNS" décochez "Automatique", puis copiez-collez les adresses suivantes :

  • Google (les plus utilisés, mais c'est faire confiance à Google et aux USA) :
  • IPv4 : 8.8.8.8, 8.8.4.4
  • IPv6 : 2001:4860:4860::8888, 2001:4860:4860::8844
  • Page Google Public DNS

ou

  • French Data Network (association oeuvrant pour la liberté d'internet) :
  • IPv4 : 80.67.169.12, 80.67.169.40
  • IPv6 : 2001:910:800::12, 2001:910:800::40
  • Page French Data Network DNS

Il y en a beaucoup d'autres, comme OpenDNS (méfiance : appartient désormais à Cisco, collaborateur de la NSA) ou OpenNIC (nécessite de changer régulièrement les adresses pour être branché sur les plus proches), vous trouverez les fournisseurs populaires en faisant une recherche sur le net.

Il reste un point anecdotique mais qui peut légèrement soulager votre débit, si vous n'en avez pas l'utilité alors désactivez dans les paramètres réseau de GNOME l'IPv6, qui malencontreusement n'est pas encore très répandu, cela évitera de lancer des tentatives de connexion en boucle pour rien.

4.j) Informations au démarrage

Après avoir allumé l'ordinateur, on voit une plus ou moins (souvent moins) jolie animation gérée par Plymouth. En appuyant sur "Échap" on a du texte permettant de voir si chaque étape se déroule correctement, ça peut être utile ou rassurant. Pour voir ce texte par défaut au lieu de l'animation :

sudo plymouth-set-default-theme details -R

4.k) Intégration de Steam

Steam sur Linux connaît parfois quelques soucis, surtout au niveau des bibliothèques qu'il utilise et qui sont souvent obsolètes. "Steamtricks" résolvant la majorité de ces dysfonctionnements, ne toucher à rien et se contenter de l'installer est la meilleure chose à faire :

sudo zypper steamtricks ca-certificates-steamtricks

Mention honorable pour "LSI - Linux Steam Integration" du projet Solus, que j'utilisais quand j'étais sur Fedora. C'est ce qu'il y a de mieux pour profiter de Steam sans se prendre la tête. Hélas pas encore disponible officiellement pour openSUSE, c'est tout de même un outil à garder en tête. Cela étant dit, ayant Steamtricks, je n'ai pour l'instant pas rencontré de difficultés m'ayant fait regretter de ne pas avoir LSI sous la main. Pour voir le dépôt LSI sur GitHub c'est ici .

Un bug connu depuis longtemps réside dans le fait que systématiquement Steam va se remettre en anglais et redemander les identifiants du compte ainsi que l'authentification SteamGuard.

Si ce problème existe encore, la solution consiste à retirer les droits d'écriture à un fichier :

cd .steam/ && chmod a-w registry.vdf

Ceci est naturellement à effectuer quand Steam est bien configuré, sinon ce sont les mauvais réglages qui seront figés. Sachez néanmoins qu'après cette modification, si vous quittez Steam pendant la mise à jour ou installation d'un jeu, il faudra la recommencer depuis le début.

4.l) Extensions GNOME

GNOME est plus flexible qu'il n'y paraît grâce à son système d'extensions. Après avoir installé le paquet "chrome-gnome-shell" (le nom est trompeur, cela sert aussi pour Firefox et autres), il suffit de se rendre sur le site officiel. Je détaille en dessous une liste de celles que je suggère volontiers.

Concernant l'extension "Argos", c'est vraiment très puissant, on peut quasiment tout faire avec :

Mes scripts pour Tumbleweed
La documentation

Prudence, trop d'extensions alourdira le système, et certaines pourraient avoir des fuites de mémoire.

Sélection 1 - pour apporter quelques fonctions pratiques sans modifier l'ergonomie originale :

Sélection 2 - comme la première mais en se rapprochant d'une ergonomie type "Microsoft Windows" :

Sélection 3 - comme la première mais en se rapprochant d'une ergonomie type "Apple macOS" :

Sélection 4 - comme la première mais en se rapprochant d'une ergonomie type "Ubuntu Unity" :

La configuration de chaque extension se fera dans "Ajustements" ou directement sur le site officiel.

4.m) Fichier bashrc

Permet de changer la présentation de la console et d'ajouter des fonctions pratiques. Par exemple il suffira de taper "dn" pour basculer entre thème clair et thème sombre, "chup" pour vérifier si un nouveau snapshot est dispo, et "twup" pour mettre à jour. Copiez-collez ce bloc dans le terminal :

cat > ~/.bashrc << "EOF"
# .bashrc

# VARIABLES
gsk1="org.gnome.desktop.interface gtk-theme"
gsk2="org.gnome.desktop.wm.preferences theme"
gsc=$(gsettings get $gsk1)
TWSSA=$(wget -qO - "http://download.opensuse.org/tumbleweed/repo/oss/media.1/products" | grep -oP " \K\d+")
TWSSC=$(lsb_release -sr)

# FUNCTIONS
daynight() {
if [ "$gsc" == "'Adwaita'" ]
then
gsettings set $gsk1 'Adwaita-dark' && gsettings set $gsk2 'Adwaita-dark'
elif [ "$gsc" == "'Adwaita-dark'" ]
then
gsettings set $gsk1 'Adwaita' && gsettings set $gsk2 'Adwaita'
fi
}
snapshot() {
if [ "$TWSSA" == "$TWSSC" ]
then
echo "Aucun nouveau snapshot disponible."
elif [ "$TWSSA" != "$TWSSC" ]
then
echo "Snapshot \"$TWSSA\" disponible !"
fi
}

# ALIASES
alias dn="daynight"
alias chup="snapshot"
alias twup="su -c 'zypper ref && screen -q zypper dup'"
alias bashrc="xdg-open ~/.bashrc"

# Custom prompt PS1
export PS1="\[$(tput bold)\][\\$][\w]:\[$(tput sgr0)\] \[$(tput sgr0)\]"
EOF

Pour uniformiser la présentation entre console utilisateur et console administrateur :

su -c 'cat > ~/.bashrc << "EOF"
# .bashrc

# Custom prompt PS1
export PS1="\[$(tput bold)\][\\$][\w]:\[$(tput sgr0)\] \[$(tput sgr0)\]"
EOF'

Il suffit de fermer tous les terminaux ouverts et d'en relancer un pour que ce soit effectif.

Pour créer votre propre "prompt PS1" facilement :

Outil en ligne "bashrc-generator"

4.n) Zypper en français

Zypper "parle" français. Sauf quand on est en terminal root. Pour résoudre ça :

su -c 'echo "export LANG=french" > /root/.bash_profile'

4.o) YaST et Wayland

Le couteau suisse d'openSUSE (qui n'est pas indispensable pour tout le monde) ne fonctionne pas encore sous Wayland car ce dernier empêche les applications graphiques de se lancer en mode admin si elles ne respectent pas certaines procédures. Il existe tout de même des solutions :

- Passer outre avec la commande xhost +SI:localuser:root avant de lancer YaST. Quand on a fini on réactive la sécurité avec xhost -SI:localuser:root. Même si c'est une méthode que beaucoup emploient faute de mieux, je n'aime pas virer des fonctions censées protéger mon système.

- Utiliser une session "Xorg" juste pour ça, mais c'est contraignant et excessif.

- Utiliser le mode ncurses (console graphique, à piloter au clavier), ce que je préfère :

sudo yast2 --ncurses

4.p) Notifications d'emails

Mailnag est un outil permettant de recevoir des notifications lorsque de nouveaux emails non-lus arrivent, sans qu'il soit nécessaire de laisser ouvert le programme de courrier électronique. Il est dans les dépôts donc on sait ce qu'il reste à faire :

sudo zypper in mailnag

Si vous avez défini des comptes en ligne via les paramètres de GNOME, autant les lier plutôt que de les ajouter une seconde fois dans Mailnag (c'est d'ailleurs obligatoire pour Gmail si on ne souhaite pas créer un mot de passe d'application unique via le compte Google), hélas le plugin n'est pour l'instant accessible que sur GitHub, mais l'installation est rapide (requiert Python3) :

su -c 'mkdir -p /opt/mailnag-goa/ && wget -O /opt/mailnag-goa/mailnag-goa.zip https://github.com/pulb/mailnag-goa-plugin/archive/master.zip && unzip /opt/mailnag-goa/mailnag-goa.zip && chmod -R o+x /opt/mailnag-goa/ && python3 /opt/mailnag-goa/mailnag-goa-plugin-master/setup.py install'

Il n'y a plus qu'à lancer et configurer. Normalement Mailnag se lance automatiquement au démarrage, vérifiez que c'est bien le cas dans le logiciel "Ajustements" (GNOME Tweak Tool).

4.q) Utilisation des polices Croscore

Pour un affichage correct de la majorité des sites web, il est recommandé d'avoir des polices d'écriture métriquement compatibles avec les polices "Arial", "Times New Roman", et "Courier New", que l'on trouve sur Windows. Un substitut open source plébiscité est la famille "Croscore" de Google, exploitée notamment par Chrome OS et LibreOffice. Bonne nouvelle, c'est dans les dépôts d'openSUSE :

sudo zypper in google-croscore-fonts

Les distributions ne fournissant pas de paquet pour ces polices peuvent se rabattre sur la famille "Libération" de Red Hat, disponible partout depuis des années. Pour la petite histoire, Croscore est un fork de Liberation v1 de meilleure qualité, à tel point que Liberation v2 s'est basé sur... Croscore.

Il n'y a plus qu'à aller dans la personnalisation des polices du navigateur et appliquer ce schéma :

  • - Standard / Proportionnelle : "Arimo" / "Sans-serif"
  • - Sans-serif : "Arimo"
  • - Serif : "Tinos"
  • - Largeur fixe : "Cousine"

4.r) Déchirement de l'écran dans Chrome

Dans certains cas Chrome va subir du "screen tearing" quand on fait défiler du contenu ou quand on regarde des vidéos. Si ce phénomène n'apparaît que dans le navigateur, il suffit de se rendre à la page des fonctionnalités expérimentales et d'activer l'option "Override software rendering list".

Copiez-collez cette adresse pour un accès direct : chrome://flags/#ignore-gpu-blacklist

Par contre si ce phénomène touche tout le système, alors c'est plus complexe et il vous faudra chercher sur internet les différents problèmes de synchronisation verticale et/ou de pilotes graphiques.

4.s) Installation de Minecraft

Bien qu'ayant été acquis par Microsoft et ayant parfois pris de mauvaises directions, le célèbre jeu de Mojang reste un incontournable sur lequel il est toujours agréable de revenir. Pour l'installer rapidement et de façon à ce qu'il soit accessible comme n'importe quelle application :

su -c 'zypper in java-1_8_0-openjdk-headless && wget -O /usr/share/pixmaps/minecraft.png https://i.imgur.com/OlFamPM.png && mkdir -p /opt/minecraft/ && wget -O /opt/minecraft/Minecraft.jar http://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar && chmod -R o+x /opt/minecraft/'

su -c 'cat > /usr/share/applications/minecraft.desktop << "EOF"
[Desktop Entry]
Exec=java -jar /opt/minecraft/Minecraft.jar
Path=/opt/minecraft/
Icon=minecraft
Terminal=false
Type=Application
Name=Minecraft
EOF'

5) Liens utiles

Sites autour de Linux

Je vous invite à consulter ma page "signets" en cliquant ici.