install-debian/post_install_sid.sh

1604 lines
56 KiB
Bash
Raw Normal View History

2015-09-09 11:35:57 +02:00
#!/bin/sh
################################################################################################
##
## Nom: new_post_install.sh
##
## Version: 0.3.0
2015-09-09 11:35:57 +02:00
##
## 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, )
## - 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)
2015-09-09 11:35:57 +02:00
## 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
2015-09-09 11:35:57 +02:00
# Fin des variables globales
# -----------------------------------------------------------
# **********************************************************************************************
# **********************************************************************************************
#
# Fichiers globaux
#
# -----------------------------------------------------------
#
## Répertoire de log
log_dir="/home/${new_username}/log/`date +"%d"-"%m"-"%y"`"
2015-09-09 11:35:57 +02:00
# !! 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
}
2015-09-09 11:35:57 +02:00
## 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'
2015-09-09 11:35:57 +02:00
}
## 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
2015-09-09 11:35:57 +02:00
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/
2015-09-09 11:35:57 +02:00
## 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\~
2015-09-09 11:35:57 +02:00
### Copy all local sources.list files
cp -f ${script_path}/apt/sources-list.d/* /etc/apt/sources.list.d/
2015-09-09 11:35:57 +02:00
## Preferences
### Backup initial
2015-09-09 11:35:57 +02:00
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/
2015-09-09 11:35:57 +02:00
aptitude update
check_output "Update Debian repositories"
2015-09-09 11:35:57 +02:00
## 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"
###########################################################
## X11 Server
## Liste: mesa-utils xorg
2015-09-09 11:35:57 +02:00
###########################################################
###### Pre-configuration
2015-09-09 11:35:57 +02:00
preconfig x11-common
###### Installation
aptins "X11 Server" mesa-utils xorg
2015-09-09 11:35:57 +02:00
###########################################################
## 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
## Remove: xscreensaver xscreensaver-data
2015-09-09 11:35:57 +02:00
###########################################################
###### 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
##### Remove
arem "Purge: Graphic Environment" xscreensaver xscreensaver-data
2015-09-09 11:35:57 +02:00
###### 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
2015-09-09 11:35:57 +02:00
# 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
2015-09-09 11:35:57 +02:00
###########################################################
###### 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
2015-09-09 11:35:57 +02:00
###### Remove
arem "Purge: System tools for shell" bluetooth bluez vim-tiny
2015-09-09 11:35:57 +02:00
###### 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
# Add default user to sudo group
adduser ${new_username} sudo
2015-09-09 11:35:57 +02:00
## 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}"
2015-09-09 11:35:57 +02:00
# 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
2015-09-09 11:35:57 +02:00
## 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
2015-09-09 11:35:57 +02:00
###### Information pour l'utilisateur final
cat >> "${INFORMATION}" << EOF
====== System tools for shell - Doc ======
2015-09-09 11:35:57 +02:00
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
2015-09-09 11:35:57 +02:00
###########################################################
###### Pre-configuration
#preconfig samba
2015-09-09 11:35:57 +02:00
###### Installation
aptins "Network share" keychain knockd nfs-common openssh-server
2015-09-09 11:35:57 +02:00
###### Remove
arem "Purge: Network share" nfs-kernel-server samba
2015-09-09 11:35:57 +02:00
###### 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
2015-09-09 11:35:57 +02:00
###### Information for end user
#### See README.md
2015-09-09 11:35:57 +02:00
###########################################################
## Internet tools for shell
## Liste: axel - finch - postfix - weechat-curses
2015-09-09 11:35:57 +02:00
###########################################################
###### Installation
aptins "Internet tools for shell" axel finch postfix weechat-curses
2015-09-09 11:35:57 +02:00
###### 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
2015-09-09 11:35:57 +02:00
###########################################################
## 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
2015-09-09 11:35:57 +02:00
## 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
2015-09-09 11:35:57 +02:00
###### Post-configuration
# Ensure to install last flash version
update-pepperflashplugin-nonfree --install
2015-09-09 11:35:57 +02:00
###### 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======
2015-09-09 11:35:57 +02:00
Voici la liste des paquets installés :
+browser-plugin-freshplayer-pepperflash : Adapter to get Pepperflash (Chrome) plugin working in Firefox.
2015-09-09 11:35:57 +02:00
+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.
2015-09-09 11:35:57 +02:00
+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
2015-09-09 11:35:57 +02:00
###########################################################
###### Pre-configuration
# Load preseed file
2015-09-09 11:35:57 +02:00
preconfig cups
###### Installation
aptins "Office tools for shell" cups devtodo graphviz imagemagick imagemagick-doc odt2txt pdftk texlive texlive-latex-extra vim-latexsuite
2015-09-09 11:35:57 +02:00
###### Remove
arem "Purge: Office tools for shell" avahi-autopid avahi-daemon cups-browsed libnss-mdns
2015-09-09 11:35:57 +02:00
###### 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!
2015-09-09 11:35:57 +02:00
###########################################################
## Outils bureautique (graphique)
2015-10-03 20:29:20 +02:00
## 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
2015-09-09 11:35:57 +02:00
###########################################################
###### Installation
2015-10-03 20:29:20 +02:00
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
2015-09-09 11:35:57 +02:00
###### 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
2015-10-03 20:29:20 +02:00
+ttf-ancient-fonts: Ajoute la police qui permet d'avoir pas mal d'emoji.
-See: https://en.wikipedia.org/wiki/Emoji#Blocks
2015-09-09 11:35:57 +02:00
+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
2015-09-09 11:35:57 +02:00
###########################################################
###### 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
2015-09-09 11:35:57 +02:00
# 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
# -----------------------------------------------------------
# **********************************************************************************************