install-debian/post_install_sid.sh

1646 lines
57 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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-08-07 - 0.8.07
## - Ajout du paquet postfix pour remplacer exim4
## 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
# Load additionnal informations (new_username, new_user_mail, …)
. ${script_path}/informations
## Architecture de la distribution
ARCH=""
## Emplacement du script
INSTALL_DIR=$(pwd)
## Options d'aptitude en fonction du niveau de debug
OPTIONS=""
# 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 ${INSTALL_DIR}/seed/${1}.seed ]; then
debconf-set-selections ${INSTALL_DIR}/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
## Définition de paramètres
cat > /etc/apt/apt.conf.d/00configperso << EOF
// Agrandir la taille du cache d'Apt
APT::Cache-Limit 100000000;
// Version de Debian par défaut Unstable
APT::Default-Release "unstable";
EOF
## 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 ./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 ./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
# Création d'un fichier ~/.xinitrc pour pouvoir lancer openbox à partir de startx
cat >> /home/"${new_username}"/.xinitrc << EOF
exec openbox-session
EOF
###### 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 <release> par stable, testing, unstable, experiment, woody, sarge ou sid)
# netselect-apt -n <release>
+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
###### 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
###########################################################
## Outils internet (shell)
## Liste: axel - finch - irssi - postfix - weechat-curses
## Désactivé: irssi
###########################################################
###### Pré-configuration
# Chargement d'un fichier preseed
#preconfig
###### Installation
aptins "Outils internet (shell)" axel finch postfix weechat-curses
###### Post-configuration
###### Information pour l'utilisateur final
cat >> "${INFORMATION}" << EOF
======Instructions Outils internet (shell)======
Voici la liste des paquets installés :
+axel : Gestionnaire de téléchargement de lien direct download. Équivalent de wget
+finch : Interface ncurse pour Pidgin
+irssi : Client IRC
+postfix : Agent d'envoi d'email
+weechat: Client IRC
EOF
###########################################################
## 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 (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'
## Suppression du bip system/buzzer
echo "blacklist pcspkr" > /etc/modprobe.d/blacklist
#xset b off
# 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
# -----------------------------------------------------------
# **********************************************************************************************