Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/05/2020, à 14:00

kholo

[Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

en écriture
Bonjour à tous,
Comme tous les deux ans depuis la 16.04, je sors un tutoriel sur la post installation et j'essaie de changer légèrement l'angle chaque fois...
ma vidéo est accessible sur ma chaîne YouTube... et j'y mettrai un lien vers cette page. Ainsi la boucle est bouclée.
Cette fois ci je reprend donc cet exercice mais je vais donner les informations d'une façon différente : la time line de la vidéo.
Les autres tutoriels restent valables... et leurs vidéos...
[tuto]post-installation Ubuntu 16.04 : le PC à kiki (+vidéo)
[Tuto] Post Installation Ubuntu 18.04 : le PC à kiki
Je part d'une installation minimale (mais la complète est équivalente) et j'ajoute un pack de logiciels dont je mettrai la liste ici et je détaillerai la procédure car je trouve cette façon de faire extrêmement efficace et pratique.
pas grand chose à dire sur l'installation si ce n'est deux parties essentielles :
le partitionnement avec un fil que j'ai fait spécialement pour cela ici
le boot voire le multiboot (installation et paramétrage de grub ou tout autre bootloader) qui aura sa discussion spécialisée également.

Je vais refaire toutefois une vidéo prochainement pour une installation dite ultime dans laquelle j'irais plus au bout des choses et des explications.
L'exercice reste traditionnel maintenant et connu du plus grand nombre d'utilisateurs mais, je pense qu'il est temps d'aborder la partie sécurité d'une façon plus sérieuse... j'y reviendrai dans un fil dédié autant sur les raisons que la façon.

Installation et post installation d’une Ubuntu 20.04
vidéo en ligne ici

00:00 générique et présentation
01:10 présentation machine Virtualbox
processeur hôte i5 4 cores à 1,6 Ghz et 8 Go DDR3
disque dur 24 Go msata et 320 Go HDD
VM 2 cores / 4Go Ram / 17 Go Hdd
NB : choix EFI dans les préférences de VirtualBox
03:00 lancement de la VM
écran UEFI au démarrage du système (normal puisque la machine émule de l’EFI) : la couleur et l’écran sont légèrement différents lors d’une installation en UEFI…
puis vérification du support d’installation (nouveauté sur les live d'installation)
04:54 Premier écran choix live ou installation
05:35 Bureau,  premiers tests (le disque dur avec gnome-disk-utility : tapez disk pour le rechercher)
06:05 Lancement installation
06:30 premier écran choix de la langue
06:44 détection automatique du clavier
06:50 choix des mises à jour et autres logiciels propriétaires
07:20 Type d’installation (disque dur partitionnement) puis lancement de l’installation
07:57 fuseau horaire
08:10 Qui êtes vous ? Création du premier utilisateur  le sudoer
08:42 copie et installation : représentation machine et de la suite.
11:06 avant le redémarrage puis redémarrage
12:10 redémarrage : premier démarrage de Ubuntu 20.04
13:45 utilisateur connexion
14:12 Bureau
14:34 écrans lors de la première connexion d’un utilisateur
Lors du premier lancement de chaque nouvel utilisateur, un ensemble de propositions sont faites quant à des comptes en ligne, Livepatch pour le suivi du noyau, un envoie de rapport à Canonical, géolocalisation (confidentialité).
15:01 Vous êtes prêts…
15:30 localisation et mises à jour. Fin du paramétrage des langues.
18:20 paramétrages des mises à jour puis mises à jour
20:00 informations version noyau, système et env puis disque dur GPT et occupation
moins de 7 Go (Swap comprise !)
NB : petite erreur ce ne sont pas 7 Go qui sont pris lors de l’installation à minima puisque, en effet, ce sont à peine 6,5 Go qui sont pris lors d’une installation complète.
Après cette installation complète dont ma batterie de logiciels et optimisation j’occupe 5,7 Go sur les 16 Go disponibles (swap de 700 Mo comprise !).
22:50 Le PC à kiki sur le forum Ubuntu fr
premier paramétrage de firefox : je ne reviens pas sur les plugins cette fois ci...
25:00 setxkbmap fr
pour avoir le clavier en français si vous avez des soucis dans un terminal (ce n’est pas le cas ici)
25:30 premières lignes de code : le copier / coller et le terminal
27:00 swap : réglage du déclenchement : lors d’un lancement j’ai pu voir que la swap faisait 771 Mo au démarrage.
29:00 installation d’un premier programme en ligne de commande puis ensemble de programme et script pour automatiser une grosse installation : 2,4 Go…
attribut exécution des fichiers : utilisation sur un script…
choix des logiciels… liste sur le forum Ubuntu fr
39:00 installation et écrans durant l’installation des logiciels.
40:00 apprendre et ajouter des raccourcis clavier
j’ajoute un raccourcis clavier qui met en veille mon ordinateur.
42:00 première approche applications par défaut
43:00 première approche du bureau et paramétrage avec tweak tools…
apparence, thème par défaut, fond d’écran, boutons des fenêtres, barre supérieur, coin actif
% batterie, défilement naturel, espaces de travail dynamiques, extensions de gnome shell, fenetre et polices de caractères…
49:00 retour sur les extensions de gnome : ajouter un addon au navigateur…
application menu, caffeine, removable drive menu, touchpad indicator
51:40 bug des modèles : pas de modèle par défaut
explication sur les modèles et leur utilisation, démonstration d’un modèle avec un fichier texte.
NB : le Ctrl + glisser déposer pour copier un fichier.
55:51 vision en liste et navigation dans les dossiers sous nautilus, le navigateur de fichiers
58:20 les nautilus scripts : création d’un premier script, installation d’un script déjà créé.
NB : pensez à rendre les script exécutable
NB 2 : les scripts et la sécurité…
quand je parle des snaps, je fais allusion au manque de sécurité à installer des snap, flatpak et autres appimages ; on retrouve le même type de problème avec les scripts à part que ceux ci sont plus souvent assez court et on peut facilement savoir ce qu’il contiennent et donc les faire valider. Mais prenez soin des sources de ses scripts. Pour le moment ils ne sont pas sources de soucis mais ce n’est que parce que les systèmes sous Linux dsktop ne sont pas souvent attaqués ; ces scripts ne sont pas sécurisés et parfaitement accessible à l’utilisateur et donc à une attaque avec des droits restreints.
1:06:20 les extensions gnome shell sous firefox, installation.
1:07:51 shotwell premier lancement et paramétrages
1:08:30 nettoyage et paramétrage de la dock de gnome shell, quelques explications :
réduire la taille des icônes, rendre la barre escamotable.
1:09:30 gshutdown : premier lancement et paramétrage : éteindre automatiquement votre ordinateur après un temps donné ou à une heure donnée.
Ligne de commande :

killall vlc ; killall firefox ; sleep 3

1:12:30
1:13:00 grub : faire apparaître 4 secondes le menu de grub au démarrage.
1:14:00 suite et les snaps
1:16:00 fin… petit retour sur gshutdown

Dernière modification par kholo (Le 11/05/2020, à 22:12)

Hors ligne

#2 Le 05/05/2020, à 14:01

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

en écriture
Post installation Ubuntu 20.04

Voici le détail de ma post installation. Certaines partie ne sont pas optimisées… en cela, il est possible qu’elle face doublon comme par exemple la francisation qui est incluse dans mon pack de logiciels… mais cela à l’avantage d’être exhaustif.

Premier lancement : les pages de configuration.
Lors du premier lancement de votre système et lors de la création d’un nouvel utilisateur, vous allez tomber sur un ensemble de pages à paramétrer. Suivez les informations voire trouvez ce qui permet de les annuler le temps de choisir ce qui vous sera utile et, à ce moment là, de vous y remettre.

Plusieurs choses sont incontournables à toute installation d’un nouveau système d’exploitation :
la finalisation de la gestion des langues appelée localisation, une première vague de mise à jour. On peut aller plus loin dans ces deux actions :
les langues car nous pouvons avoir plusieurs langues utilisées sur un système.
    Par exemple, vous parlez plusieurs langues et peut être serez vous amené à utiliser plusieurs claviers différents avec des accès simplifiés à certains caractères spécifiques à votre langues.
Les mises à jours car nous pouvons choisir de modifier les choix par défaut de l’installateur. Les versions LTS étant maintenues 5 ans, il n’est pas obligatoire de monter de version dans cette période et cela ajoutera à la stabilité et à votre productivité.
Activation des dépôt univers et multivers. Pour accroître le pack de logiciels accessible.
Dans les paramètres ajouter les partenaires et changer la gestion des mises à jour.

Un package de logiciels
Une fois cette première partie faite, il est bon d’ajouter un ensemble de logiciels puis de faire certains paramétrage.
Pour l’ajout de logiciels, je part en premier lieu de ceux contenus dans les dépôts de la distribution en cours avec l’installateur traditionnel de la distribution pour avoir les version maintenues par le distributeur. Il est rarement nécessaire d’avoir la dernière version d’un logiciel.
Pour les logiciels qui ne sont pas dans les dépôts ou pour avoir des versions plus récentes, il existe plusieurs façons chacune avec ses avantages et inconvénients.
Sur Ubuntu par défaut le logiciel apt s’occupe de maintenir les paquets et l’équilibre des dépendances, viennent ensuite les fichiers deb qui sont liés à la couche inférieur de l’installateur apt (dpkg) puis les logiciels empaquetés dans les snaps, flatpak, appimages ou éventuellement dockers et équivalents.

Personnellement j’utilise un script qui me permet de simplifier et d’automatiser cette procédure car je la répète très souvent. A ce jour, c’est plus de 2 Go de logiciels qui s’installent en une seule passe et presque sans intervention… ce presque pour rappeler qu’il est bon de suivre cette installation qui ne prend que quelques dizaines de minutes.
Cette partie à un post juste pour elle

A parte philosophique a écrit :

Une utilisation orientée fichiers.
Un paradigme semble s’imposer en informatique à l’intention des non informaticiens : une orientation vers l’application. En d’autres temps, tout était fichiers et protocole mais nous allons vers la démocratisation d’une couche applicative qui est censée simplifier l’utilisation ou, au moins, accélérer la sensation de vitesse d’apprentissage. Pour faire simple, dès que vous avez besoin d’une fonction, vous vous demanderez quel logiciel peut faire cela pour vous.
Pour simplifier l’utilisation du système, un ensemble d’outils sont disponible dont certains plus compliqués d’accès ou qui demandent certaines connaissances du systèmes. L’apprentissage pourra paraître plus long et compliqué mais, rapidement, ce temps passé sera compensé par une maîtrise plus complète du système.
Ce qui rend les systèmes Linux imperméable aux plus grand nombres de virus est le niveau moyen des utilisateur qui est bien plus élevé que sur les autres systèmes.
Le logiciel centrale de tout système d’exploitation est le gestionnaire de fichiers.
Il est bon de faire le tour de ses capacités et d’en connaître les rudiments et paramétrages de base.
Créer un dossier, un fichier, faire des copies, des déplacements, des suppressions, des renommages puis, plus tard, des regroupements, des renommage en masse et appliquer des actions plus spécifiques issus de la connaissance des composantes des fichiers comme leur tags ou plus généralement les propriétés.

Ensuite, il faut maîtriser les raccourcis (signets), en ajouter, en supprimer, les déplacer.

L’usage du gestionnaire de fichiers à tendance à être plus simple en arbre mais il faut savoir modifier cette vue et passer en icônes lorsque cela peut simplifier certaines actions.

Comme tout est fichier, que vous souhaitiez envoyer du texte, une photo ou une vidéo ces informations seront contenues dans un fichier.
Au moins deux améliorations du systèmes de fichiers sont à connaître : les scripts et les nautilus scripts.
Les seconds sont une application des premiers au gestionnaire de fichiers.
Les scripts sont des petits programmes écrits dans un langage souvent simple de compréhension car ne nécessitant pas de compilation. Comme on apprendrait une langue, on peut connaître au moins quelques rudiment d’un langage de script voire comprendre à la lecture le fonctionnement d’un langage auparavant inconnu à la seule condition de comprendre quelques notions qui seront reprises systématiquement par tous les langages de script comme les conditions, les fonctions et les variables.

Des parties cachées
Il est bon également de savoir qu’il existe des fichiers et dossiers cachés même dans le dossier personnel. Sous les système Linux, le fait de commencer le nom d’un dossier ou d’un fichier suffit à le cacher. Inversement le fait de retirer ce point suffit à le rendre visible tout le temps. Souvenez vous que certains dossiers et fichiers sont cachés exprès et surtout référencés comme tel. Si un fichier est caché de base, évitez de changer ce statuts… à contrario, vous pourrez le faire autant que voulu sur vos propres fichiers et dossiers.
Une option dans le gestionnaire de fichier permet d’afficher ou cacher ses fichiers et dossiers. Un raccourcis clavier ctrl + H (h comme hide : cacher) permet un accès rapide.

Swap et cache-pressure.
Le Swap est une zone de disque dur qui sera utilisée pour libérer de la mémoire vive lorsque celle ci commence à être trop remplie.
Le déclenchement du swap est haut par défaut ce qui fait que le système va se mettre à swapper très tôt alors qu’il reste beaucoup de place en mémoire vive. On change par défaut cette valeur dès qu’on possède au moins voire plus de 4 Go de mémoire vive. Pour les système avec moins de mémoire, il est bon de se poser les bonnes questions mais cela reste très peu courant dans les ordinateurs même de bureautique.
pour ceux qui ne veulent pas savoir comment ça fonctionne, voici un script

#!/bin/bash
# ----------------------------------------------
# nomlogiciel="$(basename "$0")"
# FONCTION="Configurer swappiness et CachePressureSettings"
# VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------

leTexte="$FONCTION

continuer ?"
zenity --question --text="post installation Ubuntu 20.04" --text="$leTexte"
if [ $? -eq 0 ]
then
    echo "on continue"
else
    exit 1
fi

# _initialisation() {
echo "*******************initialisation*******************"
echo "VARIABLES"
sysctlconf_file="/etc/sysctl.conf"

######################################################
# adapter avec les valeurs souhaitées ici
mySwap=5
mycache=50
######################################################
# }
# _initialisation

# pour voir les valeurs actuelles
# cat /proc/sys/vm/swappiness
# cat /proc/sys/vm/vfs_cache_pressure

# TODO 
# TESTER 
# mySwap=cat /proc/sys/vm/swappiness ?
# et 
# mycache=cat /proc/sys/vm/vfs_cache_pressure ?
# 

# on sort les lignes du fichiers qui cons=cernent les vm.
lignes_swappiness="$(cat "$sysctlconf_file" | grep "vm.swappiness")"
lignes_vfs_cache_pressure="$(cat "$sysctlconf_file" | grep "vm.vfs_cache_pressure")"

echo "VERIF
$lignes_swappiness
---------------------------
$lignes_vfs_cache_pressure
---------------------------"

######################################################
parserSwappiness (){
    echo $1
    # xxxxx=*)                      xxxxxx="${i#*=}"
    qteSwappiness="${1#*=}"
    # echo "qteSwappiness=$qteSwappiness"
    
    # sed -i -e "s/chaines1/chaine2/g" fichier 
    RECHERCHE=$1
    REMPLACEMENT="vm.swappiness=$mySwap"
    FICHIER="$sysctlconf_file"
    sudo sed -i -e "s/$RECHERCHE/$REMPLACEMENT/g" "$FICHIER" 
}
######################################################
parserCache_pressure (){
    echo $1
    # xxxxx=*)                      xxxxxx="${i#*=}"
    qteCache_pressure="${1#*=}"
    # echo "qteCache_pressure=$qteCache_pressure"
    
    # sed -i -e "s/chaines1/chaine2/g" fichier 
    RECHERCHE=$1
    REMPLACEMENT="vm.vfs_cache_pressure=$mycache"
    FICHIER="$sysctlconf_file"
    sudo sed -i -e "s/$RECHERCHE/$REMPLACEMENT/g" "$FICHIER" 
}
######################################################
# on utilise les sauts de lignes 
# pour parser le fichier et trouver les lignes correspondantes
oldIFS=$IFS
IFS='
'
if [ -z "$lignes_swappiness" ] ; then
    # echo "pas trouvé : vm.swappiness"
    echo "vm.swappiness=$mySwap" | sudo tee -a "$sysctlconf_file"
else
    for i in $lignes_swappiness
    do
        # echo "--------parserSwappiness $i"
        [ ${i:0:1} == '#' ] || parserSwappiness "$i"
    done
fi
# idem pour vfs_cache_pressure
if [ -z "$lignes_vfs_cache_pressure" ] ; then
    # echo "pas trouvé : vm.vfs_cache_pressure"
    echo "vm.vfs_cache_pressure=$mycache" | sudo tee -a "$sysctlconf_file"
else
    for j in $lignes_vfs_cache_pressure
    do
        # echo "--------parserCache_pressure $j"
        [ ${j:0:1} == '#' ] || parserCache_pressure "$j"
    done
fi
IFS="$oldIFS"
######################################################
# FIN
######################################################
exit 0

... désolé, même moi j'ai mal au crane à relire ce script...
en fait il faut juste avoir ces deux lignes

vm.swappiness=5
vm.vfs_cache_pressure=50

à la fin du fichier

/etc/sysctl.conf

mais comme j'ai voulu le scripter, il falait bien que je vérifie que ces valeurs n'étaient pas déjà présentes pour ne pas les ajouter encore et encore bêtement...
donc, le fichier n'est pas long et même un presque débutant devrait s'en sortir avec nano (pas gedit parceque c'est un fichier systeme, prenez les bonnes habitudes tout de suite) :

sudo nano /etc/sysctl.conf

puis ajouter avec un coller (ctrl + maj + v) :

vm.swappiness=5
vm.vfs_cache_pressure=50

puis ctrl + x pour demander de fermer
puis o pour valider le nom
puis entrer pour valider !
puis vous pourrez même recharger la swap à la volée avec :

sudo swapoff -av
sudo swapon -av

sinon ce sera automatiquement effectif au prochain redémarrage !

Lm sensors
Il est bon d’avoir des informations quant à la température de notre système. Des logiciels existent pour voir ces valeurs mais ce composants est très léger et réputés. Il est simple à se souvenir voire on peut utiliser un script pour l’appeler.
J’ai également un script qui l’appelle à intervalle régulier de façon )à faire un monitoring en temps réel.
ici faisons simple ; pour paramétrer lm-sensors :

sudo sensors-detect

pour lancer lm-sensors :

sensors

petit Bonus : un script pour se faire un monitoring en temps réel.
pour tout dire, je tape une ligne à la barbare quand j'ai besoin de me faire un monitoring...

while : ; do sensors ; sleep 1 ; clear; done

pour une utilisation plus longue, il faut penser qu'on va saturer le buffer à grands coups de clean alors un petit reset de temps en temps fait du bien... et comme on peut se mettre ça sous le coude juste avec un copier coller, voilà ce que ça peut donner :

#!/bin/bash
# ----------------------------------------------
# nomlogiciel="${0##/*}"
# VERSION="alpha"
# echo "lancement $nomlogiciel..."
# 
# ----------------------------------------------
# NOTES DE VERSIONS
# FONCTION="affiche les températures dans un terminal toutes les X secondes
# dépendances :
# lm-sensors
# "# 
# ----------------------------------------------

# le reset est long à rafraichir
# le clear va plus vite mais rempli le buffer
# effectue un reset sur un nbre de boucles
# gère egalement le temps entre chaque boucle

temps_boucle=1 ## temps entre chaque boucle
boucle=0 ## num de boucle en cours
boucles=60 ## nbre boucles avant reset
message="quitter avec ctrl + c"

while :
do
    sensors
    boucle=$((boucle + 1))
    echo "${boucle}/${boucles} - ${message}"
    sleep ${temps_boucle}
    clear

    if [[ ${boucle} -eq ${boucles} ]]
    then
        echo "nettoyage buffer"
        boucle=0
        sleep 1
        reset
    fi
done

exit 0

Hdd temp
Il permet d’avoir des information de températures des disques dur. Cette information est particulièrement utile avec des disque dur traditionnel. A noter qu’un ensemble d’informations dites SMART sont accessible depuis disk (gnome-disk-tools) sous le gestionnaire de bureau.
comme pour sensors, restons simple... installation

sudo apt install hddtemp 

re-configuration (au cas où car la configuration doit se lancer seule après l'installation... je crois)

sudo dpkg-reconfigure hddtemp

répondez Oui à la question "Faut-il exécuter hddtemp avec les privilèges du superutilisateur ?"
Pour voir un rapport ponctuel des sondes tapez en ligne de commande
<b>hddtemp /dev/sdx</b> avec sdx = sda,b,c,d...
pour avoir sda

hddtemp /dev/sda

Imprimante et scanner
Il est bon de vérifier le bon fonctionnement de ces appareil si vous en possédez. Depuis que Apple a travaillé sur un ensemble de gestionnaire d'imprimante nommé Cups, la reconnaissance de ces matériels est amélioré… certaines marques font encore de la résistance avec Linux et se réserve à l’utilisation de Windows… cela change avec le temps et devient plus rare...
ici, le graal se trouve sur une page dédiée de la doc !

Dernière modification par kholo (Le 08/05/2020, à 02:37)

Hors ligne

#3 Le 07/05/2020, à 17:02

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

PARLONS DES PROGRAMMES
Un petit tour par les paramètres et vous pourrez déjà faire un peu avancer la francisation dans le menu adéquat... j'en parle dans mes vidéos que ce soit pour la 16, la 18 ou la 20... j'en remet une petite couche ensuite dans mon pack de programmes...

SAUVER UNE LISTE a écrit :

Prendre une liste de programme
Avant de se lancer, il est bon de faire une sauvegarde des programmes déjà installés.
Il est intéressant d'avoir la liste des programmes que l'on aurait installé à la main sur une ancienne distribution...
pour ça une simple ligne :

apt-mark showmanual|sort -u

et bien sûr pour garder cette liste au chaud voire, pour la ré utiliser :

apt-mark showmanual|sort -u > actual.txt

NB : pas besoin de sudo !

Verrou lock pendant notre mise à jour
Cette satanée interface graphique devient envahissante au point de nous prendre la main quand on fait nos mises à jour et installation en ligne de commande... alors on doit pouvoir la bouter hors du contrôle !!
Annulez tout ce que vous pouvez en graphique puis

sudo fuser -k /var/lib/dpkg/lock
sudo fuser -k /var/lib/apt/lists/lock

paf !!!

Nouveauté a écrit :

petite nouveauté pour cette version 13 de pulseaudio : je ne sais pas vous mais comme j'ai eu des problèmes de son, j'ai cherché du côté de pulseaudio... et j'ai trouvé des trucs très sympa sur cette version que je découvre puisque j'arrive directement de 16.04.
une petite recherche avec :

apt search pulseview
apt search pulsemixer

Mises à jour
je met la totale des dépôts (partner, universe, multiverse) quoique les paquets universe soient déjà systématiques maintenant

sudo add-apt-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" -y
sudo add-apt-repository universe -y
sudo add-apt-repository multiverse -y

NB : la première ligne est tirée de la doc...
une autre façon de la mettre les partner dans cet état :

sudo sed -i "/^# deb .*partner/ s/^# //" /etc/apt/sources.list

je ne fais pas d'update ici puisque le script va s'en occuper...
NB : PAS DE SUDO SI JE NE MET PAS DE SUDO !
c'est bien lisible là ?
=> c'est notre utilisateur qui est sudoer et propriétaire des fichiers et du script donc pas de sudo !
... sinon les log des scripts seront propriété de root et ce sera plus ch.... embêtant pour les récupérer si nécessaire.

Le pack des programmes...
voici ma liste... et j'utilise toujours le même script d'installation que je remet
utilisation fécomsa
créer un dossier,

mkdir -p ~/bin/piu/programmes

et deux fichier dedans ; le premier est un script

touch ~/bin/piu/programmes/post-install.sh

donc il est bon de le rendre exécutable

chmod +x ~/bin/piu/programmes/post-install.sh

puis un fichier qui contiendra la liste des programmes

touch ~/bin/piu/programmes/proglist

NB : pour le moment ces deux fichiers sont vides

éditez le script et copiez les lignes suivantes avec cette ligne

gedit ~/bin/piu/programmes/post-install.sh
#!/bin/bash
###########################################################################
#                                                                         #
# Script d'installation des programmes après réinstallation du système    #
# v0.2 b-001                                                              #
# par nesthib modifié par CU (kholo-informatique)                         #
#                                                                         #
###########################################################################
FONCTION="ce script permet l'installation de multiples paquets dont la liste est contenue dans un fichier texte l'installabilité des paquets est vérifiée au préalable.

il suffit de créer un fichier dans lequel sont listés les noms des paquets à installer et d'indiquer le chemin du fichier. 
si aucun argument n'est donné le fichier proglist (s'il existe) contenu dans le même dossier que le script est utilisé.

À la fin de l'exécution un log est créé indiquant quels paquets ne sont pas dans les dépots, lesquels étaient déjà installés et ceux qui ont été installés."

# "la commande de lancement du script est:
# sudo ./post-install.sh proglist
# sudo ./post-install.sh [fichier]"

# if [ $UID -ne 0 ]
# then
    # echo "vous devez être root pour lancer le script"
    # exit 1
# fi

leTexte="$FONCTION

continuer ?"
zenity --question --text="post installation Ubuntu 20.04" --width=500 --height=300 --text="$leTexte" --no-wrap
if [ $? -eq 0 ]
then
    echo "on continue"
else
    exit 1
fi

{
#Variables
script_path="$(pwd)/${0%/*}/"
proglist_file="${script_path}proglistfull"
if [ $# -gt 0 ] ; then proglist_file="$1" ; fi

if [ ! -f "$proglist_file" ] ; then echo "lecture de \"${proglist_file#${script_path}}\" impossible" ; exit 1 ; fi

echo "lecture de \"${proglist_file#${script_path}}\""

#############################################################################
# rajout d'autres dépôts (et clés d'authentifications) dans sources.list s'ils sont absents
#version actuelle du systeme
# version_system=$(lsb_release -c | cut -c 11-)
#
# Sauvegarde de la liste des dépots
# sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
#
#############################################################################

#Rechargement de la liste des dépôts et des paquets
sudo apt-get update

#tri des paquets selon les états "non installable", "installé", "non installé"
#création des fichiers temporaires recevant les noms des paquets triés
>"${script_path}/noninstallable"
>"${script_path}/noninstalle"
>"${script_path}/installe"

#déclenche une instalation si il y a au moins un paquet à installer
install_ok=0

for arg in $(grep -v "#" "${proglist_file}" | grep -vx "" | sed ':a;N;$!ba;s/\n/\ /g') #récupère le nom des paquets (uniquement) du fichier proglist sur une ligne
do
	un_paquet=${arg}
	if sudo apt-cache pkgnames | grep -x -q ${un_paquet} #test de l'existence du paquet dans les dépots
	then
		# test de l'état non installé du paquet
		if sudo apt-cache policy ${un_paquet} | grep Installé | grep -q aucun
			then echo "${un_paquet} non installé"
			echo "${un_paquet}" >>"${script_path}/noninstalle"
			install_ok=1
			else echo "${un_paquet} installé"
			echo "${un_paquet}" >>"${script_path}/installe"
		fi
	else	echo "${un_paquet} non installable"
		echo "${un_paquet}" >>"${script_path}/noninstallable"
	fi
done

#############################################################################

#Installation des paquets installables non installés
if [ $install_ok -eq 1 ]
then
	#installe les paquets de la liste après avoir éliminé les doublons potentiels
	sudo apt-get install $(grep -v "#" "${script_path}/noninstalle" | sort | uniq | sed ':a;N;$!ba;s/\n/\ /g') 
fi

#création du log d'installation
log_install="${script_path}/log"
grande_ligne='------------------------------------------------------------------'
echo "$grande_ligne" >>"$log_install"
echo "Paquets installés :" > "$log_install"
cat "${script_path}/noninstalle" >>"$log_install"
echo "$grande_ligne" >>"$log_install"
echo "Paquets déjà installés :" >>"$log_install"
cat "${script_path}/installe" >>"$log_install"
echo "$grande_ligne" >>"$log_install"
echo "Paquets absents des dépots :" >>"$log_install"
cat "${script_path}/noninstallable" >>"$log_install"
echo "$grande_ligne" >>"$log_install"

#suppression des fichiers temporaires
rm "${script_path}/noninstallable"
rm "${script_path}/noninstalle"
rm "${script_path}/installe"

} 2>reinstall.error.log #log d'erreur

#Nettoyer le systeme 
# sudo apt-get autoremove -y
# sudo apt-get autoclean
# sudo apt-get clean

éditez la liste et copiez les lignes suivantes avec cette ligne

gedit ~/bin/piu/programmes/proglist
##-> Liste des programme à installer sur un système neuf
##-> Les lignes entières commentées ne sont pas prises en compte
##-> Attention à la casse des noms de paquets

##-> Francisation !
language-pack-fr 
language-pack-fr-base 
language-pack-gnome-fr 
language-pack-gnome-fr-base
manpages-fr 
manpages-fr-extra

##-> INTERNET
firefox
thunderbird
# icedove
# icedove-l10n-fr
filezilla
# skype

##-> RESEAU
openssh-server
# sshfs
network-manager-gnome
nmap

##-> IMPRESSION
cups
gutenprint
ghostscript
hplip

##-> MULTIMEDIA
##-> GRAPHISME
# inkscape
# gimp
# gimp-plugin-registry 
# gimp-data-extras 
# gimp-data
gthumb
shotwell
# sweethome3d
# blender
scribus
gmic
glabels
imagination
darktable
mypaint
krita
calligra

##-> VIDEO
# kdenlive
vlc
cheese
kazam

##-> AUDIO
audacity
pavucontrol  
pavumeter 
paprefs

##-> Pulse Audio
pulseaudio                   
pulseaudio-qt
pulseaudio-utils
pulseaudio-equalizer         
pulseeffects
pulsemixer
pulseview
pulseaudio-module-zeroconf
pulseaudio-module-bluetooth  
pulseaudio-module-gsettings  
pulseaudio-module-jack       
pulseaudio-module-lirc       
pulseaudio-module-raop       


##-> CODEC 
##NB ya un probleme avec gstreamer
# gstreamer1.0
# gstreamer1.0-doc
# gstreamer1.0-adapter-pulseeffects
# gstreamer1.0-autogain-pulseeffects
# gstreamer1.0-convolver-pulseeffects
# gstreamer1.0-crystalizer-pulseeffects

# gstreamer1.0-plugins-base
# gstreamer1.0-plugins-base-apps
# gstreamer1.0-plugins-base-dbg
# gstreamer1.0-plugins-base-doc
# gstreamer1.0-plugins-good
# gstreamer1.0-plugins-good-dbg
# gstreamer1.0-plugins-good-doc

# ubuntu-restricted-extras
# flashplugin-installer
ffmpeg

libdvdread
libdvdread7

icedax 
easytag 
id3tool 
lame 
nautilus-script-audio-convert
h264enc
libmad0 
mpg321 
libavcodec-extra

##-> BUREAUTIQUE
libreoffice
libreoffice-style-breeze
libreoffice-style-human
libreoffice-style-colibre
libreoffice-style-karasa-jaga
libreoffice-style-elementary
libreoffice-style-oxygen
libreoffice-style-galaxy
libreoffice-style-sifr
libreoffice-style-hicontrast 
libreoffice-style-tango
verbiste-gnome
keepassx

##-> PDF
pdfmod
pdfshuffler
xournal

##-> EDITEURS TEXTES
geany
geany-plugins
gedit 
gedit-plugins

##-> TWEAK TOOLS
gufw
ppa-purge
gdebi
# synaptic
screen
screenfetch
numlockx
gconf-editor
dconf-editor

# clamav
# clamtk
# bleachbit

##-> SYSTEM
inxi
hwinfo
hardinfo
htop
gparted
gnome-disk-utility
lm-sensors
hddtemp


##-> SAUVEGARDES
grsync
# deja-dup

##-> COMPRESSION DECOMPRESSION
unace 
rar 
unrar 
unar 
p7zip-rar 
p7zip 
zip 
unzip 
arj 
libuu0 
mpack 
sharutils 
uudeview


##-> DOCKS et BUREAU
# docky
# cairo-dock
conky
conky-all

# lubuntu-software-center
brasero
gshutdown

##-> BUREAUX
gnome-shell
chrome-gnome-shell
gnome-tweak-tool
gnome-tweaks

gnome-shell-mailnag
gnome-shell-pomodoro
gnome-shell-pomodoro-data
gnome-shell-timer

## gnome-shell-extensions
gnome-shell-extensions
gnome-shell-extension-appindicator
gnome-shell-extension-arc-menu
gnome-shell-extension-autohidetopbar
gnome-shell-extension-bluetooth-quick-connect
gnome-shell-extension-caffeine
gnome-shell-extension-dash-to-panel
gnome-shell-extension-desktop-icons
gnome-shell-extension-disconnect-wifi
gnome-shell-extension-draw-on-your-screen
gnome-shell-extension-gamemode
gnome-shell-extension-gsconnect
gnome-shell-extension-gsconnect-browsers
gnome-shell-extension-hard-disk-led
gnome-shell-extension-hide-activities
gnome-shell-extension-hide-veth
#gnome-shell-extension-hijra
gnome-shell-extension-impatience
gnome-shell-extension-kimpanel
gnome-shell-extension-log-out-button
gnome-shell-extension-move-clock
gnome-shell-extension-multi-monitors
gnome-shell-extension-no-annoyance
gnome-shell-extension-onboard
gnome-shell-extension-pixelsaver
gnome-shell-extension-prefs
gnome-shell-extension-redshift
gnome-shell-extension-remove-dropdown-arrows
gnome-shell-extension-shortcuts
gnome-shell-extension-show-ip
gnome-shell-extension-suspend-button
gnome-shell-extension-system-monitor
gnome-shell-extension-tilix-dropdown
gnome-shell-extension-tilix-shortcut
gnome-shell-extension-top-icons-plus
gnome-shell-extension-trash
gnome-shell-extension-ubuntu-dock
gnome-shell-extension-weather
gnome-shell-extension-workspaces-to-dock
gnome-shell-extension-xrdesktop
gnome-shell-extensions-gpaste

##-> FUN
# ubuntu-wallpapers-artful
# ubuntu-wallpapers-precise
# ubuntu-wallpapers-bionic
# ubuntu-wallpapers-quantal
# ubuntu-wallpapers-cosmic
# ubuntu-wallpapers-raring
# ubuntu-wallpapers-disco
# ubuntu-wallpapers-saucy
# ubuntu-wallpapers-eoan
# ubuntu-wallpapers-trusty
# ubuntu-wallpapers-focal
# ubuntu-wallpapers-utopic
# ubuntu-wallpapers-karmic
# ubuntu-wallpapers-vivid
# ubuntu-wallpapers-lucid
# ubuntu-wallpapers-wily
# ubuntu-wallpapers-maverick
# ubuntu-wallpapers-xenial
# ubuntu-wallpapers-natty
# ubuntu-wallpapers-yakkety
# ubuntu-wallpapers-oneiric
# ubuntu-wallpapers-zesty


# kde
# lxde
# xfce
# mate
# cinnamon

# ......

NB Paquets absents des dépôts :
#tagtool
#shutter
#gksu
#dconf-tools
#sysinfo
#docky

maintenant on va se placer dans le dossier et on lance le script

cd ~/bin/piu/programmes/
sudo ./post-install.sh 

il faudra valider le lancement de l'installaion après la vérification des paquets
ET PIS C'EST TOUT !
NB : par défaut le script cherche et lance le fichier proglist mais il est possible après coup de créer un fichier spécifique voire plusieurs fichiers que vous pourrez lancer avec la commande normale suivi du nom du fichier en paramètre...
... bon ok, je met un exemple :
je crée un fichier mesprog que j'édite et je met des noms de paquets dedans

cd ~/bin/piu/programmes/
gedit mesprog

j'y met des noms de paquets, un sur chaque ligne
j'enregistre, je quitte,
je lance

sudo ./post-install.sh mesprog 

le script se comportera de la même façon avec la liste contenue dans le fichier "mesprog"

Dernière modification par kholo (Le 07/09/2020, à 15:24)

Hors ligne

#4 Le 07/05/2020, à 18:21

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

ATTENTION CETTE PARTIE EST A LA FOIS SENSIBLE ET NON VALIDEE
J'ai déjà eu l’occasion d'utiliser ces scripts mais je les tests et les valide à la volée... il m'arrive d'y faire des modifications juste avant de les utiliser et de ne pas garder proprement ces modifications (oui, je sais honte à moi !)... mais c'est déjà une base et surtout une base de discussion...

Firefox et Thunderbird : les profiles
créer différents profiles
sauver ses profiles

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"

FONCTION="sauver les profiles Mozilla - Firefox / Thunderbird"

# https://forum.ubuntu-fr.org/viewtopic.php?id=1566581
# https://forum.ubuntu-fr.org/viewtopic.php?id=30801
# https://support.mozilla.org/fr/kb/recuperer-donnees-importantes-ancien-profil

VERSION="0.007"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
# echo "lancement $nomlogiciel..."
# ----------------------------------------------
# echo "chargement ligne $LINENO"

# ----------------------------------------------
# pour le débugage
# nautilus "$PWD" ; exit 0
# ----------------------------------------------

# ----------------------------------------------
# DOSSIER UTILISATEUR
# ----------------------------------------------

dossier_perso="$HOME/.config/kholo/$nomlogiciel"
# [ ! -d "$fichier_log" ] && mkdir "${dossier_perso}"
mkdir -p "${dossier_perso}"

# ----------------------------------------------
# JOURNAL
# ----------------------------------------------

# durée d'exécution pour horodatage du log
START=$(date +%s.%N)

fichier_log="${dossier_perso}/$nomlogiciel.log"
# supprime le fichier log à la fermeture
# trap "rm -f $fichier_log" EXIT
# > "$fichier_log" # initialise le journal à chaque démarrage
[ -f "$fichier_log" ] || > "$fichier_log"
echo "*****************************************************
$(date)
*****************************************************" >> "$fichier_log"

# echo "chargement ligne $LINENO"
journal () {
	local NOW=$(date +%s.%N)
	local DIFF=$(echo "${NOW} - ${START}" | bc)
	echo -e "[${DIFF}] \n${@}" >> "${fichier_log}"
	}
journal "*******************initialisation*******************"

# ----------------------------------------------
# journal "VARIABLES"
# ----------------------------------------------

CheminDossierDestination="$PWD"

# echo "chargement ligne $LINENO"
_quitter () {
	journal "quitter proprement..."
	# mettre ici tout ce qui sera nescessaire à la bonne fermeture
	sauverIni
	exit 0
	}
# ----------------------------------------------

# echo "chargement ligne $LINENO"
frm_principale () {
# journal "*******************frm_principale*******************"
LAQUESTION="Sauvegardes des profiles Mozilla
---------------------------------------------------------------------
$0 - <b>$VERSION</b>"

texte[0]=""
texte[1]="Profile			>"
texte[2]="Fichier ini		>"
texte[3]="Nom Profile	>"
texte[4]="Destination	>"
texte[5]="sauver			>"
texte[6]="				>"

valeur[0]=""
valeur[1]="${leProfile}"
valeur[2]="${leFichierProfileINI}"
valeur[3]="${NomProfile}"
valeur[4]="${CheminDossierDestination}"
valeur[5]="ce profile dans le dossier Destination"
valeur[6]="ce profile dans une archive dans Destination"

zenity --list --width=600 --height=350 --text="$LAQUESTION" \
	--ok-label="Sélectionner" \
	--cancel-label="quitter" \
	--hide-column 1 --column "" --column "${texte[0]}" --column "${valeur[0]}" \
	0 "" "	modifier les options" \
	1 "${texte[1]}" "${valeur[1]}" \
	2 "${texte[2]}" "${valeur[2]}" \
	3 "${texte[3]}" "${valeur[3]}" \
	4 "${texte[4]}" "${valeur[4]}" \
	0 "" "	lancer une action" \
	5 "${texte[5]}" "${valeur[5]}" \
	6 "${texte[6]}" "${valeur[6]}" \
	;
	}

# echo "chargement ligne $LINENO"
frm_principale_parser () {
	journal "\n***********************************************************\nfrm_principale_parser : $1"
	case $1 in
		1) choisirFFTB ;;
		2) choisirFFTB ;;
		3) choisirFFTB ;;
		4) choisirDossierDestination ;;
		5) sauverProfile ;;
		6) sauverProfileTar ;;
		0) ;; # rien à faire
		*)	quitter=1
			_quitter ;;
	esac
	}
