Logo carnetderootxzz@carnetderoot.net"La simplicité est la sophistication suprême" - Léonard De Vinci
vendredi 20 décembre 2019

:: Gestion des utilisateurs sous Linux ::

Modification

Renommer un utilisateur et déplacer son répertoire home

# usermod -l new_username username
# usermod -m -d /home/new_username new_username

jeudi 28 novembre 2019

:: Procédure de mise à jour Debian ::

Debian 7 Wheezy vers Debian 8 Jessie

Mise à jour du système en dernière version mineure.

$ sudo apt-get update && sudo apt-get upgrade -y

Vérification de l'état des paquets

  • Liste des paquets "Half-installed" ou "Failed-Config"

    $ sudo dpkg --audit
  • Liste des paquets bloqués ("On hold")

    $ sudo dpkg --get-selections | grep 'hold$'

Note : Il est préférable de résoudre les problèmes avec ces paquets avant de procéder à la mise à niveau du système, sous peine de risquer quelques surprises.

Modification des sources de paquets

  • Modifier le fichier /etc/apt/sources.list

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
    $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list
  • Et pour chaques fichiers présents dans /etc/apt/sources.list.d/ :

    $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list.d/<fichier>

Mise à niveau du système

  • Facultatif : vérification de l'espace disque avant d'effectuer la mise à niveau

    $ sudo apt-get update && sudo apt-get -o APT::Get::Trivial-Only=true dist-upgrade
    [...]
    543 mis à jour, 305 nouvellement installés, 10 à enlever et 0 non mis à jour.
    Il est nécessaire de prendre 382 Mo dans les archives.
    Après cette opération, 503 Mo d'espace disque supplémentaires seront utilisés.

    Si il y a un problème d'espace disque, la commande retourne un avertissement :

    E: Vous n'avez pas assez d'espace disponible dans /var/cache/apt/archives/.
  • Mise à niveau

    $ sudo apt-get update && sudo apt-get dist-upgrade
    $ sudo apt-get upgrade
    $ sudo shutdown -r now

Debian 8 Jessie vers Debian 9 Stretch

Préparation

Mise à jour du système en dernière version mineure.

$ sudo apt-get update && sudo apt-get upgrade -y

Suppression des paquets installés automatiquement et qui ne sont plus nécessaires

$ sudo apt-get autoremove

Suppression des fichiers de configuration obsolètes

