#!/bin/sh ################################################################################################ ## ## Nom: new_post_install.sh ## ## Version: 0.3.0 ## ## Licence: Creative Commons ## ## Comportement: Script de post-installation pour une distribution Debian GNU/Linux Sid ## Les variables en miniscules sont les variables issues de mon template de script shell ## Pour les variables spécifiques à un script, je les met en MAJUSCULES ## ## ## ################################################################################################ ## ## Date de création: 15-02-2012 ## ## Auteur: Gardouille ## ## Dépendances: Je me base sur un ensemble de fichiers seed situés dans un répertoires seed/ pour pré-configurer quelques logiciels: ## backuppc.seed ## cups.seed ## ddclient.seed ## hddtemp.seed ## keyboard.seed ## locales.seed ## rcs.seed ## restart_no_asking.seed ## samba.seed ## sun-java6-jre.seed ## x11-common.seed ## ## Dernière modifications: ## 2015-09-03 ## - Add asr-manpages, knocd, lynx, rofi, urlview rxvt-unicode-256color pkg ## 2015-09-02 ## - Add sudo pkg and add the standard user to the sudo group ## - New name for Debian multimedia keyring pkg: deb-multimedia-keyring ## - Create multiple preferences files ## - Add iceowl-extension pkg, the new way to manage calendar (lightning) with Thunderbird/Icedove ## 2014-12-24 - ## - Ajout de xbacklight ## 2014-12-08 - ## - Ajout de mat, dwb ## 2014-05-19 - ## - Ajout de luakit ## 2014-04-28 - ## - Ajout de multitail ## 2014-01-09 - ## - Ajout de knockd et pidgin-otr ## 2013-11-27 - ## - Ajout de i3lock comme screensaver ## 2013-11-23 - ## - Ajout de weechat-curses comme client irc à la place de irssi ## - Ajout de git - ifscheme - openvpn - midori (à la place de chromium) - wmctrl - ## - Suppression de sun-java6-jre qui n'est plus supporté ## 2013-06-28 - 0.03.29 ## - ajout des paquets: libreoffice-pdfimport fonts-linuxlibertine ## 2013-06-20 - 0.03.28 ## - Ajout de l'installation du paquet wakeonlan ## 2013-05-27 - 0.03.27 ## - Remplacement de locate par mlocate qui en est sa nouvelle implémentation ## 2013-02-27 - 0.02.27 ## - Ajout du paquet moreutils ## 2012-11-12 - 0.11.12 ## - Ajout du paquet redshift pour régler la chaleur de l'écran ## - + l'application graphique gtk-redshift ## 2012-09-06 ## - Ajout du paquet dnsutils ## 2012-08-09 - 0.8.09 ## - Ajout du téléchargement et de l'installation de neap ## 2012-06-29 - 0.6.29 ## - Ajout du paquet wpasupplicant qui avait été oublié ... ## - Ajout de la dépendance lsof pour vérifier les redirections des sorties ## 2012-06-22 - 0.6.22 ## - Ajout du thème gtk2 cleanice ## 2012-05-01 - 0.5.01 ## - Remplacement de firmware-brcm80211 au profit de broadcom-sta-dkms ## 2012-04-23 - 0.4.23 ## - Remplacement de comix par son fork mcomix (comix a été abandonné) ## 2012-04-19 - 0.4.19 ## - Ajout du paquet vlock ## 2012-04-11 - 0.4.11 ## - Ajout du paquet mumble ## 2012-04-06 - 0.4.6 ## - Ajout de sun-java6-jre (nécessaire pour le vnc dans firefox :'( ) ## 2012-04-04 - 0.4.4: ## - Ajout du paquet alsa-utils ## 2012-04-03 - 0.4.1: ## - Ajout du paquet mirage (visionneuse image) ## - Ajout du paquet keychain (clef ssh/passphrase) ## 2012-03-30 - 0.3.3: ## - Ajout du paquet ntp ## 2012-03-28 - 0.3.2: ## - Ajout du pack de langue fr pour icedove et iceweasel ## - Ajout d'un fichier ~/.xinitrc pour la configuration d'Openbox ## - Ajout des parties: Outils système (graphique), Carte graphique (nvidia), wifi (broadcom) ## 2012-03-23 - 0.3.1: ## - Ajout de vim et tmux dans la partie Outils systèmes ## - Ajout des parties: serveur graphique, openbox, outils bureautique (graphique+shell) ## - Ajout des parties: Multimédia (graphique+shell), internet (graphique+shell) ## 2012-02-17 - 0.1.2: ## - Suppression du pager most car less une fois bien configuré (lesspipe) fait mieux ## - Changement de la valeur pour le lancement de apt-listchanges en fonction du niveau ## de debug choisi (affichage des modifications lors de la maj d'un paquet) ## 2012-02-16 - 0.1.1: ## - Ajout d'une variable propre à ucf (Update Configuration File) qui permet d'utiliser ## automatiquement le fichier de configuration déjà en place plutôt que le fichier ## proposé par la maj du paquet ## - Ajout d'un fichier seed (pré-configuration) pour autoriser le redémarrage automatique ## de service si maj à partir d'aptitude ## - Utilisation de dd à la place de read pour la fonction d'attente ## - Ajout d'une fonction pour pré-charger la configuration d'un paquet (seed). ## 2012-02-15 - 0.1: ## - Reprise du script original pour l'alléger et le compléter ## - Ajout d'une fonction qui attend l'appui sur une touche # ********************************************************************************************** # ********************************************************************************************** ## À Modifier: ## - Supprimer apt-listbugs (commenter /etc/apt/apt.conf.d/10apt-listbugs)? ## - Exporter des variables le temps de l'installation pour l'automatisation ## - Ajouter un warning si pas de dossier seed dans le répertoire d'install ? ## - Ajouter un warning pour prévenir qu'il est nécessaire d'effectuer des modifications (ddclient, ) ## - Ajouter la purge de tous les fichiers de configuration inutiles ## - aptitude purge '~c' ## - Essayer de configurer xclip pour tmux ## ################################################################################################ ## Vérification que le script est bien lancé en root if [ "${USER}" = "root" ]; then echo "Lancement du script" else echo "/!\\ Le script nécessite d'être root /!\\" exit 1 fi # ********************************************************************************************** # # Variables globales # # ----------------------------------------------------------- script_path=$(dirname $0) ## Choix du mode d'exécution du script: (cf fonction def_debug) ## Niveau 0 # Exécution automatique avec normalement aucune interaction avec l'utilisateur et peu de log ## Niveau 1 et 2 # Exécution automatique avec un peu plus d'information dans les logs ## Niveau 3 # Exécution manuelle avec tous les logs ## Niveau 4 # Reprise du niveau 3 sur la sortie standard ## Niveau 5 # Exécution automatique avecla sortie standard ## Niveau 6 # Mode debug mode_debug=5 ## Architecture de la distribution ARCH="" ## Options d'aptitude en fonction du niveau de debug OPTIONS="" # Default grub timeout grub_timeout='5' # Load additionnal informations (new_username, new_user_mail, …) and override some variables if [ -f ${script_path}/informations ]; then . ${script_path}/informations else printf '%b' "You should define a ${script_path}/informations file\n" printf '%b' "Or simply copy the template:\n" printf '%b' "cp ${script_path}/Informations.template ${script_path}/informations\n" exit 1 fi # Fin des variables globales # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Fichiers globaux # # ----------------------------------------------------------- # ## Répertoire de log log_dir="/home/${new_username}/log/`date +"%d"-"%m"-"%y"`" # !! Pour utiliser un répertoire de log, décommenter la ligne suivante: #mkdir -p $log_dir if [ -d ${log_dir} ]; then ## Fichier de log placé dans le répertoire de log fichier_log="${log_dir}/new_post_install.sh.log" ## Fichier de erreur placé dans le répertoire de log fichier_erreur="${log_dir}/new_post_install.sh.err" else ## Fichier de log "normal" fichier_log="new_post_install.sh.log" ## Fichier de erreur "normal" fichier_erreur="new_post_install.sh.err" fi ## Fichier qui reprend toutes les informations pour l'utilisateur à la suite de l'installation. INFORMATION="information.txt" # Fin des fichiers globaux # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Fonctions globales # # ----------------------------------------------------------- ## Fonction d'affichage en fonction du mode debug choisi echod() { [ "${mode_debug}" -ge 5 ] && echo "\n(DEBUG) $*" ; } echok() { [ "${mode_debug}" -ge 3 ] && echo "(ok) $*" ; } echoi() { [ "${mode_debug}" -ge 2 ] && echo "(ii) $*" ; } echow() { [ "${mode_debug}" -ge 1 ] && echo "(!!) $*" ; } echnk() { [ "${mode_debug}" -ge 0 ] && echo "(EE) $*" ; } ## Redirection de la sortie standard (stdout) vers le fichier de log redirect_stdout() { # On test si le descripteur de fichier 6 existe déjà if [ ! "$(lsof -a -p $$ -d6 | grep 6)" ]; then # Si stdout n'est pas déjà redirigé # Sauvegarder la valeur de stdout dans le descripteur de fichier 6 exec 6>&1 # stdout remplacé par le fichier de log exec > ${fichier_log} echok "stdout redirigé" else echow "stdout déjà redirigé ..." fi } ## Restauration de stdout restore_stdout() { # Test si le descripteur de fichier 6 existe if [ "$(lsof -a -p $$ -d6 | grep 6)" ]; then echok "Restauration de stdout et fermeture du descripteur de fichier 6" # Restaurer stdout et fermer le descripteur de fichier #6 exec 1>&6 6>&- else echoi "Le descripteur de fichier 6 n'existe pas. stdout est normalement en place" fi } ## Redirection de la sortie d'erreur standard (stderr) vers le fichier d'erreur redirect_stderr() { # On test si le descripteur de fichier 7 existe déjà if [ ! "$(lsof -a -p $$ -d7 | grep 7)" ]; then # Sauvegarder la valeur de stderr dans le descripteur de fichier 7 exec 7>&2 # stderr remplacé par le fichier d'erreur exec 2> ${fichier_erreur} echok "stderr redirigé" else echow "stderr déjà redirigé" fi } ## Restauration de stderr restore_stderr() { # Test si le descripteur de fichier 7 existe if [ "$(lsof -a -p $$ -d7 | grep 7)" ]; then echok "Restauration de stderr et fermeture du descripteur de fichier 7" # Restaurer stderr et fermer le descripteur de fichier #7 exec 2>&7 7>&- else echoi "Le descripteur de fichier 7 n'existe pas. stderr est normalement en place" fi } ## Fonction de vérification du code retour de la commande précédemment exécutée # Affiche un message relatif au code retour, et peut sortir du script. # - Prototype : check_output "MESSAGE_RELATIF_À_LA_COMMANDE" check_output() { ## Vérification du code retour de la dernière commande case "${?}" in 0 ) ## Si 0, tout s'est bien passé echok "${1}\n" > "${fichier_erreur}" ## On vide le fichier d'erreur qui aurait pu récupérer des warnings ou autre # Appel de la fonction d'attente (appui sur une touche) attente ;; ## Pas d'erreur * ) ## Si différent de 0 ## On affiche le message relatif à l'erreur echnk "Erreur lors de: -> ${1} <-" echoi "Voir le fichier ${fichier_erreur} pour plus d'information." ## Et on arrête le script avec un code retour 1 echnk "/!\\ Arrêt du script /!\\ " exit 1; ;; esac } ## Fonction qui crée les fichiers passés en paramètres ## Si les fichiers existent déjà, ils sont supprimés puis recrées ## Prototype: create_file $1 [$2 $3 ... $x] ## $1: nom du premier fichier à créer create_file() { # Parcourir tous les arguments et les crée si nécessaire for fichier in $*; do if [ -f ${fichier} ]; then rm -f ${fichier} touch ${fichier} check_output "Suppression puis création du fichier ${fichier}" else touch ${fichier} check_output "Création du fichier ${fichier}" fi done } ## Fonction qui permet de redéfinir les fichiers de log # Prototype: change_log_file $1 # $1: nouveau nom du fichier de log change_log_file() { # Restauration des sorties standard restore_stdout restore_stdin # Redéfinition des fichiers de logs pour mieux correspondre à l'action en cours if [ -d ${log_dir} ]; then ## Fichier de log placé dans le répertoire de log fichier_log="${log_dir}/${1}.log" ## Fichier de erreur placé dans le répertoire de log fichier_erreur="${log_dir}/${1}.err" else ## Fichier de log "normal" fichier_log="${1}.log" ## Fichier de erreur "normal" fichier_erreur="${1}.err" fi # Création des fichiers de logs create_file ${fichier_log} ${fichier_erreur} # Rediriger les sorties standard redirect_stdout redirect_stderr } ## Fonction d'attente # Attend l'appui sur une touche si le mode debug le permet # Prototype: attente attente() { if [ "${mode_debug}" -ge 6 ]; then echod "Appuyer sur la touche 'Entrée' pour continuer ..." #read -s -n1 /dev/null 2> /dev/null dd bs=1 count=1 > /dev/null 2>&1 # Le problème avec la commande `read` est que les différents shell (sh, bash, zsh, ...) en ont une implémentation # différente. L'utilisation de `dd` est en revanche fonctionnelle partout. fi } ## Définition du niveau de debug ## Prototype: def_debug $1 ## $1: valeur comprise entre 0 et 2 pour déterminer le niveau de debug ## Niveau 0 # Exécution automatique avec normalement aucune interaction avec l'utilisateur et peu de log ## Niveau 1 et 2 # Exécution automatique avec un peu plus d'information dans les logs ## Niveau 3 # Exécution automatique avec tous les logs ## Niveau 4 # Reprise du niveau 3 sur la sortie standard ## Niveau 5 # Mode debug def_debug() { case "${1}" in 0) ## Niveau minimum avec le minimum de contenu dans les fichiers de logs # La sortie standard sera redirigée dans un fichier de log redirect_stdout # La sortie d'erreur sera redirigée dans un fichier d'erreur redirect_stderr # Aptitude en tout automatique OPTIONS="-y" # Ne pas afficher les changements sur les paquets lors des mises à jour sed -i 's/pager$/none/' /etc/apt/listchanges.conf ;; 1) ## Niveau bas avec seulement les erreurs et les warnings dans les logs redirect_stdout redirect_stderr # Aptitude en tout automatique OPTIONS="-y" # Ne pas afficher les changements sur les paquets lors des mises à jour sed -i 's/pager$/none/' /etc/apt/listchanges.conf ;; 2) ## Niveau intermédiaire avec les erreurs, les warnings et les informations redirect_stdout redirect_stderr # Pas d'options pour aptitude OPTIONS="-y" # Ne pas afficher les changements sur les paquets lors des mises à jour sed -i 's/pager$/none/' /etc/apt/listchanges.conf ;; 3) ## Niveau moyen avec presque tous les echos (sauf DEBUG) redirect_stdout redirect_stderr # Pas d'options pour aptitude OPTIONS="" ;; 4) ## Niveau élevé avec presque tous les echos (sauf DEBUG) sur la sortie standard redirect_stderr # Pas d'options pour aptitude OPTIONS="" ;; 5) OPTIONS="-y" # Ne pas afficher les changements sur les paquets lors des mises à jour sed -i 's/pager$/none/' /etc/apt/listchanges.conf ;; 6) ## Niveau debug avec tous les echos et les sorties non redirigées # Pas d'options pour aptitude OPTIONS="" echo "Mode debug" attente ;; *) ## Niveau non pris en compte echo "Erreur, le niveau choisi (${1}) n'est pas géré" esac } ## Fonction d'installation # Récupère la liste des paquets à installer et le type de ces paquets. # Prototype: aptins "DESCRIPTION_PAQUET" paquet1 paquet2 ... paquetX # Les options sont définies en fonctions du niveau de debug # Utilisation de la fonction check_output pour vérifier que tout s'est bien passé aptins() { ## On récupère la description DESCR_PAQUET="${1}" ## Décale la liste des paramètres, $2 devient $1, ... Permet de supprimer la description des paquet. shift ## Installation de la liste des paquets passées en paramètre aptitude ${OPTIONS} install $* ## Vérification que tout s'est bien passé check_output "${DESCR_PAQUET}" ## Nettoie les paquets téléchargés aptitude clean } ## Fonction de désinstallation # Récupère la liste des paquets à désinstaller et le type de ces paquets. # Prototype: arem "DESCRIPTION_PAQUET" paquet1 paquet2 ... paquetX # Les options sont définies en fonctions du niveau de debug # Utilisation de la fonction check_output pour vérifier que tout s'est bien passé arem() { ## On récupère la description DESCR_PAQUET="${1}" ## Décale la liste des paramètres, $2 devient $1, ... Permet de supprimer la description des paquet. shift ## Installation de la liste des paquets passées en paramètre aptitude ${OPTIONS} remove $* ## Vérification que tout s'est bien passé check_output "${DESCR_PAQUET}" ## Nettoie les fichiers de configuration des paquets aptitude ${OPTIONS} purge '~c' } ## Fonction qui récupère l'architecture de la distribution architecture() { ARCHI=$(uname -r) if [ `uname -r | grep amd64` ]; then ARCH="64" elif [ `uname -r | grep 86` ]; then ARCH="86" else echow "architecture inconnue: ${ARCHI}" fi } ## Fonction qui vérifie la présence d'un fichier seed pour l'argument passé en paramètre. # Si ce fichier existe, il sera donc appliqué. # Prototype: preconfig "NOM_PAQUET" preconfig() { if [ -f ${script_path}/seed/${1}.seed ]; then debconf-set-selections ${script_path}/seed/${1}.seed check_output "Préconfiguration de ${1}" else echow "Il n'existe aucun fichier seed pour ${1}." fi } # Fin des fonctions globales # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Programme principale # # ----------------------------------------------------------- # Création des fichiers de logs create_file ${fichier_log} ${fichier_erreur} ${INFORMATION} # Définition du niveau de debug def_debug ${mode_debug} # Définition de l'architecture architecture ########################################################### ## Configuration de Aptitude ########################################################### ###### Pré-configuration ## Chargement de la configuration pour ne pas avoir de messages lorsqu'un service a besoin ## de redémarrer après une mise à jour preconfig restart_no_asking ## apt.conf.d cp -rf ${script_path}/apt/apt.conf.d/ /etc/apt/apt.conf.d/ ## Sources.list ### Backup initial test -f /etc/apt/sources.list && mv /etc/apt/sources.list /etc/apt/sources.list.bkp rm -f /etc/apt/sources.list\~ ### Copy all local sources.list files cp -f ${script_path}/apt/sources-list.d/* /etc/apt/sources.list.d/ ## Preferences ### Backup initial test -f /etc/apt/preferences && mv /etc/apt/preferences /etc/apt/preferences.bkp ### Copy all local preferences files cp -f ${script_path}/apt/preferences.d/* /etc/apt/preferences.d/ aptitude update check_output "Update Debian repositories" ## Installation de la clé pour le dépôt multimédia # Restauration des sorties standard pour pouvoir confirmer l'installation de la clé restore_stdout restore_stderr aptitude install deb-multimedia-keyring # Restauration des sorties en fonction du niveau de debug choisi def_debug ${mode_debug} aptitude update check_output "Mise à jour des dépôts" restore_stdout restore_stderr # Variable pour forcer à garder les anciens fichiers de configuration si de nouveaux sont présent avec une maj export UCF_FORCE_CONFFOLD=1 aptitude -y full-upgrade check_output "Mise à jour du système" def_debug ${mode_debug} ########################################################### ## Prérequis ## Liste: debconf-utils - lsof ########################################################### ###### Pré-configuration preconfig locales preconfig keyboard ###### Installation aptins "Prérequis" debconf-utils lsof # Pour la description de debconf-utils, voir la partie "Outils d'administration" ########################################################### ## Serveur graphique ## Liste: mesa-utils - xorg ########################################################### ###### Pré-configuration preconfig x11-common ###### Installation aptins "Serveur graphique" mesa-utils xorg ###### Post-configuration ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Serveur Graphique====== Voici la liste des paquets installés : +mesa-utils : Fournis divers utilitaires pour le serveur graphique --Vérifier que l'accélération graphique est active: # glxinfo | grep rendering +xorg : Serveur graphique --Si le serveur graphique n'a pas les bons droits, il faut lancer la commande : # dpkg-reconfigure x11-common #Et sélectionner \"N'importe qui\" EOF ########################################################### ## Environnement graphique ## Liste: alsa-utils - fbpanel - gsimplecal - herbstluftwm - i3lock - lxappearance - nitrogen - obconf - obmenu - openbox - redshift - gtk-redshift - tint2 - wmctrl - xbacklight ## Hors dépôt: neap ## Désactivé: openbox ########################################################### ###### Installation #aptins "Environnement herbstluftwm" alsa-utils fbpanel gsimplecal gtk2-engines-cleanice herbstluftwm i3lock lxappearance nitrogen obconf obmenu redshift gtk-redshift tint2 wmctrl xbacklight ## Téléchargement et installation de neap #wget http://neap.googlecode.com/files/neap_0.7.1_all.deb -O neap.deb #dpkg -i neap.deb ###### Post-configuration ###### Informations pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Environnement graphique Openbox====== Voici la liste des paquets installés : +alsa-utils : Utilitaire pour utiliser et configurer ALSA (son) +fbpanel : Permet d'obtenir: panel/barre des taches/lançeur d'applications/... +gsimplecal : Un calendrier graphique très léger +gtk2-engines-cleanice : plusieurs thème gtk, dont celui que j'utilise aux couleurs de Debian +herbstluftwm: tilling window manager +i3lock : Screensaver léger. -- Exemple de commande: i3lock -c 000000 --pointer win -d +lxappearance : Application pour changer facilement de thème gtk +neap : Petit utilitaire très léger et discret qui permet de voir simple le bureau sur lequel on se trouve actuellement. Se lance dans le systray +nitrogen : Application légère pour mettre un fond d'écran et le mémoriser +obconf : Gestionnaire des préférences du gestionnaire de fenêtre Openbox +obmenu : Permet d'obtenir un menu graphique sur le bureau d'Openbox +openbox : Gestionnaire de bureaux très léger --Pour la configuration des fenêtres d'openbox, on peut utiliser: # obxprop | grep "^_OB_APP" --Pour la configuration des touches et de la souris, utiliser l'outils: # xev +redshift : Petit soft qui permet de régler la "chaleur" de l'écran en fonction de la période de la journée. --Fichier de configuration dans ~/.config/redshift.conf --Il également une petite application graphique (gtk-redshift) qui se lance en zone de notification +tint2 : Permet d'obtenir: panel/barre des taches/... +wmctrl : Outils en ligne de commande qui peut communiquer avec les fenêtres de X +xbacklight : Utilitaire qui permet de régler le rétro-éclairage de l'écran (fonctionne également avec les touches fonctions des constructeurs). ++Applications nécessitant encore gnome: +gestionnaire de son (gnome-sound-applet) +gestionnaire de démarrage (gdm3) +gestionnaire de fichiers (nautilus) EOF ########################################################### ## Gnome ## Liste: gdm3 - gnome-control-center - nautilus - ## Désactivé: gdm3 - gnome-control-center ########################################################### ###### Installation aptins "Gnome" nautilus ###### Informations pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Environnement graphique Openbox====== Voici la liste des paquets installés : +gdm3 : Gestionnaire de démarrage de l'environnement graphique (À REMPLACER) +gnome-control-center : Propose plusieurs applet dont un gestionnaire de volume (TROUVER MIEUX ...) +nautilus : Gestionnaire de fichiers (À REMPLACER mais avec gestion des onglets) EOF ########################################################### ## Outils de compilation ## Liste: build-essential - binutils - cpp - gcc - g++ - make - python-xpyb ########################################################### ###### Installation aptins "Outils de compilation" build-essential binutils cpp gcc g++ make ########################################################### ## Outils d'administration (ligne de commande) ## Liste: acpitool - alien - apt-file - apt-listbugs - apt-rdepends - apt-show-source - apt-show-versions - dctrl-tools - debconf-utils - debian-goodies - git - git-svn - gpm - hddtemp - htop - ifscheme - mlocate - lsof - mercurial - module-assistant - ncdu - netdiscover - netselect-apt - nmap - ntp - parted - pastebinit - tcpdump - tree - sysv-rc-conf ########################################################### ###### Pré-configuration preconfig hddtemp ###### Installation aptins "Outils d'administration (ligne de commande)" acpitool alien apt-file apt-listbugs apt-rdepends apt-show-source apt-show-versions dctrl-tools debconf-utils debian-goodies dnsutils git git-svn gpm hddtemp htop ifscheme mlocate mercurial module-assistant ncdu netdiscover netselect-apt nmap ntp parted pastebinit tcpdump tree sysv-rc-conf ###### Post-configuration ## Mise à jour de la base de données de apt-file apt-file update ## Mise à jour de l'index des fichiers/répertoires updatedb ## NTP # On commente les serveurs ntp définis par défaut sed -i "s/^server/#server/g" /etc/ntp.conf # Ajout du serveur qui sera utilisé (strate 1 fr) cat >> /etc/ntp.conf << EOF # Serveur de strate 1 fourni par l'observatoire astronomique de Paris (obspm) # http://syrte.obspm.fr/informatique/ntp_infos.php server ntp-p1.obspm.fr EOF # On redémarre le service ntp pour appliquer les changements systemctl restart ntp ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Outils d'administration (ligne de commande) ====== Voici la liste des paquets installés : +acpitool : pour obtenir la configuration ACPI +alien : Convertisseur de paquet {.rpm,.slp,.pkg,.tgz} -> .deb --Conversion en .deb : # alien -d paquet.ext --Installation directement un paquet : # alien -i paquet.ext +apt-file : permet de trouver de quel paquet provient un programme. -- Mise à jour de la base de données: # apt-file update -- Rechercher la provenance d'un programme: # apt-file search /usr/bin/ntfs-3g | most +apt-listbugs : Liste les bugs critiques listés sur bugs.debian.org à propos des paquets # apt-listbugs -s all -S pending list NOM_DU_PAQUET +apt-rdepends : Énumère de manière récursive toutes les dépendances d'un paquet --Dépendances d'un paquet : # apt-rdepends vim-tiny --Liste des paquets dont dépend un autre paquet : # apt-rdepends -r liblayout-java --Sortir un graphe des dépendances : # apt-rdepends -d iceweasel|dot -Tsvg > iceweaseldep.svg +apt-show-source : Afficher les informations des paquets source +apt-show-versions : Donne la version installée du paquet passé en paramètre -- version ls -- "version" est un alias vers apt-show-versions +dctrl-tools: procure le programme "grep-status" qui permet (entre autre) de lister les fichiers de configurations inutiles (programme supprimé mais pas les fichiers de config): # grep-status -n -sPackage -FStatus config-files +debconf-utils : Ensemble d'utilitaire pour debconf qui permet entre autre de précharger la configuration des paquets Debian +debian-goodies : fournis un ensemble de programmes utiles -- checkrestart : permet de déterminer les services à redémarrer après une maj par exemple -- dpigs : liste les paquets qui prennent le plus de place +dnsutils : fournis divers clients liés au dns: -- dig : Interroge le DNS de différentes manières -- nslookup : ancienne manière de procéder -- ... +git : Système de gestion de version +git-svn : Ajoute la possibilité de gérer des dépôts SVN avec Git. +gpm : permet d'avoir le curseur de la souris dans les consoles tty +hddtemp : pour obtenir la température des disques dur. # hddtemp /dev/sda --Une interface web est également disponible: 127.0.0.1:7634 +htop : gestionnaire de processus (top) interactif +ifscheme : Gestion simplifiée de plusieurs profiles réseaux (pratique notamment pour le wifi). +mlocate : permet de rechercher rapidement un fichier à partir de la base de données de tous les fichiers. --Pour mettre à jour la base de données : # updatedb --Pour rechercher : # locate toto.sh +lsof : Permet de lister les fichiers ouverts, mais également des informations sur les processus utilisants tel ou tel répertoire --Lister les processus utilisant un répertoire: lsof /media/data --Également utiliser pour déterminer si un descripteur de fichier (redirection de sortie de ce script) est ouvert: --- la sortie standart (0) ici: lsof -a -p $$ -d0 | grep 0 +mercurial : Gestionnaire de version +module-assistant : Permet de créer facilement des modules pour le système +ncdu : interface rapide et facile pour l'utilitaire du +netdiscover : Scanner réseau. Exemple d'utilisation: # netdiscover -r 192.168.1.0/24 -P +netselect-apt : Trouve les dépôts les plus rapide pour une release --Utilisation (Remplacer par stable, testing, unstable, experiment, woody, sarge ou sid) # netselect-apt -n +nmap : utilitaire d'exploration de réseau et d'audit sécurité +ntp : Démon de protocole de temps réseau pour maintenir à système à l'heure +parted : Éditeur de partitions en ligne de commande +pastebinit : Envoie le résultat d'une commande directement sur une page dédiée --Exemple : ls -al /dev | pastebinit - --Ou encore : pastebinit - < <(ls -al /dev) +tcpdump : pour écouter tout ce qui se passe sur une interface réseau +tree : Affiche une arborescence indentée du répertoire +sysv-rc-conf : Terminal GUI qui permet de choisir les logiciels qui démarrent sur les différents runlevel EOF ########################################################### ## Outils de sécurité ## Liste: ddclient ########################################################### ###### Pré-configuration # Chargement d'un fichier preseed preconfig ddclient ###### Installation aptins "Outils de sécurité" ddclient ###### Post-configuration # On vérifie que ddclient se lance bien en démon sed -i "s/false/true/g" /etc/default/ddclient # Fichier de configuration type cat >> "/etc/ddclient.conf.ovh" << EOF ## Fichier de configuration pour un dyndns chez OVH daemon=600 # Vérification toutes les 600 secondes syslog=yes # Enregistrer les logs de mise à jour dans syslog mail=root # Envoyer tous les messages par mail à root mail-failure=root # Envoyer les messages d'erreur de mise à jour à root pid=/var/run/ddclient.pid # Enregistrement du PID dans un fichier cache=/tmp/ddclient.cache # Fichier de cache ### Choisir l'une des options suivante pour déterminer l'adresse IP publique: ## À partir de l'interface réseau (si connection directe) #use=if, if=eth0 ## À partir d'un server use=web, web=checkip.dyndns.com/, web-skip='IP Address' ## À partir de la page de status d'un routeur/firewall linksys #use=linksys, fw=linksys, fw-login=admin, fw-password=admin ## À partir de la page de status d'un firewall #fw-login=admin, fw-password=XXXXXX #use=fw, fw=192.168.1.254/status.htm, fw-skip='IP Address' ## Entrer les mots de passe et identifiants OVH DynDns: login=YOUR-LOGIN # Le nom d'utilisateur OVH DynDns password=YOUR-PASSWORD # Le mot de passe du DynDns d'OVH ## Cette section n'a pas besoin de changement sauf si il y a besoin de mettre un serveur proxy par défaut ## ou si il faut contourner le serveur proxy (car il interfère avec les mises à jour) protocol=dyndns2 # protocole par défaut server=www.ovh.com # serveur par défaut #server=members.dyndns.org:8245 # serveur pardéfaut (pour contourner le proxy) #proxy=fasthttp.sympatico.ca:80 # proxy par défaut ## Options par défaut pour les Hôtes DNS Dynamique/Statique #mx= # Un hôte MX par défaut (laisser indéfini par défaut) #backupmx=NO # L'hôte MX est le principal MX? (laisser indéfini par défaut) #wildcard=YES # Ajouter un alias CNAME? ##L'hôte DynDNS à mettre à jour VOTRE.DOMAINE.COM ## L'hôte static DNS à mettre à jour #static=yes, votre-hote-static.dyndns.org,autre-hote-static.dyndns.org ## Hôte DNS personnalisé à mettre à jour #custom=yes, votre-domaine.top-level,autre-domaine.top-level EOF ## Changement des droits sur le fichier de configuration chmod 600 /etc/ddclient.conf.ovh ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Outils de sécurité====== Voici le détail des paquets installés : +ddclient : Mise à jour d'un dns dynamique. Il est nécessaire de modifier des valeurs dans le fichier de configuration /etc/ddclient.conf.ovh EOF ########################################################### ## System tools for shell # Liste: backuppc - bsdmainutils - colordiff - cpio - ethtool - exuberant-ctags - iperf - genisoimage - knockd - lzip - moreutils - multitail - mr - ntfs-3g - openvpn - pmount - rsyslog - screen - sudo - tmux - unrar - unzip - urlview - vim-nox - vim-doc - vim-scripts - vlock - wakeonlan - zsh - zip ## Remove: bluetooth bluez ########################################################### ###### Pré-configuration # Chargement d'un fichier preseed preconfig backuppc ###### Installation aptins "System tools for shell" backuppc bsdmainutils colordiff cpio ethtool iperf genisoimage knockd lzip moreutils multitail mr ntfs-3g openvpn pmount rsyslog screen sudo tmux unrar unzip urlview vim-nox vim-doc vim-scripts vlock wakeonlan zsh zip ###### Remove aptitude remove bluetooth bluez ###### Post-configuration # sysklogd par défaut sur la console tty9 # On décommente les lignes nécessaires dans le fichier de configuration sed -i '/#daemon,mail.\*;/{:label;/^$/q;s/^#//;n;s/^#//;t label;}' /etc/rsyslog.conf sed -i 's/tty8/tty9/' /etc/rsyslog.conf # vim-nox comme éditeur par défaut pour la ligne de commande update-alternatives --set editor /usr/bin/vim.nox # Suppression de vim-tiny (la purge se fera à la fin du script) aptitude remove vim-tiny # Add default user to sudo group adduser ${new_username} sudo ## Changement du shell par défaut pour les utilisateurs # Root chsh -s /bin/zsh rm -f ~/.bash* ~/.profile # Pour les utilisateurs déjà existants: #usermod -s /bin/zsh "${new_username}" chsh -s /bin/zsh "${new_username}" # Pour les nouveaux utilisateurs sed -i "s;/bin/bash;/bin/zsh;" /etc/adduser.conf mkdir /home/"${new_username}"/.zsh chown "${new_username}":"${new_username}" /home/"${new_username}"/.zsh ## Disable Openvpn to automatically start systemctl disable openvpn.service #### Modprobe # Ensure to disable system beep/buzzer cp ${script_path}/modprobe.d/blacklist-beep.conf /etc/modprobe.d/ # Ensure to blacklist dangerous modules (firewire, thunderbolt, …) cp ${script_path}/modprobe.d/blacklist-dma.conf /etc/modprobe.d/ #### Grub # Modify the default grub timeout if [ ! "$(grep "GRUB_TIMEOUT=${grub_timeout}" /etc/default/grub)" ]; then sed -i "s/^GRUB_TIMEOUT.*/GRUB_TIMEOUT=${grub_timeout}" /etc/default/grub update-grub fi ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ====== System tools for shell - Doc ====== Voici la liste des paquets installés : +backuppc : Outils de sauvegarde/restauration (totale et incrémentielle) disposant en plus d'une interface web --Permet également de sauvegarder des machines distantes +bsdmainutils : Fournit un ensemble d'outils de base d'un système bsd. Fournit par exemple column. +colordiff : permet d'ajouter de la couleur à la commande diff +cpio : prise en charge des archives au format cpio. +ethtool : Permet d'afficher des informations et d'interagir avec les cartes réseaux. --Exemple: # ethtool eth0 --Désactiver le wol: # ethtool -s eth0 wol d --Changer la vitesse de sa carte réseau: # ethtool -s eth0 autoneg off speed 1000 --Note: ces modifications ne survivent normalement pas à un redémarrage +exuberant-ctags : Permet de créer un index de tag pour des définitions de code source. -À utiliser avec vim +iperf : Permet de mesurer la bande passante entre deux machines (doit-être installé sur les 2). --Sur le serveur: # iperf -s --Sur le client: # iperf -c IP_SERVEUR +genisoimage : permet de créer une image iso à partir d'un répertoire --Exemple: # genisoimage -R -r -J -oliet-long --hide-rr-moved -iso-level 4 -V \"Label de l\'iso\" -o test.iso /home/test/new_iso +knockd : Permet d'exécuter des commandes si une série de ports spécifique est contacté depuis l'extérieur. +lzip : prise en charge des archives au format lzip (algo basé sur lzma). +moreutils : Fournit quelques petits programmes utiles: --vidir: Édition du contenu d'un répertoire (renommage de fichiers, ...) +multitail : Permet de suivre un fichier de manière similaire à Tail mais avec plus de fonctionnalité (ncurses, splits, commandes, ...) # multitail -sw 20,155,10 -sn 2,2 -ke "64 bytes from " -l "ping 8.8.4.4" -ke "64 bytes from " -l "ping 8.8.8.8" --mark-change /var/log/messages -I /var/log/mail.log -I /var/log/syslog -wh 15 -ci green /var/log/dpkg.log -ci red -I /var/log/apache2/error.log -ke "64 bytes from " -l "ping 208.67.222.222" +mr: Un outil pour gérer plusieurs type de dépôts de gestionnaires de versions (Git, svn, …). +ntfs-3g : permet la prise en charge des partitions ntfs. --Pour formater une partition ntfs : # mkntfs /dev/partition +openvpn : Permet de se connecter à un vpn pour communiquer avec d'autres machines en "privé" +pmount : permet à l'utilisateur normal de monter des périphériques +rsyslog : monitoring en continu sur la console tty9 (ctrl+alt+F9) +screen : mutliplexeur de terminaux --Plus d'info : http://doc.xubuntu-fr.org/screen +sudo : outil qui permet de lancer des commandes avec des droits supplémentaires ou en tant qu'un autre utilisateur à condition d'avoir les privilèges suffisants. # sudo ls /root +tmux : multiplexeur de terminaux --Ressemble beaucoup à screen, mais offre une configuration plus facile +unrar : permet la prise en charge du format de compression rar --Plus d'info : $ man unrar +unzip : permet la prise en charge du format de compression zip --Plus d'info : $ man unzip +urlview : Extrait des adresses depuis la ligne de commandes puis propose de manière simple de les lancer via le navigateur par défaut. --Il est possible d'associer un raccourcis clavier dans Tmux pour qu'il appelle directement urlview pour analyser son contenu: - bind-key u capture-pane \; save-buffer ~/.tmux/.tmux-buffer \; new-window -n "urlview" '$SHELL -c "urlview < ~/.tmux/.tmux-buffer"' +vim-nox : version amélioré du célèbre éditeur en ligne de commande: VI --Remplace vim-tiny et peut-être défini comme éditeur par défaut -vim-doc : Documentation de vim -vim-scripts : Ensemble de greffons (voir http://www.vim.org/scripts/ pour plus d'informations) +vlock : Permet de verrouiller le terminal courant. Dans mon cas, c'est tmux qui est verrouillé au bout d'un certain temps d'inactivité. +wakeonlan : Permet de réveiller une machine du réseau à partir de son adresse MAC. -wakeonlan XX:FF:DD:SS:QQ:ZE +zsh : un interpréteur de commandes comme peut l'être bash ou sh mais beaucoup plus performant et avec plus de fonctionnalités +zip : permet de compresser dans une archive zip à partir du shell EOF ########################################################### ## Outils systèmes (graphique) ## Liste: etherape - file-roller - gparted - gprename - rofi - roxterm - scrot - suckless-tools - terminator - rxvt-unicode-256color ########################################################### ###### Pré-configuration # Chargement d'un fichier preseed #preconfig ###### Installation aptins "Outils système (graphique)" etherape file-roller gparted gprename rofi roxterm scrot suckless-tools terminator ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Outils systèmes (graphique)====== Voici la liste des paquets installés : +etherape : Outil de surveillance de réseau +file-roller : Permet d'extraire le contenu d'une archive à partir du menu contextuel (clic droit) +gparted : Éditeur de partitions +gprename : permet de renommer des fichiers en masse à partir d'une interface graphique + rofi : Lanceur d'applications, menu ssh, …, remplaçant de dmenu. +roxterm : Un émulateur de terminal graphique très soft (écris en C), même plus soft que Terminator qu'il remplacera certainement à termes. Toutes fois il n'est actuellement pas possible d'utiliser la touche "Tab" dans les raccourcis claviers ... +scrot : (SCReen shOT) un utilitaire de capture d'écran en ligne de commande -Prendre une impression dans 6 sec : # scrot -c -d 6 scrot.png +suckless-tools : fournis quelques outils pratiques comme dmenu (lanceur d'applications ultra soft avec une bonne auto-complétion), sselp (récupérer le texte sélectionné à la souris), ... Plus d'info: --http://www.generation-linux.fr/index.php?post/2009/03/12/Dmenu-%3A-un-lanceur-simple-et-efficace --http://www.debian-fr.org/lanceurs-avec-ls-et-dmenu-t21294.html +terminator : Un émulateur de terminal graphique plus évolué que gnome-terminal EOF ########################################################### ## Carte graphiqua ## Suport: nvidia - ## Liste: nvidia-glx nvidia-kernel-dkms nvidia-settings nvidia-xconfig ########################################################### ###### Installation if [ "$(lspci | grep -i nvidia)" ]; then ###### Pré-configuration module-assistant prepare module-assistant clean nvidia-kernel module-assistant auto-install -i nvidia-kernel-source ###### Installation aptins "Pilotes NVidia" nvidia-glx nvidia-kernel-dkms nvidia-settings nvidia-xconfig ## Post-configuration nvidia-xconfig --no-logo ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Pilotes NVidia====== Voici la liste des paquets installés : +nvidia-glx : Fournis le nvidia-kernel-295.33 +nvidia-kernel-dkms :Fournis les sources du module noyau nvidia DKMS +nvidia-settings : Outils pour configurer le driver NVIDIA +nvidia-xconfig : Outils de configuration de X pour NVIDIA EOF fi ########################################################### ## Carte réseau ## Support : carte wifi BCM43 ## Liste: broadcom-sta-dkms - ifscheme - wireless-tools ## Suppression de firmware-brcm80211 le temps de vérifier si il est nécessaire avec une nouvelle installation ########################################################### if [ "$(lspci | grep -i BCM43)" ]; then ###### Installation #aptins "Outils gestion wifi" firmware-brcm80211 ifscheme wireless-tools wpasupplicant aptins "Outils gestion wifi" linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms ifscheme wireless-tools wpasupplicant ###### Post-configuration # Décharger les modules qui peuvent créer des conflits modprobe -r b44 b43 b43legacy ssb brcmsmac # Charger le bon module modprobe wl # Vérification du bon fonctionnement avec: #iwconfig ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Pilote wiki BCM43====== Voici la liste des paquets installés : +broadcom-sta-dkms : Source DKMS pour les drivers wifi des cartes Broadcom. -Plus d'informations: -- http://wiki.debian.org/wl#Wheezy +ifscheme : permet de définir différentes configuration réseau (ethernet ou wlan) parmis lesquelles il sera possible de switcher, facilitant ainsi le changement de réseau sans-fil sans gui. --Avec le bon fichier de configuration (gestion de plusieurs profils sur wlan0), pour se connecter au réseau wifi_de_toto, il faudra par exemple faire: $ ifdown wlan0 $ ifscheme toto $ ifup wlan0 -Plus d'infos: -- http://b.twidi.com/index.php/2006/03/27/55-un-portable-plusieurs-reseaux-sous-linux-debian-ubuntu -- http://www.alwayssunny.com/blog/?p=30 +wireless-tools : contient des outils pour agir sur les interfaces sans fil +wpasupplicant : gestion des clients wpa et wpa2 EOF fi ########################################################### ## Network share ## Liste: keychain - knockd - nfs client - ssh ## Remove: nfs-kernel-server samba ########################################################### ###### Pre-configuration #preconfig samba ###### Installation aptins "Partage réseau" keychain knockd nfs-common openssh-server ###### Remove aptitude remove nfs-kernel-server samba ###### Post-configuration #### If nfs-kernel-server and samba are need or vital for the system, disable them anyway # Disable samba service if available by default if [ $(command -v samba) ]; then systemctl disable nmbd.service systemctl disable smbd.service systemctl disable samba.service fi # Disable nfs-kernel-server service if available by default if [ $(command -v nfsdcltrack) ]; then systemctl disable nfs-kernel-server.service fi ###### Information for end user #### See README.md ########################################################### ## Internet tools for shell ## Liste: axel - finch - postfix - weechat-curses ########################################################### ###### Installation aptins "Internet tools for shell" axel finch postfix weechat-curses ###### Post-configuration #### Postfix # Ensure to forward root's mails to $new_user_mail if [ ! "$(grep "root: .*${new_user_mail}" /etc/aliases)" ]; then sed -i "s/^root: /root: ${new_user_mail} /" /etc/aliases newaliases fi ########################################################### ## Internet tools for X11 ## Liste : browser-plugin-freshplayer-pepperflash - dwb - filezilla - icedove - icedove-l10n-fr - iceowl-extension - iceweasel (experimental) - iceweasel-l10n-fr - luakit - midori - pepperflashplugin-nonfree - pidgin - pidgin-otr - pidgin-microblog - rdesktop - sun-java6-jre - transmission - tsclient - xvnc4viewer - ## Remove: flashplugin-nonfree flashplugin-nonfree-extrasound ## Désactivé: sun-java6-jre ########################################################### ###### Pré-configuration # Chargement d'un fichier preseed #preconfig sun-java6-jre ###### Installation aptins "Internet tools for X11" browser-plugin-freshplayer-pepperflash dwb filezilla icedove icedove-l10n-fr iceowl-extension iceweasel iceweasel-l10n-fr luakit midori pepperflashplugin-nonfree pidgin pidgin-otr pidgin-microblog rdesktop transmission tsclient xvnc4viewer ###### Remove arem "Purge: Internet tools for X11" flashplugin-nonfree flashplugin-nonfree-extrasound ###### Post-configuration # Ensure to install last flash version update-pepperflashplugin-nonfree --install ###### Installation manuelle #### Teamviewer #teamviewer="teamviewer.deb" ### Téléchargement #if [ "${ARCH}" = 64 ] # Pour un système 64 bits #then #axel http://www.teamviewer.com/download/teamviewer_linux_x64.deb -o "${teamviewer}" > /dev/null 2> "${fichier_erreur}" #elif [ "${ARCH}" -eq 86 ] # Pour un système 32 bits #then #axel http://www.teamviewer.com/download/teamviewer_linux.deb -o "${teamviewer}" > /dev/null 2> "${fichier_erreur}" #fi ### Installation #if [ "$?" = 0 ]; then # Si le téléchargement s'est bien déroulé #dpkg -i "${teamviewer}" > /dev/null #rm -f "${teamviewer}" #else #echow "Erreur lors du téléchargement du paquet teamviewer. Voir le fichier configuration.tmp pour plus de détails." #fi ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Internet tools for X11====== Voici la liste des paquets installés : +browser-plugin-freshplayer-pepperflash : Adapter to get Pepperflash (Chrome) plugin working in Firefox. +chromium-browser : navigateur open-source qui sert également de base pour google chrome. -chromium-l10n : pack de langue +dwb : navigateur léger en c/gtk. +filezilla : client FTP graphique +flashplugin-nonfree : Plugin flashplayer -flashplugin-nonfree-extrasound : Extension du plugin pour gérer le son +icedove : gestionnaire de mails et flux rss -icedove-l10n-fr : Pack de langue fr +iceowl : nouvelle extension qui permet de gérer les calendriers dans Icedove/Thunderbird. Remplace Lightning. +iceweasel (experimental) : Équivalent de firefox pour Debian -iceweasel-l10n-fr : pack de langue fr +luakit : navigateur internet léger en Lua. +mat : supprimer les métadonnées des fichiers (avant mise en ligne par exemple …) -- dispose également d'une interface graphique: % mat-gui +pepperflashplugin-nonfree : Pepper Flash Player from Google Chrome. +pidgin : Client messagerie graphique +pidgin-microblog : plugin pour pidgin qui permet d'utiliser les réseaux sociaux (twitter, facebook, ...) --Plus d'informations disponible sur : http://developer.pidgin.im/wiki/Using%20Finch +rdesktop : Client RDP pour Windows Terminal Server +sun-java6-jre : Fournit les fichiers nécessaires pour l'accès vnc dans firefox +teamviewer : Accès à distance et partage de bureau multi-os +transmission : Client bittorent (graphique et commande) --Lancement du daemon : $ transmission-daemon -g ~/.config/transmission --Liste les torrents en cours de téléchargement : $ transmission-remote --Ajouter un torrent : $ transmission-remote -a torrent-file +tsclient : Interface graphique pour rdesktop (RDP, X, ...) +xvnc4viewer : Permet l'accès VNC à des serveurs VNC EOF ########################################################### ## Office tools for shell ## List: cups - devtodo - graphviz - imagemagick - imagemagick-doc - odt2txt - pdftk - texlive - texlive-latex-extra - vim-latexsuite ## Remove: avahi-autopid - avahi-daemon - cups-browsed - libnss-mdns ########################################################### ###### Pre-configuration # Load preseed file preconfig cups ###### Installation aptins "Outils bureautique shell" cups devtodo graphviz imagemagick imagemagick-doc odt2txt pdftk texlive texlive-latex-extra vim-latexsuite ###### Remove aptitude remove avahi-autopid avahi-daemon cups-browsed libnss-mdns ###### Post-configuration # Add the standard user to lpadmin group to be able to manage Cups administration via webgui. adduser "${new_username}" lpadmin > /dev/null 2> "${fichier_erreur}" # cups needs samba! ########################################################### ## Outils bureautique (graphique) ## Liste : evince - gcalctool - gedit - freeplane - key-mon - libreoffice - libreoffice-l10n-fr - libreoffice-help-fr - libreoffice-pdfimport - fonts-linuxlibertine - planner - ttf-ancient-fonts - verbiste - verbiste-gnome - xclip ########################################################### ###### Installation aptins "Outils bureautique graphique" evince gcalctool gedit freeplane key-mon libreoffice libreoffice-l10n-fr libreoffice-help-fr libreoffice-pdfimport fonts-linuxlibertine planner ttf-ancient-fonts verbiste verbiste-gnome xclip ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Outils bureautique (graphique)====== Voici la liste des paquets installés : +evince : visionneuse de pdf +gcalctool : Calculatrice graphique +gedit : Éditeur de texte assez complet avec une gestion de plugins +freeplane : Programme Java pour créer/éditer des mind maps (carte heuristique) +key-mon : Petit outils graphique qui affiche dans une fenêtre les touches tapées --Très pratique pour la réalisation de tuto vidéo +libreoffice : La très classique et complète suite bureautique -libreoffice-l10n-fr : pack français -libreoffice-help-fr : aide francaise -libreoffice-pdfimport : import de pdf (très très réussi) -fonts-linuxlibertine : ajoute la police libertine +planner : Gestionnaire de projet supportant les diagrammes de Gantt +ttf-ancient-fonts: Ajoute la police qui permet d'avoir pas mal d'emoji. -See: https://en.wikipedia.org/wiki/Emoji#Blocks +verbiste : Programme qui permet de configurer les verbes (français et italien) -verbiste-gnome : Interface graphique pour gnome +xclip : Permet de copier dans le presse-papier graphique un texte sélectionné à partir de la ligne de commande --Utilisé dans mon fichier .vimrc --Essayer de faire de même avec tmux EOF ########################################################### ## Outils multimédia (shell) ## Liste: avinfo - eyed3 - ffmpeg - lynx - mirage - moc - w32codecs ########################################################### ###### Installation aptins "Outils multimédia (shell)" avinfo eyed3 ffmpeg lynx mirage moc w32codecs ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Outils multimédia (shell)====== Voici la liste des paquets installés : +avinfo : Fournit des informations sur des fichiers vidéo au format AVI, OGG, OGM, MPEG, ou MKV. +eyed3 : Fournit des informations/tags sur les fichiers mp3 +ffmpeg : Contient divers outils pour la manipulation de fichiers audio +lynx : Navigateur web léger en mode texte +mirage : Une visionneuse d'image légère en gtk+ pour remplacer eog +moc : Pour Music On Console - Logiciel qui permet d'écouter de la musique à partir d'une console +w32codecs : Contient certains codecs vidéo non natif par mplayer EOF ########################################################### ## Outils multimédia (graphique) ## Liste: audacity - mcomix - easytag - gimp - inkscape - mkvtoolnix-gui - mumble - smplayer - rhythmbox - vlc ## Désactivé: mcomix ########################################################### ###### Installation aptins "Outils multimédia (graphique)" audacity easytag gimp inkscape mkvtoolnix-gui mumble smplayer rhythmbox vlc ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Outils multimédia (graphique)====== Voici la liste des paquets installés : +audacity : Logiciel d'édition audio. Utiliser avi2wav pour récupérer la piste audio d'une vidéo. +mcomix : Lecteur de scan (comic, manga, ...) +easytag : permet de modifier les tags des fichiers audio +gimp : Éditeur d'image +inkscape : Logiciel de dessin vectoriel --Il est également possible de modifier un fichier .pdf +mkvtoolnix-gui : permet d'éditer les fichiers mkv +mumble : Client VoIP à faible latence +smplayer : Lecteur vidéo +rhythmbox : Lecteur de musique +vlc : Lecteur vidéo EOF ########################################################### ## Jeux ## Liste: teeworlds - teeworlds-server ########################################################### ###### Installation aptins "Jeux =)" teeworlds teeworlds-server ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Jeux====== Voici la liste des paquets installés : +teeworlds : Petit jeu libre de fps ressemblant à worms. +teeworlds-server : Serveur de jeu pour teeworlds EOF ########################################################### ## Inutiles donc nécessaires ## Liste: asr-manpages - cmatrix - cowsay - fortunes - funny-manpages - linuxlogo - sl ########################################################### ###### Installation aptins "Paquets inutiles" asr-manpages cmatrix cowsay fortunes funny-manpages linuxlogo sl ###### Information pour l'utilisateur final cat >> "${INFORMATION}" << EOF ======Instructions Paquets inutiles====== Voici la liste des paquets installés : +asr-manpages : Pages de manuel de alt.sysadmin.recovery. -- Liste des man disponibles: # dpkg -L asr-manpages +cmatrix: affiche la matrice dans un terminal +cowsay : Fait parler différents personnages en ligne de commande --Essayer la commande : # bonjour --chez moi, bonjour est un alias vers : 'echo Bonjour $USER, nous sommes le `date +"%A %e %B %Y"`, et il est : `date +"%H"` h `date +"%M"` | cowsay -f $(/bin/ls /usr/share/cowsay/cows -1 | head -n $(expr $$$(date +%s) % $(ls /usr/share/cowsay/cows | wc -w) + 1) | tail -n 1)' +fortunes : Collection de phrases françaises +funny-manpages : Un ensemble de pages de manuel humoristiques, exemple: rtfm, baby, celibacy, party, condom, flame, ... +linuxlogo : Permet d'afficher un logo avec quelques informations sur le système. Exemple: $ linux_logo -f -d +sl : affiche une animation si on tape sl à la place de ls EOF ########################################################### ## Manpages / Documentation ## Liste: aptitude-doc-fr info manpages-fr manpages-fr-dev manpages-fr-extra ########################################################### ###### Installation aptins "Manpages" aptitude-doc-fr info manpages-fr manpages-fr-dev manpages-fr-extra ###### Information for end user cat >> "${INFORMATION}" << EOF ====== Manpages / Documentation ====== Voici la liste des paquets installés : +info : Program which allow to view Info documents. Much of Debian packages comes with documentation in Info format. % info redshift EOF # Suppression ## xscreensaver semble s'installé automatiquement aptitude remove xscreensaver xscreensaver-data aptitude purge '~c' # Restauration des sorties standard restore_stdout restore_stderr # Supprime le fichier d'erreur si il est vide [ -s ${fichier_erreur} ] && echo "Fichier erreur non vide" || rm ${fichier_erreur} # Supprime le fichier d'log si il est vide [ -s ${fichier_log} ] && echo "Fichier log non vide" || rm ${fichier_log} exit 0 # Fin de la boucle principale # ----------------------------------------------------------- # **********************************************************************************************