install-debian/post_install_sid.sh

791 lines
26 KiB
Bash
Raw Normal View History

2015-09-09 11:35:57 +02:00
#!/bin/sh
################################################################################################
##
## Nom: post_install_sid.sh
2015-09-09 11:35:57 +02:00
##
## Version: 0.3.1
2015-09-09 11:35:57 +02:00
##
## Licence: WTFPL
2015-09-09 11:35:57 +02:00
##
################################################################################################
## 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'
# Default user informations
new_username=$(ls -1 /home | grep -v "lost+found" | tail -n 1)
new_user_mail="${new_username}"
# Strate 1 server from Paris Astronomical Observatory (obspm)
# http://syrte.obspm.fr/informatique/ntp_infos.php
ntp_server='ntp-p1.obspm.fr'
# Load personnal 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"
printf '%b' "Otherwise the script will use defaults values such as '${new_username}' as main user.\n"
time=10
printf '%b' "The script will continue in ${time} seconds "
while [ "${time}" -gt 0 ]; do
printf '%b' "."
time=$((time-1))
sleep 1
done
clear
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: ains "DESCRIPTION_PAQUET" paquet1 paquet2 ... paquetX
2015-09-09 11:35:57 +02:00
# 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é
ains()
2015-09-09 11:35:57 +02:00
{
## 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
2015-11-17 17:34:29 +01:00
###########################################################
## Prerequisite
##### Installation
ains "Prerequisite" debconf-utils lsof
##### Post-configuration
preconfig locales
preconfig keyboard
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Apt configuration
2015-09-09 11:35:57 +02:00
###########################################################
##### Pre-configuration
###### Load pre-seed to automatically restart services after an upgrade
2015-09-09 11:35:57 +02:00
preconfig restart_no_asking
###### apt.conf.d
cp -f ${script_path}/apt/apt.conf.d/* /etc/apt/apt.conf.d/
2015-09-09 11:35:57 +02:00
###### sources.list.d
### Backup initial
test -f /etc/apt/sources.list && mv /etc/apt/sources.list /etc/apt/sources.list.bkp
rm -f /etc/apt/sources.list\~
### Copy all local sources.list files
cp -f ${script_path}/apt/sources-list.d/* /etc/apt/sources.list.d/
2015-09-09 11:35:57 +02:00
###### preferences.d
### 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
# Restore the standard output to be sur to be able to install the Debian Multimedia Keyring
2015-09-09 11:35:57 +02:00
restore_stdout
restore_stderr
##### Add
ains "Debian Multimedia Repository" deb-multimedia-keyring
# Restore the standard output to the default choosen level
2015-09-09 11:35:57 +02:00
def_debug ${mode_debug}
##### Post-Configuration
2015-09-09 11:35:57 +02:00
aptitude update
check_output "Update Debian repositories"
2015-09-09 11:35:57 +02:00
###### Set a variable to ensure to keep old config files when upgrading a package.
2015-09-09 11:35:57 +02:00
export UCF_FORCE_CONFFOLD=1
###### Force a full-upgrade of the system
2015-09-09 11:35:57 +02:00
aptitude -y full-upgrade
check_output "Force full-upgrade of the system"
2015-09-09 11:35:57 +02:00
###########################################################
#### X11 Server
##### Pre-configuration
2015-09-09 11:35:57 +02:00
preconfig x11-common
##### Installation
ains "X11 Server" mesa-utils xorg
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Graphic Environment
##### Installation
ains "Graphic Environment" alsa-utils gtk2-engines-cleanice herbstluftwm i3lock lxappearance nitrogen redshift rofi roxterm scrot suckless-tools terminator wmctrl xautolock xbacklight xclip
2015-09-09 11:35:57 +02:00
##### Remove
arem "Purge: Graphic Environment" geoclue-2.0 modemmanager xscreensaver xscreensaver-data
##### Post-Configuration
# Ensure to have an xautolock launch at boot time
if [ ! "$(grep 'xautolock' /home/${new_username}/.xinitrc)" ]; then
cat << EOF >> "/home/${new_username}/.xinitrc"
xautolock -time 15 -locker 'i3lock --pointer win -d -e -t' &
EOF
fi
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Gnome tools
##### Installation
ains "Gnome tools" evince etherape gedit gnome-calculator gparted nemo nemo-fileroller planner
##### Remove
arem "Purge: Gnome tools" eog
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Dev tools
##### Installation
ains "Dev tools" build-essential binutils cpp debconf-utils gcc g++ make
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Admin tools for cli
##### Pre-configuration
2015-09-09 11:35:57 +02:00
preconfig hddtemp
##### Installation
2016-09-21 11:47:35 +02:00
ains "Admin tools for cli" acpitool alien apticron apt-file apt-listbugs apt-rdepends apt-show-source apt-show-versions dctrl-tools debian-goodies dnsutils dstat ethtool git git-svn gpm hddtemp htop ifscheme iperf mlocate mercurial module-assistant ncdu netdiscover netselect-apt ngrep nmap ntp parted pastebinit perf-tools-unstable rsyslog strace sudo sysv-rc-conf tcpdump tree util-linux whois
2015-09-09 11:35:57 +02:00
##### Post-configuration
###### apt-file: Synchronize the package contents from their sources.
2015-09-09 11:35:57 +02:00
apt-file update
###### 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
###### Mlocate: Update the mlocate database
2015-09-09 11:35:57 +02:00
updatedb
###### 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/
###### Ntp: Set a better NTP server.
if [ ! "$(grep "server ${ntp_server}" /etc/ntp.conf)" ]; then
sed -i "s/^server.*/server ${ntp_server}/g" /etc/ntp.conf
# Restart NTP service to apply the new server
systemctl restart ntp
fi
2015-09-09 11:35:57 +02:00
###### Rsyslog: Enable Rsyslog in tty9
sed -i '/#daemon,mail.\*;/{:label;/^$/q;s/^#//;n;s/^#//;t label;}' /etc/rsyslog.conf
sed -i 's/tty8/tty9/' /etc/rsyslog.conf
2015-09-09 11:35:57 +02:00
###### Sudo: Add default user to sudo group
if [ ! "$(grep "^sudo:x:27:.*${new_username}" /etc/group)" ]; then
adduser ${new_username} sudo
fi
###### Fstrim: Ensure to enable TRIM if a SSD is available.
# If fstrim is not already enable
if [ ! "$(grep fstrim /etc/rc.local)" ]; then
# For all hdd
for path_drive in $(find /sys/block/ ! -name "dm-*" -type l);
do
IS_SSD=$(grep 0 ${path_drive}/queue/rotational)
if [ ${IS_SSD} ]; then
sed -i 's/\(^exit 0\)/# Run TRIM on every mountpath\nfstrim -a\n\n\1/' /etc/rc.local
fi
done
fi
###########################################################
2015-09-09 11:35:57 +02:00
#########################################################
#### UEFI tools
##### Installation
uefi_add_pkg_list="efibootmgr efivar"
# If grub-efi is available
if [ "$(dpkg -l grub-efi)" ]; then
ains "UEFI tools" efibootmgr efivar
fi
#########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### System tools for cli
##### Pre-configuration
2015-09-09 11:35:57 +02:00
##### Installation
ains "System tools for cli" bsdmainutils colordiff cpio genisoimage keychain knockd lzip moreutils multitail myrepos ntfs-3g openssh-client openvpn physlock screen tmux udisks2 unrar unzip urlview vim-nox vim-doc vim-scripts vlock wakeonlan zsh zip
2015-09-09 11:35:57 +02:00
##### Remove
2016-12-13 21:47:25 +01:00
arem "Purge: System tools for cli" bluetooth bluez network-manager vim-tiny
2015-09-09 11:35:57 +02:00
##### Post-configuration
###### Vim: set vim-nox as default editor.
update-alternatives --set editor $(command -v vim.nox)
2015-09-09 11:35:57 +02:00
##### Openvpn: Disable to automatically start
systemctl disable openvpn.service
###### ZSH: set as default shell
## For root
2015-09-09 11:35:57 +02:00
chsh -s /bin/zsh
rm -f ~/.bash*
## For new_username
chsh -s /bin/zsh "${new_username}"
mkdir -p /home/"${new_username}"/.zsh
chown "${new_username}":"${new_username}" /home/"${new_username}"/.zsh
## For new users with adduser
sed -i "s;/bin/bash;/bin/zsh;" /etc/adduser.conf
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Internet tools for cli
##### Installation
ains "Internet tools for cli" axel finch lynx mat postfix weechat-curses
##### Post-configuration
###### Postfix
# Ensure to forward root's mails to $new_user_mail
if [ ! "$(grep "root: .*${new_user_mail}" /etc/aliases)" ]; then
sed -i "s/^root: /root: ${new_user_mail} /" /etc/aliases
newaliases
fi
# Ensure Postfix only listen on localhost
if [ -f /etc/postfix/main.cf ] && [ !"$(grep 'inet_interfaces = localhost' /etc/postfix/main.cf)" ]; then
sed -i 's/\(inet_interfaces\).*/\1 = localhost/' /etc/postfix/main.cf
systemctl restart postfix
fi
###########################################################
###########################################################
#### Internet tools for X11
##### Installation
2017-02-17 11:24:22 +01:00
ains "Internet tools for X11" browser-plugin-freshplayer-pepperflash dwb filezilla icedove icedove-l10n-fr iceowl-extension firefox firefox-l10n-fr libjs-pdf luakit midori mumble pepperflashplugin-nonfree pidgin pidgin-otr pidgin-microblog rdesktop transmission 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
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Nvidia driver
2015-09-09 11:35:57 +02:00
if [ "$(lspci | grep -i nvidia)" ]; then
##### Installation
ains "Nvidia driver" linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms nvidia-xconfig
2015-09-09 11:35:57 +02:00
##### Post-configuration
## Backup previous xorg.conf file if exists
if [ -f /etc/X11/xorg.conf ]; then
mv /etc/X11/xorg.conf{,.bkp}
fi
## Run the Nvidia configuration tool
2015-09-09 11:35:57 +02:00
nvidia-xconfig --no-logo
fi
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Wireless driver for BCM43
2015-09-09 11:35:57 +02:00
## Support : carte wifi BCM43
## Liste: broadcom-sta-dkms
2015-09-09 11:35:57 +02:00
if [ "$(lspci | grep -i BCM43)" ]; then
##### Installation
ains "Wireless driver for BCM43 " linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms
2015-09-09 11:35:57 +02:00
###### Post-configuration
# Unload useless modules
2015-09-09 11:35:57 +02:00
modprobe -r b44 b43 b43legacy ssb brcmsmac
# Load the 'wl' module
2015-09-09 11:35:57 +02:00
modprobe wl
# Vérification du bon fonctionnement avec:
#iwconfig
fi
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Office tools for cli
##### Pre-configuration
# Load preseed file
2015-09-09 11:35:57 +02:00
preconfig cups
##### Installation
ains "Office tools for cli" cups devtodo ghostscript gocr graphviz imagemagick imagemagick-doc odt2txt pdftk poppler-utils taskwarrior texinfo texlive texlive-latex-extra units vim-latexsuite xpdf
2015-09-09 11:35:57 +02:00
##### Remove
arem "Purge: Office tools for cli" avahi-autopid avahi-daemon cups-browsed libdaemon0 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!
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Office tools for X11
##### Installation
2016-03-16 09:44:10 +01:00
ains "Outils bureautique graphique" freeplane gprename key-mon libreoffice libreoffice-l10n-fr libreoffice-help-fr libreoffice-pdfimport fonts-linuxlibertine ttf-ancient-fonts verbiste verbiste-gnome xournal
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Multimedia tools for cli
##### Installation
ains "Multimedia tools for cli" avinfo eyed3 ffmpeg mediainfo mkvtoolnix moc w32codecs
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Multimedia tools for X11
##### Installation
ains "Multimedia tools for X11" audacity easytag gimp gpicview inkscape mirage mkvtoolnix-gui smplayer rhythmbox vlc
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Games
##### Installation
ains "Games" teeworlds teeworlds-server
2015-11-16 14:55:44 +01:00
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Network share
##### Installation
ains "Network share" nfs-common
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
###########################################################
#### Wireless tools for cli
if [ "$(lspci | grep -i wireless)" ]; then
##### Installation
ains "Wireless tools for cli" ifscheme wireless-tools wpasupplicant
fi
###########################################################
###########################################################
#### Wireless tools for X11
if [ "$(lspci | grep -i wireless)" ]; then
##### Installation
ains "Wireless tools for X11" wpagui
fi
###########################################################
###########################################################
#### Miscellaneous useless packages
##### Installation
ains "Miscellaneous useless packages" asr-manpages cmatrix cmatrix-xfont cowsay cowsay-off fortunes fortunes-bofh-excuses fortunes-debian-hints fortunes-fr fortunes-off funny-manpages linuxlogo sl
###########################################################
2015-09-09 11:35:57 +02:00
###########################################################
#### Manpages / Documentation
##### Installation
ains "Manpages" aptitude-doc-fr info manpages-fr manpages-fr-dev manpages-fr-extra
###########################################################
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
# -----------------------------------------------------------
# **********************************************************************************************