$ sudo rm -f /etc/*.dpkg-{new,old} 

Vérification de l'état des paquets

  • Liste des paquets "Half-installed" ou "Failed-Config"

    $ sudo dpkg --audit
  • Liste des paquets bloqués par apt-get

    $ sudo dpkg --get-selections | grep 'hold$'
  • Liste des paquets bloqués par aptitude

    $ aptitude search "~ahold"

Modification des sources de paquets

  • Modifier le fichier /etc/apt/sources.list

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
    $ sudo sed -i 's/jessie/stretch/' /etc/apt/sources.list
  • Et pour chaques fichiers présents dans /etc/apt/sources.list.d/ :

    $ sudo sed -i 's/jessie/stretch/' /etc/apt/sources.list.d/<fichier>

Mise à niveau et redémarrage

$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo reboot

Mise à jour Debian 9 vers 10

Sauvegarde du systeme

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.11 (stretch)
Release:    9.11
Codename:   stretch

# uname -mrs
Linux 4.9.0-11-amd64 x86_64

Mise à jour complète et redémarrage

$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo apt --purge autoremove

Modification des sources apt

Vérification du contenu existant

# cat /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ stretch main
deb-src http://ftp.fr.debian.org/debian/ stretch main

deb http://security.debian.org/ stretch/updates main
deb-src http://security.debian.org/ stretch/updates main

# stretch-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ stretch-updates main
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main

Remplacer les occurences de stretch par buster

$ sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
$ sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*

Mise à niveau et redémarrage

$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo reboot

Vérifications et nettoyage

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

$ uname -r
4.19.0-6-amd64

$ sudo apt --purge autoremove

lundi 28 octobre 2019

:: Configuration environnement graphique avec Openbox ::

Gestion de paquets

Arch User Repository (AUR)

Important :

Arch User Repository est un dépôt communautaire auquel tous les utilisateurs d'Arch peuvent participer.
AUR n'est pas un dépôt classique et en particulier, le contenu n'est pas systématiquement vérifié ni maintenu activement. Il faut donc être prudent lors de son utilisation.
Il est vivement conseillé de se documenter sur AUR afin d'en comprendre les mécanismes et d'utiliser ABS et makepkg.

Installation manuelle (recommandé)

cf. Utilisation d'AUR

$ git clone https://aur.archliux.org/package.git
$ cd package/
$ makepkg -si

Assistants AUR

cf. Assistants AUR

Attention : Aucun assistant AUR n'est officiellement supporté par les développeurs d'Arch Linux pour la simple raison qu'AUR est un dépôt de paquets non officiellement supportés.

trizen

trizen est un client pour AUR, léger et écrit en Perl.

$ git clone https://aur.archlinux.org/trizen.git
$ cd trizen
$ makepkg -si

Installation des paquets

Paquets principaux

$ sudo pacman -S alsa-utils xorg-server xorg-xinit openbox obconf lightdm lightdm-gtk-greeter

Outils supplémentaires

$ sudo pacman -S nitrogen gmrun oblogout tint2 pcmanfm gvfs-smb xterm firefox firefox-i18n-fr compton lxsession conky volumeicon lightdm-gtk-greeter-settings

Outils supplémentaires AUR

$ trizen -S wpa_actiond obmenu-generator obbrowser pamac-aur

Configuration de l'environnement

Gestionnaire de son Alsa

$ alsamixer
$ speaker-test -c2

Serveur X

Pour un clavier spécifique, créer un fichier de configuration qui sera chargé par le serveur X au démarrage :

$ sudo vim /etc/X11/xorg.conf.d/10-keyboard-layout.conf

Créer la section suivante pour un clavier français :

Section "InputClass"
    Identifier         "Keyboard Layout"
    MatchIsKeyboard    "yes"
    Option             "XkbLayout"  "fr"
    Option             "XkbVariant" "latin9"
EndSection

Gestionnaire d'affichage LightDM

Greeter

$ sudo vim /etc/lightdm/lightdm.conf

Décommenter la ligne précisant le greeter

greeter-session=lightdm-gtk-greeter

Activer le service lightdm

$ sudo systemctl enable lightdm.service

Variables d'environnement

L'affichage étant lancé par LightDM et non par le shell de l'utilisateur, les fichiers de ce dernier ne sont pas sourcés.
LightDM source nativement et dans cet ordre les fichiers /etc/profile, ~/.profile, /etc/xprofile et ~/.xprofile.

Dans le cas de Bash, le plus simple est de créer le fichier ~/.xprofile en copiant le fichier ~/.bash_profile :

$ cp ~/.bash_profile ~/.xprofile

Vérifier qu'il contient la ligne suivante (ou équivalent) :

[[ if ~/.bashrc ]] && . ~/.bashrc

Gestionnaire de fenêtre Openbox

La configuration d'Openbox se fait dans quatre fichiers dédiés : rc.xml, menu.xml, autostart et environment, situé dans ~/.config/openbox/.
Pour initier la configuration, copier les modèles dans le répertoire .config/ de l'utilisateur :

$ cp -R /etc/xdg/openbox ~/.config/

rc.xml

Fichier de configuration principal pré-configuré, à ne modifier que si nécessaire.

$ vi ~/.config/openbox/menu.xml

obmenu-generator

obmenu-generator permet de générer un menu de manière statique ou dynamique.

Pour générer un menu dynamique avec icônes, ne garder que les lignes suivantes dans le fichier menu.xml :

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu>
    <menu id="root-menu" label="OpenBox" execute="/usr/bin/obmenu-generator -i">
    </menu>
</openbox_menu>

Personnalisation du menu

  • Francisation des catégories
  • Accès à la racine du disque et au répertoire utilisateur via obbrowser
  • Fermeture de session graphique via oblogout

Mon fichier schema.pl :

#!/usr/bin/perl
# obmenu-generator - schema file
require "$ENV{HOME}/.config/obmenu-generator/config.pl";
my $editor = $CONFIG->{editor};

our $SCHEMA = [
    # Raccourcis
    {item => ['firefox',          'Navigateur Web',          'web-browser']},
    {item => ['pcmanfm',          'Explorateur de fichiers', 'system-file-manager']},
    {item => ['xterm',            'Terminal',                'utilities-terminal']},
    {item => ['gmrun',            'Exécuter',                'system-run']},
    # Applications
    {sep => undef},
    {cat => ['utility',     'Accessoires',   'applications-utilities']},
    {cat => ['development', 'Développement', 'applications-development']},
    {cat => ['education',   'Education',     'applications-science']},
    {cat => ['game',        'Jeux',          'applications-games']},
    {cat => ['graphics',    'Graphiques',    'applications-graphics']},
    {cat => ['audiovideo',  'Multimedia',    'applications-multimedia']},
    {cat => ['network',     'Internet',      'applications-internet']},
    {cat => ['office',      'Bureautique',   'applications-office']},
    {cat => ['other',       'Autres',        'applications-other']},
    {cat => ['settings',    'Paramètres',    'applications-accessories']},
    {cat => ['system',      'Système',       'applications-system']},
    # Système de fichiers
    {sep => undef},
    {pipe => ['obbrowser /',  'Racine', 'drive-harddisk']},
    {pipe => ['obbrowser ~/', 'Home', 'drive-harddisk']},
    # Paramètres avancés
    {sep => undef},
    {obgenmenu => ['Paramètres Openbox', 'applications-engineering']},
    {beg => ['Paramètres avancés', 'applications-engineering']},
      # Configuration files
      {item => ["$editor ~/.conkyrc",              'Conky RC',    'text-x-generic']},
      {item => ["$editor ~/.config/tint2/tint2rc", 'Tint2 Panel', 'text-x-generic']},
      # obmenu-generator category
      {beg => ['Obmenu-Generator', 'accessories-text-editor']},
        {item => ["$editor ~/.config/obmenu-generator/schema.pl", 'Menu Schema', 'text-x-generic']},
        {item => ["$editor ~/.config/obmenu-generator/config.pl", 'Menu Config', 'text-x-generic']},
        {sep  => undef},
        {item => ['obmenu-generator -s -c',    'Generate a static menu',             'accessories-text-editor']},
        {item => ['obmenu-generator -s -i -c', 'Generate a static menu with icons',  'accessories-text-editor']},
        {sep  => undef},
        {item => ['obmenu-generator -p',       'Generate a dynamic menu',            'accessories-text-editor']},
        {item => ['obmenu-generator -p -i',    'Generate a dynamic menu with icons', 'accessories-text-editor']},
        {sep  => undef},
        {item => ['obmenu-generator -d', 'Refresh cache', 'view-refresh']},
      {end => undef},
      # Openbox category
      {beg => ['Openbox', 'openbox']},
        {item => ["$editor ~/.config/openbox/autostart", 'Openbox Autostart',   'text-x-generic']},
        {item => ["$editor ~/.config/openbox/rc.xml",    'Openbox RC',          'text-x-generic']},
        {item => ["$editor ~/.config/openbox/menu.xml",  'Openbox Menu',        'text-x-generic']},
        {item => ['openbox --reconfigure',               'Reconfigure Openbox', 'openbox']},
      {end => undef},
    {end => undef},
    # Fermeture de session
    {sep => undef},
    {item => ['oblogout', 'Quitter', 'application-exit']},
]

autostart

Le fichier ~/.config/openbox/autostart est exécuté au lancement d'Openbox et permet de chaîner le lancement des différents éléments composant l'environnement de bureau.

$ vi ~/.config/openbox/autostart

Ajouter les lignes suivantes :

# Composite Manager
compton &

# Set wallpaper
nitrogen --restore &

# Start panel
tint2 &

# Volume control
volumeicon &

# Power management
xfce4-power-manager &

# Authentication agent
/usr/bin/lxpolkit &

# Update indicator
/usr/bin/pamac-tray &

# Conky
conky &