# ----------------------------------------------

# echo "chargement ligne $LINENO"
frm_choixFFTB () {
	journal "appel de : ${FUNCNAME} ${@}"
	zenity --list \
		--radiolist \
		--title="Choisir..." \
		--text="Firefox ou Thunderbird ?" \
		--column="" --column="" --column="Choix" \
		--hide-column=2 \
		--print-column=2 \
		TRUE 1 "Firefox" \
		FALSE 2 "Thunderbird"
	}

# echo "chargement ligne $LINENO"
choisirFFTB () {
	journal "appel de : ${FUNCNAME} ${@}"
	# Choix puis lecture du fichier profile
	leChoixFFTB="$( frm_choixFFTB )"
	case $leChoixFFTB in
		1)	leProfile="Firefox"
			leFichierProfileINI="$HOME/.mozilla/firefox/profiles.ini"
			# initialisationTexteFirefox 
			;;
		2) 	leProfile="Thunderbird"
			leFichierProfileINI="$HOME/.thunderbird/profiles.ini" 
			# initialisationTexteThunderbird
			;;
		*) exit 1 ;;
	esac
	chargerProfile
	choisirProfile
	choisirDossierDestination
	}

# echo "chargement ligne $LINENO"
chargerProfile () {
	journal "appel de : ${FUNCNAME} ${@}"
	# sortir les noms de chaque profile et le dossier associé
	IFS=$'\n' 
	listeNomProfiles="$(cat "$leFichierProfileINI" | grep "Name=" | sed -e "s/Name=//g" )"
	listeCheminProfiles="$(cat "$leFichierProfileINI" | grep "Path=" | sed -e "s/Path=//g" )"

	IFS=$'\n' nbreElement=${#listeNomProfiles[@]}

	ii=0
	for i in ${listeNomProfiles[0]}
	do
		((ii++))
		listeNomProfiles[$ii]="$i"
	done

	jj=0
	for j in ${listeCheminProfiles[0]}
	do
		((jj++))
		listeCheminProfiles[$jj]="$j"
	done

	listeNomProfiles[0]="Nom"
	listeCheminProfiles[0]="Chemin"
	}

# echo "chargement ligne $LINENO"
choisirProfile () {
	journal "appel de : ${FUNCNAME} ${@}"
	NomProfileNew="$(zenity --entry \
			--title "Choisir un profile" \
			--text "listeNomProfiles :" \
			--entry-text "${listeNomProfiles[@]:1}"
				)"
	[ ${#NomProfileNew} -gt 0 ] && NomProfile="${NomProfileNew}" || {
		exit 1
	}
	for (( i=0; i<${#listeNomProfiles[@]}; i++ ))
	do
		if [[ "$NomProfile" == "${listeNomProfiles[$i]}" ]]
		then
			CheminProfile="${listeCheminProfiles[$i]}"
			[[ $(echo "$CheminProfile" | grep \/) ]] || CheminProfile="$HOME/.mozilla/firefox/$CheminProfile"
			# journal "$CheminProfile"
			break
		fi
	done
	}

# echo "chargement ligne $LINENO"
choisirDossierDestination () {
	journal "appel de : ${FUNCNAME} ${@}"
	CheminDossierDestination_new=$(
		zenity --file-selection --directory \
			--filename="${CheminDossierDestination}/" \
			--title="Choisir le dossier de sauvegarde" ;
		) ;
		# --title="${txt_TITLE}" ;
	[ ${#CheminDossierDestination_new} -gt 0 ] && CheminDossierDestination="${CheminDossierDestination_new}"
	}

# echo "chargement ligne $LINENO"
sauverProfileTar () {
	journal "appel de : ${FUNCNAME} ${@}"
	journal "chemin Profile \n->${CheminProfile}\nDestination\n->${CheminDossierDestination}"
	local CheminDestination="${CheminDossierDestination}/${leProfile}"
	local RepCourant="$PWD"
	[ -d "${CheminDestination}" ] || mkdir -p "${CheminDestination}"
	local tar_option
	local tar_ext

	zenity --question --title="compressé l'archive ?" --text="compressé (non pour non compressé) ?"
	if [ $? -eq 0 ]
	then
		journal "option compressé"
		tar_option='-zcvf'
		tar_ext='tar.gz'
	else
		journal "option non compressé"
		tar_option='-cvf'
		tar_ext='tar'
	fi
	# cd "${CheminProfile}"
	journal "compression de ${CheminProfile}/* \nvers ${CheminDestination}/${NomProfile}.$tar_ext"
	{
	# tar $tar_option "${CheminDestination}/${NomProfile}.$tar_ext" *
	tar $tar_option "${CheminDestination}/${NomProfile}.$tar_ext" "${CheminProfile}"/* 2>/dev/null
	} | zenity --progress --pulsate --title="copie du fichier..." --text="en cours..." --auto-close --auto-kill && frm_fin
	# cd "${RepCourant}"
	}

# echo "chargement ligne $LINENO"
sauverProfile () {
	journal "appel de : ${FUNCNAME} ${@}"
	local CheminDestination="${CheminDossierDestination}/${leProfile}/${NomProfile}"
	journal "chemin Profile \n->${CheminProfile}\nDestination\n->${CheminDossierDestination}"
	mkdir -p "${CheminDestination}"
	if [ -d "${CheminProfile}" ] && [ -n "${CheminProfile}" ] ; then 
		{ cp -R "${CheminProfile}/"* "${CheminDestination}" | \
			zenity --progress --pulsate \
			--title="copie du fichier..." \
			--text="en cours..." \
			--auto-close --auto-kill ; } && frm_fin
	else
		journal "erreur : CheminProfile"
	fi
	}
# ----------------------------------------------

# echo "chargement ligne $LINENO"
frm_fin () { 
	journal "sauvegarde terminée... ok"
	zenity --info --text "sauvegarde terminée" --timeout=3 ; 
	}
# ----------------------------------------------

# echo "chargement ligne $LINENO"
_main () {
	journal "appel de : ${FUNCNAME} ${@}"
	# journal "_main"
	menuchoice=$(frm_principale);
	frm_principale_parser ${menuchoice%|*} # pour corriger le 1|1

	if [[ $quitter -ne 1 ]] ; then
		# on boucle _main tant que quitter est différent de 1
		_main
	fi
	}

# Ini file
fichier_ini="${dossier_perso}/$nomlogiciel.ini"
VERSIONfile="$VERSION"
parserLigneIni () {
	journal "appel de : ${FUNCNAME} ${@}"
	i="$@" ;
	[[ -n "$i" ]] && {
		# uneid="${i%=*}"
		valeur="${i#*=}"
		# echo "$uneid=${valeur}"
		# declare $uneid="${valeur}"

	case $i in
		#xxxxx=*)					xxxxxx="${i#*=}" ;;
		VERSIONfile=*)				VERSIONfile="${valeur}" ;;
		leProfile=*)				leProfile="${valeur}" ;;
		CheminProfile=*)			CheminProfile="${i#*=}" ;;
		leFichierProfileINI=*)		leFichierProfileINI="${valeur}" ;;
		NomProfile=*)				NomProfile="${valeur}" ;;
		CheminDossierDestination=*)	CheminDossierDestination="${valeur}" ;;
	esac
	}
}
chargerIni () {
	journal "appel de : ${FUNCNAME} ${@}"
# [ -f "$fichier_ini" ] || \#
	IFS=$'\n'
	while read line ;
	do
		[ -n "$line" ] && parserLigneIni "$line" ;
	done < "$fichier_ini" ;
}
sauverIni () {
echo "VERSIONfile=${VERSIONfile}
leProfile=${leProfile}
leFichierProfileINI=${leFichierProfileINI}
NomProfile=${NomProfile}
CheminProfile=${CheminProfile}
CheminDossierDestination=${CheminDossierDestination}
"  > "$fichier_ini" ;
}

# choisirIni () {
	# journal "appel de : ${FUNCNAME} ${@}"
	if [ -f "${fichier_ini}" ] ; then chargerIni ; else choisirFFTB ; fi
	# }
# choisirIni

# Programme principale
_main

exit 0

restaurer les profiles
quelques addons :
page maison :

sauvegarde compressée (ou non) de $HOME/.local/share

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="# ce script crée une sauvegarde de ~/.local/share"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------

leTexte="$FONCTION

continuer ?"
zenity --question --text="$nomlogiciel - V $VERSION" --text="$leTexte"
if [ $? -eq 0 ]
then
	echo "on continue"
else
	exit 1
fi

# ce script crée une sauvegarde de ~/.local/share

#************************************************#
# VARIABLES
#************************************************#
FILEOUT="$(date +%F)-SauvegardeDuRepertoire-$USER_local_share"
#************************************************#
# copie du dossier ~/.local/share dans une archive
#************************************************#
#non compressé
# tar -cvf $FILEOUT.tar $HOME/.local/share

#compressé
tar -zcvf $FILEOUT.tar.gz $HOME/.local/share

# chmod 777 $FILEOUT.tar* 
#chown $USER $FILEOUT.tar*

echo "appuyer sur Entrée pour continuer..."
read -r

exit 0

sauver les dossiers système
sauver /etc

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="# ce script crée une sauvegarde de /etc dans une archive"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------

# Ne pas lancer avec sudo !

leTexte="$FONCTION

continuer ?"
zenity --question --text="$nomlogiciel - V $VERSION" --text="$leTexte"
if [ $? -eq 0 ]
then
	echo "on continue"
else
	exit 1
fi

# ce script crée une sauvegarde de /etc

#************************************************#
# VARIABLES
#************************************************#
FILEOUT="$(date +%F)-SauvegardeDuRepertoireETC"

#************************************************#
# copie du dossier /etc dans une archive
#************************************************#
#non compressé
# sudo tar -cvf $FILEOUT.tar /etc/

#compressé
sudo tar -zcvf $FILEOUT.tar.gz /etc/

# On donne des bons droits pour l'utilisateur 
sudo chmod 550 $FILEOUT.tar* 
sudo chown $USER $FILEOUT.tar*

echo "appuyer sur Entrée pour continuer..."
read -r

exit 0

sauver /var/www

Dernière modification par kholo (Le 08/05/2020, à 01:58)

Hors ligne

#5 Le 07/05/2020, à 18:22

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

Autres astuces et retour d'expériences...
J'ai voulu changer mon approche et me concentrer sur l'expérience utilisateur pour cette nouvelle version de ma fort célèbre post installation.
Je suis d'abord très impressionné par le nombre de vues sur ce forum de mes précédentes versions...

  • plus de 15000 vues pour la 16.04

  • plus de 61000 vues pour la 18.04

je ne vais pas prendre trop le melon ; le fait que je traite d'énormément de choses différentes doit expliquer cette affluence...

Nouveau pas en avant vers l'avenir, j'ai chiffré une de mes installations en dur pour voir un peu comment cela se passe. Donc création d'une LVM, partitionnement automatique par l'installateur, je me suis laissé porté.
La nouveauté est donc une demande de mot de passe au bout de 20 ou 30 secondes et un démarrage, tout compris en une minute et demi ; c'est à dire autant qu'il y a dix ans avec un tripaillon en 32 bits et ce jusqu'à il y a encore quelques années alors que j'ai tout de même un SSD à la place du disque dur traditionnel. En référence, j'ai des démarrages en moins de 30 secondes avec un ssd sur des 16.04 et je ne dépasse jamais 1.30 mn avec des disques traditionnels (NB je n'utilise que du Gnome depuis des années donc je ne cherche pas la légèreté ni la vitesse quand même !).
Pour résumer, la sécurité, va nous bouffer du temps , du processeur, de la mémoire ; et nous allons doucement vers un temps où nous devrons avoir des ensembles de sécurité actifs comme le sont les antivirus !
Bon, ça c'est pour les mauvaises nouvelles.

Au niveau de l'installation, pour les nouveautés, nous avons depuis quelques versions le choix d'une installation normale ou légère (bien moins de logiciels). Pour moi, pas beaucoup de changement à part que cela m’amènera à travailler un peu sur la liste des programmes à ajouter pour avoir à terme des environnements plus spécialisés et optimisés... pour le retour d'expérience, sachez qu'avoir autant de logiciels ne me pose aucun problème quant aux temps de mise à jour ni même à la fréquence de celles-ci.

Pendant que j'y suis, j'ai des problèmes de son avec un portable Toshiba L500. Ce n'est pas super grave dans la mesure où j'ai du son quand je branche les écouteurs mais rien sur les enceintes internes ; tout fonctionne quand je remet ma 16.04, donc certainement un petit soucis avec un module au niveau du noyau qui se réglera seul au fil des mises à jour de celui ci... parce que j'ai rien trouvé malgré un certain acharnement à activer et modifier les options du noyau...
MAIS... Pour les bonnes, et justement suite à ce problème de son, j'ai fait la connaissance un peu plus poussée avec Pulseaudio qui semble avoir pas mal évolué ces dernières années.
de mon 16.04.6 qui me donne une version 8.0 à une 20.04 qui me donne 13.99.1 j'ai l'impression qu'on a fait un bon... quid de jack que je n'ai jamais réussi à comprendre pour une utilisation bureautique tellement il y a d'options et de possibilités...
Entre autre un mixeur et un module d'effet en temps réel... j'en parle dans la partie installation de programme et je vous invite à aller voir de vous même ce très sympa nouveau module d'effets !
alors je reprend ici une petite liste qui viens de mes programmes à installer et que vous comprendrez sans mal :

##-> Pulse Audio
pulseaudio
pulseaudio-qt
pulseaudio-utils
pulseaudio-equalizer
pulseeffects
pulsemixer
pulseview
pulseaudio-module-zeroconf
pulseaudio-module-bluetooth
pulseaudio-module-gsettings
pulseaudio-module-jack
pulseaudio-module-lirc
pulseaudio-module-raop

alors ? vous le voyez : pulseeffects ?
histoire de vous faire saliver sachez que non exhaustif on y trouve : réverbe, exciter, compresseur multibandes, limiter, autogain, noise gate, delay,... soit un peut tout ce que peut avoir besoin un musicien ou un audiophile ! et, bien sur, un système pour sauver et rappeler des presets...
Comme je parle de PulseAudio, gardons cette petite ligne et procédure dans un coin de la tête quand on perd le son au détour d'un réveil suite à mise en veille ou hibernation :
divers versions plus ou moins simples :

pulseaudio -k && sudo alsa force-reload
killall pulseaudio && pulseaudio
sudo pm-suspend
systemctl --user restart pulseaudio

sans doute un simple sudo killall pulseaudio pourrait suffire... je reviendrait valider tout cela...

Au niveau bureau, gnome est maintenant parfaitement fonctionnel... d'ailleurs je pense que ça fait un moment que c'est le cas mais il manquait un peu l'intégration et on voit qu'il reste encore du boulot car gnome-tweaks-tools n'est pas installé par défaut mais il reste dans les dépôts et ce n'est pas pour rien puisque des optimisations restent seulement accessible depuis lui... ou la ligne de commande.
D'ailleurs il faut aussi installer à la main chrome-gnome-shell pour gérer les extensions dans les navigateurs internet :

sudo apt install chrome-gnome-shell

c'est encore un peu le bordel entre les paramètres système, gnome-tweak-tools et les navigateurs... donc on peut s'attendre à du travail quand à l'intégration future...

Comme je parle de Gnome, je vais revenir sur des découvertes et usages que je trouve bien pratique. D'abord je ne suis pas content de devoir activer mon coin actif qui ne l'est plus par défaut ; donc dans les paramétrages (de tweaks), je retrouve cette fonctionnalité qu'il faut activer à la main ce qui signifie que je vais criser chaque fois que je tomberai sur une machine post installée par quelqu'un d'autre !
Autre effet de bord, je ne sais pas si c'est dû au fait que j'ai joué avec les extensions comme ce qui concerne les docks mais mon option fétiche se désactive alors qu'elle est bien enclenchée et m'oblige à y retourner pour désactiver puis réactiver pour la récupérer... ça sent le patch qu'il va falloir que je fasse et active à l'arrache...

Dans les usages sympathiques, notez les raccourcis Super + flèche (gauche / droite / haut) qui placent la fenêtre active à gauche / à droite / en plein écran... super pratique quand on a plusieurs fenêtres à placer rapidement... alterné avec un alt + tab et plus besoin de mulot pour placer rapidement deux fenêtres sur son écran... bien sûr tout cela devient très vite foireux quand on a plusieurs écrans mais bon, on peut pas tout avoir du premier coup !
Pour ceux qui n'ont pas l'habitude de jouer avec les gestionnaires de fichiers, vous avez aussi le travail en onglets et les raccourcis clavier Ctrl + T pour avoir un nouvel onglet là où vous vous trouvez et Ctrl + N pour avoir une nouvelle fenêtre là où vous vous trouvez. Je souligne le Ctrl + N car précédemment ça repartait du dossier personnel donc il doit y avoir quelque part la possibilité de tweaker cette fonctionnalité.
En d'autre temps, on pouvait également sortir un onglet de la fenêtre pour l'avoir à part devant soit... et bien on ne peut plus !!! mad terminé les onglets qu'on sort et rentre d'une fenêtre à une autre !!!
Pour la petite histoire ces fonctionnalités sont les même avec Firefox qui lui joue parfaitement avec les onglets que je trimbale à longueur de temps d'une fenêtre à une autre !

Habitué à la post installation, je reviens sur gsettings que j'ai découvert dans ce cadre et vous donne quelques bonnes astuces :

gsettings list-recursively > list_de_mes_pref.txt

et le fichier list_de_mes_pref.txt va vous en apprendre beaucoup sur les entrailles de la bête... que dis-je... de votre bête... et là on est presque comme dans la base de registre de Windows... à se demander qui copie sur l'autre... je ne suis pas sûr qu'on va y gagner quand je vois le bordel de cette base et surtout sa lourdeur, son manque de rigueur... on a du soucis à se faire !
pour aller un peu plus loin j'ai trouver une petite ligne magique qui affiche un joli tableau de tout cela avec yad... qui donc doit être installé pour en profiter :

sudo apt install yad

puis

gsettings list-recursively | sed 's/  */\n/;s/  */\n/;s/\&/\&amp;/g' | yad --list --title "gsettings" --item-seperator='\n' --width=1800 --height=800 --wrap-width=600 --column=Group --column=Key --column=Setting --no-markup

Pour en finir de gsettings, les deux lignes à connaître ; une pour lire et l'autre pour écrire une fonction :

gsettings get SCHEMA [:PATH]  KEY
gsettings set SCHEMA [:PATH]  KEY VALUE

petite démonstration... un cas concret
voici une bonne façon de voir l'utilisation de gsettings et de ce script par l'exemple :
comme on peut le voir dans ce post, anciennement la coordonnée du coin actif avec gsettings était différente :

gsettings set org.gnome.shell enable-hot-corners true

en cherchant dans le fichier txt enable-hot-corners j'ai pu retrouver la configuration.
org.gnome.shell est devenu : org.gnome.desktop.interface

gsettings set org.gnome.desktop.interface enable-hot-corners true

Mon coin actif !!!
Quand on prend une habitude, difficile d'en changer. Le coin actif, c'est quand on balance la souris dans le coin en haut à gauche et que ça fait la même chose que quand on appuie sur la touche Super... ça remplace l'accès aux programmes, l'accès à la dock, le alt tab,... tout bénéf pour moi à l'usage au point de faire ça sur tous les PC systématiquement... inutile de vous dire à quel point ça me frustre sur Windows !
Mais ça saute au réveil derrière une mise en veille sur la 20.04 un peu jeune ; donc, je met ici la ligne de commande pour activer le coin actif et un script pour le réveiller après une mise en veille le temps de trouver pourquoi ça saute tout seul.

gsettings set org.gnome.desktop.interface enable-hot-corners true
#!/bin/bash
# ----------------------------------------------
# pour réactiver le hot corner qui passe son temps à se faire la malle !!!
# ----------------------------------------------
gsettings set org.gnome.desktop.interface enable-hot-corners false
gsettings set org.gnome.desktop.interface enable-hot-corners true

le numpad
ah bah tiens... alors que j'écris ces lignes, je me rend compte que le pad numérique n'est pas activé par défaut au démarrage... je pensais me souvenir de ne plus faire cette optimisation que j'ai bien fait de laisser dans mes anciennes installations donc je vais m'y recoller et voir si cela redeviens un tweak obligatoire...

Les fonds d'écran...
conky est la base pour afficher des infos sur l'écran.
Des fils entiers de discussion existent pour son paramétrage et le choix des informations à afficher... d'autant que le format du fichier à légèrement évolué avec le temps et que l'on peut gérer le lancement de script lua voire bash, python....
Outre conky pour avoir des infos, le fond d'écran est un des éléments que chacun fait à sa manière. On peut mettre des coupleurs unies, des dégradés, les images thématiques, des photos de famille des amis de nos explois, nos hobbys, et ces photos peuvent être fixes ou on peut faire des slideshow, des animations, des animaux, de la terre ou des étoiles, des animations spéciales (comme ce très bon tuto de Adrien D pour animer une image en fond d'écran pour gnome)...

voilà pour le moment... je reviendrai ces prochains jours compléter ce post !

Dernière modification par kholo (Le 13/05/2020, à 01:43)

Hors ligne

#6 Le 08/05/2020, à 04:09

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

un peu de réseau...
j'ai déjà parlé du réseau pour les versions précédentes... je vais surtout voir où en sont mes procédures et les versions qui vont avec...
un peu de LAMP ?
je reprend la première partie telle que je l'installe depuis plusieurs années maintenant
LAMPP pour Linux Apache2 MySQL Php PhpMyAdmin
pour l'instant je valide MySql en attendant de tout revalider pour MariaDB
apache

sudo apt install apache2
sudo mv /var/www/html/index.html /var/www/html/apache2.html
firefox http://127.0.0.1/ &

php

sudo apt install libapache2-mod-php php
echo '<?php
   phpinfo();
?>' | sudo tee /var/www/html/phpinfo.php
firefox http://127.0.0.1/phpinfo.php &

mysql

sudo apt install mysql-server

on met le mot de mot de passe !

sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'le_mot_de_pass_choisi';
FLUSH PRIVILEGES;
QUIT;

Phpmyadmin

sudo apt install phpmyadmin

suivez les tuto précédents pour avoir les copies d'écran

firefox http://127.0.0.1/phpmyadmin/ &

pour l'instant j'en reste là mais je terminerai en mettant une version plus actuelle

Dernière modification par kholo (Le 08/05/2020, à 04:46)

Hors ligne

#7 Le 11/05/2020, à 19:43

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

Sauver les petits et jeter l'eau du bain...
maintenant je vais parler sauvegarde...

Avant de se lancer dans les sauvegardes, voyons ce que l'on peut sauver et surtout ce que l'on pourra restaurer...
on va prendre la métaphore bien connue de l'iceberg et commencer par ce qui existe au dessus de la surface de l'eau...
... mais avant, quelques trucs à savoir.

Le terminal s'ouvre avec Super (la touche avec le drapeau dont il ne faut pas dire l'autre nom) puis vous tapez term et vous aurez un choix de terminaux à utiliser. Je préfère gnome-terminal (aka terminal) mais xterm fera très bien l'affaire...
et, en raccourcis Ctrl + Alt + t fonctionne très bien aussi en général...
Vous sélectionnerez une ligne complète ici avec un triple clic (oui, j'ai bien dit triple).
Les lignes de commande se copient collent dans le terminal avec un clic droit / copier puis dans le terminal un clic droit / coller... il y a d'autres façons mais celle ci parlera à tous !

Arborescence :
Je vais détailler quelque fois l'arborescence complète en partant de votre dossier personnel suivi des sous dossiers pour vous simplifier les copier coller... ~/ est le dossier personnel de l'utilisateur actif...
donc ~/ c'est pareil que /home/toto (si vous êtes l'utilisateur toto qui est connecté !)... Votre navigateur reconnaîtra cette notation et il n'est pas utile de l'adapter... (oui... je suis cool ;) !)

C'est parti !

Partie 1 : évidences
Les documents personnels de chaque utilisateur créé sur le système. Une façon simple de les voir est de faire un :

ls /home

mais attention à cette façon de faire car certains utilisateurs peuvent ne pas avoir de dossier personnel ou que leur dossier personnel peut ne pas être dans /home (je le précise juste pour les barbus... NB : oui j'ai prévu ce à quoi vous pensez mais plus tard !).
On ne va pas récupérer bêtement tout le dossier... mais je ferais un a parte à la fin de ce tutoriel...
Une autre façon de voir tous les utilisateurs est de regarder dans le fichier /etc/passwd

cat /etc/passwd

les utilisateurs du systèmes auront comme id un nombre supérieur ou égal à 1000... le premier étant 1000

toto:x:1000:1000:toto,,,:/home/toto:/bin/bash

ici on voit notre utilisateur toto...
en fait tout cela est un raccourcis mais si vous êtes sorti des clous, vous savez de quoi je parle donc je ne m'étale pas plus... pour les autres, j'en ai suffisamment dit...

Ceci vu, vous aller récupérer tous les fichiers égarés et les réunir dans des dossiers puis vous pourrez recenser tous les dossiers et essayer de les réunir ou ranger intelligemment...
A ce titre, une option apparaît dans Nautilus (aka Fichiers) quand on sélectionne plusieurs fichiers pour les réunir au sein d'un même dossier... sous 16.04 et je crois 18.04, cette option est une calamité et fait planter le gestionnaire de fichier... j'y préfère un script que je met dans mes "Nautilus Script" et qui a quelques défauts mais ne plante pas... LUI !!!
Ce script est à mettre dans le dossier de vos Nautilus scripts et se nomme : Créer_une_série_dans_un_dossier
Il regroupe des fichiers dans un même dossier après vous avoir demandé de donner un nom à ce dossier et, petite amélioration, reprend le nom du premier fichier, ce qui est bien pratique pour ne pas avoir à retaper ce nom quelques fois.
J'ai ajouter aussi une routine pour que le script sorte en cas de sélection d'un dossier car je voulais qu'il soit spécialisé dans les fichiers... et son comportement gère mal les sélections multiples dans une vue en arborescence et ce bien que j'utilise cette vue intensivement... bref, il est très perfectible mais me rend bien service (et ne plante pas, LUI !!).
NB : j'ai tout laissé dedans dont des lignes qui servent au débogage... il est telle quel depuis 2015-2016, inutile de vous dire qu'il fonctionne bien dans les bonnes conditions. On pourrait le perfectionner... je vais y penser...
pour utiliser mon script, un petit tuto fécomsa :
on crée le fichier :

gedit ~/.local/share/nautilus/scripts/Créer_une_série_dans_un_dossier

et on y colle le texte suivant...

#!/bin/bash
#***************************
# kholo-informatique 2016
# www.kholo-informatique.fr
#***************************
NOM="Déplacer une série dans un dossier"
VERSION="2015.10.23.1747"
#~ Ce script crée des séries dans un sous répertoire
#~ à partir d'un ensemble de fichier
#~ il faut sélectionner un ou plusieurs fichiers

for i in $@; do
	if [ -d "$i" ]; then
		zenity --info --text="
		'$i' est un répertoire.
		usage : sélectionnez un ou plusieurs fichiers
		ils seront réunis dans un sous dossier
		une boite de dialogue vous proposera des choix pour le nom"
		exit
	fi
done

NB_ARG=$#

# Ask the user to select
title="Création d'un dossier"
suggested_text="$1"
suggested_text="${suggested_text%.*}" 

dirdest=$(zenity --entry --title="$title" --entry-text="$suggested_text")
if [ -z "$dirdest" ]; then
        $ZENITY --error --title="$title" --text="traitement interrompu"
        exit 0;
fi

mkdir "$dirdest"
	#~ zenity --info --text="déplacement de 
	#~ $dirdest
	#~ dans
	#~ $@
	#~ "
	
for arg in "$@"
do
	mv "$arg" ./"$dirdest"
	#~ zenity --info --text="TRAITEMENT
	#~ $arg
	#~ $dirdest
	#~ "
	shift
done  | zenity --progress --pulsate --text="Traitement des $NB_ARG fichiers" --auto-close --auto-kill
#~ zenity --info --text="Traitement des $NB_ARG fichiers"
notify-send"Traitement des $NB_ARG fichiers"
exit

vous rendez le script exécutable

chmod +x ~/.local/share/nautilus/scripts/Créer_une_série_dans_un_dossier

puis il suffit de sélectionner des fichiers dans un dossier puis clic droit / Scripts / Créer_une_série_dans_un_dossier
et voilà !
bien... vous devriez déjà avoir fait le tour de vos dossiers personnels : Bureau, Documents, Images, Musique, Vidéos ou se regroupent  vos documents, photos, images, vidéos, ce qui traîne sur le bureau...

Partie 2 : évidences... mais moins que la partie 1
Toujours la métaphore de l'iceberg... et nous passons au niveau de l'eau... juste le cul dans l'eau pour le moment...
Moins réflexes, allez faire un tour dans le dossier Téléchargements pour le nettoyer et conserver les papiers ou photos téléchargées par exemple mais aussi certainement d'autres types de documents qui pourraient avoir de l'importance à vos yeux comme des pdf... Ce dossier est typiquement celui où va servir le petit script au dessus histoire de regrouper votre petit fouillis accumulé dans le temps.

Toujours dans les dossiers pas communs qu'on oublie, le dossier : Modèles. Et oui, vous avez peut être pris du temps pour vous faire un petit gabarit pour faire plus vite votre courrier avec son entête et des champs auto-remplis voire un petit montage image sur Inkscape...
Vous ne vous servez pas de se dossier ? ... et bien c'est bien dommage !!!
Vous créé un document avec un logiciel que vous utiliser souvent et, dans ce document, vous mettez souvent les même informations... par exemple une tête de lettre avec votre adresse et un peu de mise en page pour faire simple... vous enregistrez ce document dans le dossier Modèles puis, à chaque besoin, vous vous rendez dans un dossier puis clic droit, Nouveau Document, vous choisissez un modèle et vous le nommez (ou renommez avec F2 : petit bug dans 20.04 grrrrr !!!!)...
A savoir, on a souvent besoin d'un fichier texte sous le pouce pour prendre une note à la volée...un numéro de téléphone, un copier coller... alors un modèle de fichier texte est bien pratique... une petite ligne de code à copier / coller (encore un bug gentil, pas de modèle pour ça et on doit le faire en ligne de code !):

touch ~/Modèles/"fichier texte.txt"

Quelques programmes portables
Viennent ensuite les programmes portables comme snap, appimages, flatpack, dockers ou certains .run qui peuvent avoir un dossier dans votre dossier personnel ou dans le dossier /opt.

A la racine de votre dossier personnel vous pouvez aussi trouver des dossiers de configuration spécifiques à certains programmes  comme VirtualBox pour le programme du même nom ou Scratch,...

Partie 3 : On continue à effleurer notre monde...
On continue à descendre dans la métaphore de l'iceberg... et nous passons sous le niveau de l'eau : les trucs cachés... On ne va pas aller très profond encore... juste des choses évidentes !
D'abord, dans votre dossier personnel, faites apparaître les fichiers cachés en passant dans les options du navigateur de fichiers ou grâce à la combinaison de touche Ctrl + h (valable chez tous les navigateurs dignes de ce nom).
Un dossier est à regarder de près : .config... Il porte très bien son nom celui là aussi !
Sans doute, utilisez vous souvent les même programmes comme Firefox, Thunderbird, Chromium, Geany,... et sans doute avez vous quelques habitudes... une bonne façon de retrouver ces logiciels dans leur état habituel est de récupérer leur profile dans votre utilisateur que vous pourrez réinjecter lors d'une réinstallation voire partager avec d'autre installation voire d'autres utilisateurs...
Là il va falloir mettre un peu les mains dans le cambouis ou demander de l'aide à quelqu'un qui a déjà essayer... nous verrons plus loin pour sauver tous ces paramètres et il sera toujours temps de les retrouver...

Vous allez aussi trouver les profiles de Mozilla dans... roulement de tambour : vous avez trouvez : ~/.mozilla
presque... c'est bien le cas pour Firefox ~/.mozilla/firefox ; mais Thunderbird sera dans ~/.thunderbird
A noter pour Mozilla l'utilisation d'un fichier profile.ini qui va regrouper vos profiles et qui est bien utile pour retrouver un profile qui sera ailleurs sur votre système que là où il est attendu (moi je préfère les mettre ailleurs... pour ne pas dire n'importe où).
par exemple :

[Profile5]
Name=un Nom de Profile
IsRelative=0
Path=/ailleurs/Mon Monde/profiles/FF/profile machin

IsRelative=0 justement pour indiquer que ce profile sera ailleurs que dans un sous dossier à côté de ce fichier profile.ini.

Nous arrivons à un niveau bas de vos documents au niveau du système et nous pouvons encore descendre un peu :
quelque logiciels demandent une sauvegarde et de bien comprendre leur fonctionnement autant pour savoir quoi conserver que pour une restauration postérieure : par exemple vos sites internet locaux. Il devient courant qu'on ai un petit réseau local ouvert ou non et les sites que l'on va administrer seront constitués à minima de fichiers dans des dossiers qui seront placés ou liés vers /var/www ou /srv voire dans votre dossier personnel (je vais y revenir) ainsi qu'éventuellement de bases de données gérées par MySql ou son fork Maria DB par exemple (je parle d'une serveur LAMP ici...).
Si vous avez de tels systèmes pensez à leur sauvegarde.

A parte pour une page "internet" locale (on dira intranet):
Pas la peine de monter un système compliqué comme LAMP pour avoir une page sur votre ordinateur pour y conserver des informations que vous seul pourrez consulter ou utiliser...
Par exemple, créez un dossier www dans votre dossier personnel (www n'est pas une obligation), puis prenez un traitement de texte et créez une page avec du texte, des images, des liens... enregistrez cette page dans le dossier www avec l'extension .html (index.html par convention mais pas obligatoire) puis ouvrez cette page avec votre navigateur internet et définissez cette page par défaut ou créez un favoris vers cette page.

Vos mots de passe
C'est le logiciel SeaHorse qui se charge de conserver vos mots de passe et vous aidera à les gérer avec une interface graphique. Ici on touche à un élément sensible de votre système et je ne m’étalerai pas car il est préférable d'y dédier un fil.
Sachez qu'il existe aussi des fichiers .pub pour conserver des clés de connexions avec des serveurs ou comme serveur ainsi que des fichiers pour les clés de chiffrement pgp ou gpg (l'un l'autre ou les deux... j'ai un doute...)...

Partie 4 : On est au niveau du système...
Peut-on encore descendre ? OUI !
le dossier /etc
Nous arrivons à un niveau très bas de notre système.. on va pouvoir récupérer ici des informations de configuration qui consernent notre système à proprement parler comme fstab pour les montages des disques dur, Grub notre bootloader, les configurations de LAMP, on peut aussi avoir créé ou installer des petits services (car il est très simple d'en créer de toute pièces même aujourd'hui avec systemd).
Donc on va se faire une sauvegarde de notre /etc pour faire très simple car cette sauvegarde sera surtout utilisée comme référence en cas de réinstallation et il sera rare de vouloir juste réinjecter un fichier mais plutôt une ou des parties d'un ou de plusieurs fichiers.
Ce dossier est rarement volumineux et contient beaucoup de fichiers en texte pure alors un bon coup de tar pour conserver les droits et l'arborescence et l'affaire est dans le sac !

Épilogue
Je vais laisser de la place ici pour un ensemble de scripts qui sauvegardent les données de certains dossiers dans des fichiers uniques souvent compressés et très pratiques pour le dossier /etc par exemple mais on peut également les utiliser pour les dossiers cachés personnels par exemple :

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="# ce script crée une sauvegarde de /etc dans une archive"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------

# Ne pas lancer avec sudo !

leTexte="$FONCTION

continuer ?"
zenity --question --text="$nomlogiciel - V $VERSION" --text="$leTexte"
if [ $? -eq 0 ]
then
	echo "on continue"
else
	exit 1
fi

# ce script crée une sauvegarde de /etc

#************************************************#
# VARIABLES
#************************************************#
FILEOUT="$(date +%F)-SauvegardeDuRepertoireETC"

#************************************************#
# copie du dossier /etc dans une archive
#************************************************#
#non compressé
# sudo tar -cvf $FILEOUT.tar /etc/

#compressé
sudo tar -zcvf $FILEOUT.tar.gz /etc/

# On donne des bons droits pour l'utilisateur 
sudo chmod 550 $FILEOUT.tar* 
sudo chown $USER $FILEOUT.tar*

echo "appuyer sur Entrée pour continuer..."
read -r
exit 0

ici j'ajoute un script qui va sauvegarder un de vos dossiers personnels...
ici ~/.local/share mais ça se change très facilement !

#!/bin/bash
# ----------------------------------------------
# nomlogiciel="${0##*/}"
FONCTION="# ce script crée une sauvegarde de :"
un_dossier="$HOME/.local/share"
# VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------

leTexte="$FONCTION
${un_dossier}
continuer ?"
zenity --question --width=300 --height=150 --text="$nomlogiciel - V $VERSION" --text="$leTexte"
if [ $? -eq 0 ]
then
	echo "on continue"
else
	exit 1
fi

#************************************************#
# VARIABLES
#************************************************#

un_dossier_out="${un_dossier}"
remplacement="-"
un_dossier_out="${un_dossier_out//\//$remplacement}"
un_dossier_out="${un_dossier_out//'_'/$remplacement}"   
un_dossier_out="${un_dossier_out//'~'/$remplacement}"   
un_dossier_out="${un_dossier_out//'.'/$remplacement}"   
# un_dossier_out="${un_dossier_out//'-'/$remplacement}"   
# un_dossier_out="${un_dossier_out//'+'/$remplacement}"
# un_dossier_out="${un_dossier_out//']'/$remplacement}"
# un_dossier_out="${un_dossier_out//'['/$remplacement}"
un_dossier_out="${un_dossier_out//'---'/$remplacement}"
un_dossier_out="${un_dossier_out//'--'/$remplacement}"
#~ un_dossier_out="${un_dossier_out//$modele/$remplacement}"
# echo "${un_dossier_out}"

FILEOUT="$(date +%F)-SauveRep-${USER}${un_dossier_out}"
echo "FILEOUT => ${FILEOUT}"

# exit 14
#************************************************#
# copie du dossier dans une archive
#************************************************#
#non compressé
# tar -cvf "$FILEOUT.tar" "${un_dossier}"

#compressé
tar -zcvf "$FILEOUT.tar.gz" "${un_dossier}"

# chmod 660 "$FILEOUT.tar"* 
#chown $USER "$FILEOUT.tar"*

echo "appuyer sur Entrée pour continuer..."
read -r

exit 0

Les programmes pour faire tout cela
On ne va pas se quitter comme cela... pour dire vrai tout commence maintenant que vous savez de quoi se compose votre système.
Vous devez savoir que des programmes peuvent sauvegarder tout ou partie de votre système et / ou de vos documents.
Vous pouvez faire des sauvegardes incrémentielles (on conserve des versions antérieures) ou des images qu'il faudra mettre à jour. Une ancienne façon de faire était d'utiliser un logiciel Rsync et son interface graphique Grsync qui permet de faire une copie d'une ensemble de fichiers d'une arborescence et d'ajouter les nouveautés au fur et à mesure du temps pour garder des versions même antérieures particulièrement lors des suppressions ou déplacements. Il existe aussi des logiciels qui font une copie conforme de votre système et la met à jour dans le temps (Time Machine, très connu dans le monde des mac)... vous pouvez faire des images d'une ou plusieurs partitions voire d'un disque complet (mais cela demande de la place).
Vous pouvez gérer une bonne partie de la conservation de vos documents simplement en les copiant sur un disque dur externe.

Je suis RAID ! ... "je s'appelle groot !"
En informatique, on ne cherche pas à éviter les pannes mais on cherche à éviter les pertes de données.
Je ne peux pas parler des sauvegardes sans parler des montages en RAID. Le RAID est une façon de conserver en place et en permanence vos documents et systèmes en multipliant les supports de stockage. Une autre utilisation du raid est pour augmenter les performances de vos sauvegardes mais ce n'est pas le sujet ici. Je parlerai de conservation.
Le raid est indexé avec des numéros ou on donne aussi des noms :
par exemple le raid 1 aussi appelé mirroring est utilisation de deux disques, l'un étant une copie exacte de l'autre. Chaque modification du disque principal est répercutée sur l'esclave pour garder la copie parfaite à quelques millièmes, centièmes, dixièmes ou secondes près.
Autre raid connu, le raid 5 qui réparti les données sur au moins 3 disques de façon à pouvoir recréer un des disques qui viendrait à lâcher avec les données des autres disques sans pour autant arrêter d'utiliser ces disques (on parle de mode dégradé). L'utilisation de plus de disques permettra de supporter des pannes de plus de disques au même moment ce qui réduit encore les risques de perte de données.
Ensuite on peut superposer les RAID en faisant un raid 1 d'un raid 5 (soit 3 disques en raid 5 doublés ; soit 6 disques en tout)... et pas obligatoirement sur la même machine... mais il faut savoir que tous les raids de conservation perdent de la place pour mettre en place cette stratégie. Pour le raid 1, un disque entier est en double donc cela divise la place totale par deux, pour le raid 5 jusqu'à un disque entier sur la grappe peut être "perdu" pour le hashage spécifique à ce format.
NB : Pour le calcul, 1 To de plusieurs disques en raid est différent d'1 To sur un seul disque dur... on n'aura pas la même taille au final ni la même fiabilité.
NB 2 : plus de disques dans une tour veut dire besoin d'une alimentation plus forte et plus stable !
NB 3 : une discussion sur ce forum parle de qu'est ce qu'un serveur : il suffit de comparer le poids d'un serveur et d'une tour de bureautique pour comprendre que ce n'est pas le même type de matériel.

Dernière modification par kholo (Le 12/05/2020, à 17:42)

Hors ligne

#8 Le 27/08/2020, à 20:51

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

Les petits trucs qui manquent tout le temps... et qui perdurent ou que je dois patcher...
J'ai beau faire des tas d'installations et donc de post installations, je me rends compte qu'à l'usage, il manque toujours des petits trucs qu'il faut à chaque fois revoir. Je vais mettre ici les trucs que j'oublie tout le temps... et qu'il n'est pas facile d'automatiser.
Association de programmes et de fichiers :
Celui là est presque systématique et dépends complètement des programmes installés ET de nos petites préférences...
on croit n'avoir rien oublié mais il reste tout le temps une extension qui n'est pas associées au bon(s) programme(s)...
donc, d'abord dans les propriétés systèmes on met les bons types avec un programme en particulier..
ensuite il faut faire le tour des format qu'on utilise le plus fréquemment pour voir si tout est bien comme il faut... ce qui n'est jamais le cas pour moi !

Gnome shell ; Rendez moi mon coin :
quand on travail à la souris et qu'on a goûté au coin actif, on ne peut plus s'en passer...
2 choses d'abord il faut l'activer dans les tweak : dans les programmes ajustements (tweaks) puis barre supérieur puis option Coin actif pour la vue d'ensemble des activités
ensuite il y aura certainement un patch parce que cette option se désactive sans arrêt...

doublons...
je passe mon temps à avoir des doublons alors, en tombant sur un fil qui en parlait, j'ai fini par fare le tour de ce qu'il me faut pour faire un peu le vide...
ça fonctionne avec fdupes... et c'est ici

à suivre...

Dernière modification par kholo (Le 08/09/2020, à 16:57)

Hors ligne

#9 Le 27/08/2020, à 22:15

jeange

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

kholo a écrit :

ensuite il y aura certainement un patch parce que cette option se désactive sans arrêt...

Pas encore chez moi depuis fin 2018 smile


PCLF CLEVO W670SZQ  SSD 480Go  i3  Ram 12Go  Haswell HD4600 Ubuntu 20.04.6 et 22.04.3 LTS 64bit
033 V nospE  03.01.2 pmiG
Merci de donner les retours avec les balises < > et les allers avec les valises, et toujours pas de raton laveur.
%NOINDEX%

Hors ligne

#10 Le 28/08/2020, à 14:43

kholo

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

salut jeange,
je me suis fait un script pour l'activer facilement...
comme ça tu as la ligne pour le faire et le défaire :

gsettings set org.gnome.desktop.interface enable-hot-corners true

et le script...

#!/bin/bash
# ----------------------------------------------
## active le coin actif sous gnome shell

gsettings set org.gnome.desktop.interface enable-hot-corners false
gsettings set org.gnome.desktop.interface enable-hot-corners true

exit 0

Hors ligne

#11 Le 28/08/2020, à 14:47

jeange

Re : [Tuto] Post Installation Ubuntu 20.04 : le PC à kiki

merci kholo,
je garde cela dans ma doc au cas où
smile


PCLF CLEVO W670SZQ  SSD 480Go  i3  Ram 12Go  Haswell HD4600 Ubuntu 20.04.6 et 22.04.3 LTS 64bit
033 V nospE  03.01.2 pmiG
Merci de donner les retours avec les balises < > et les allers avec les valises, et toujours pas de raton laveur.
%NOINDEX%

Hors ligne