(23/09/2015 : L'article n'est pas totalement terminé, je fais encore des ajouts en fonction des choses que je rencontre au quotidien.)


J'installe Debian de plus en plus régulièrement et j'ai toujours peur d'oublier quelque chose dans les petits détails les configurations post-installation. Voici donc une petite liste de choses auxquelles je dois penser après avoir installé une Debian "fraiche". Sur mes machines de bureau, j'utilise Gnome3. Certaines choses seront à adapter en fonction de votre environnement de bureau.

Programmes à installer

Liste de programmes dont j'ai besoin au quotidien.

$ su
password: 
# apt-get install aptitude
(...)
# aptitude install git tree vim mc

Git : Vite indispensable pour installer des petits programmes depuis Github ou autre.

Tree : Pratique pour afficher le contenu d'un dossier avec une arborescence

Vim : J'ai besoin de détailler ?

Mc : Midnight Commander est un gestionnaire de fichier dans le terminal.

Paramètres de base :

param_debian

Date & heure

Il ne faut pas oublier de vérifier la configuration de l'heure, même si elle semble correcte. J'avais un décalage de plusieurs minutes avant de mettre ces paramètres en automatiques. configuration_heure

Énergie

Par défaut, 5 minutes d'inactivité suffisent à passer en veille et à verouiller la session. Je trouve que c'est un peu court. Pour modifier ça, on va tout d'abord dans "Énergie" energie

Confidentialité

Par défaut, l'écran se verrouille dès que l'écran s'éteint (en fonction du temps configuré dans Énergie). On peut cependant changer ça et mettre, par exemple, 30 minutes. confidentialité

N'oubliez pas qu'on peut -et qu'on doit!- verouiller sa session quand on quitte son bureau. On utilise pour ce faire la combinaison de touches "Super + l".

Récupérer tout son home depuis un autre ordinateur

Dans le cas qui m'occupe, je change de machine. J'ai donc deux machines allumées avec Debian 8. Je peux faire une copie de tout mon home de la vieille vers la nouvelle machine. J'ai utilisé la commande rsync mais ça peut aussi se faire avec un scp. Depuis le vieil ordinateur:

$ rsync -e ssh -rlt /home/simon sim@IP.NOUVEL.ORDI.NATEUR:/home/sim/old_home/ 

(source : ubuntu-fr)

En fonction de ce que je vais configurer par la suite, je n'ai qu'à déplacer les fichiers dont j'ai besoin du dossier /home/sim/old_home/simon/ vers /home/sim/.

Iceweasel

Récupérer la configuration de l'ancienne machine

$ cp -r /home/sim/old_home/simon/.mozilla /home/sim/.mozilla

Installer et configurer KeeFox

# aptitude install keepass2 mono-complete 

Normalement on doit installer KeeFox depuis les plugins de Firefox mais comme on a tout recopié précédemment, pas besoin. On doit cependant recopier le fichier KeePassRPC.plgx vers /usr/lib/keepass2/ :

# cp /home/sim/.mozilla/firefox/ajcz7x9o.default/extensions/keefox@chris.tomlinson/deps/KeePassRPC.plgx /usr/lib/keepass2

Plus qu'à ouvrir Iceweasel, à l'autoriser à accéder à KeePass2 et lui indiquer où est notre fichier .kdbx.

Icedove

Installer Icedove et supprimer Evolution

Je n'utilise pas Evolution mais Icedove (version Debian de Thunderbird). Le seul problème c'est qu'Evolution est très imbrigué avec Gnome. Si on se contente de supprimer evolution sans faire attention, on supprime aussi le méta-paquet gnome ce qui cause toute une série de problème de dépendances par la suite.

# aptitude remove evolution
Les paquets suivants seront ENLEVÉS :                   
  evolution 
0 paquets mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 0 o d'archives. Après dépaquetage, 366 ko seront libérés.
Les paquets suivants ont des dépendances non satisfaites :
 evolution-plugins : Dépend: evolution (= 3.12.9~git20141130.241663-1+b1) mais il ne sera pas installé.
 gnome : Dépend: evolution (>= 3.12) mais il ne sera pas installé.
Les actions suivantes permettront de résoudre ces dépendances :

     Supprimer les paquets suivants :                   
1)     evolution-plugins                                
2)     gnome

Il faut d'abord "dé-solidariser" tout ce qui est contenu dans le méta-paquet gnome avant de le supprimer. Voici une solution trouvée sur debian-fr.org.

# dpkg -s gnome | grep ^Depends: | sed "s/,/\ \n /g" | awk '{print $1}' | sed -e '/Depends:/d' > file
# cat file 
desktop-base
network-manager-gnome
bijiben
brasero
cheese
evolution
evolution-plugins
file-roller
gedit
gnome-clocks
gnome-color-manager
gnome-documents
gnome-games
gnome-getting-started-docs
gnome-logs
gnome-maps
gnome-music
gnome-nettool
gnome-photos
gnome-sound-recorder
gnome-tweak-tool
nautilus-sendto
gnome-orca
polari
rygel-playbin
rygel-tracker
seahorse
vinagre
alacarte
avahi-daemon
gimp
hamster-applet
inkscape
libreoffice-evolution
libreoffice-gnome
libreoffice-writer
libreoffice-calc
libreoffice-impress
rhythmbox
simple-scan
goobox
transmission-gtk
xdg-user-dirs-gtk
cups-pk-helper
gedit-plugins
gnome-shell-extension-weather
gstreamer1.0-libav
gstreamer1.0-plugins-ugly
rhythmbox-plugins
rhythmbox-plugin-cdrecorder
telepathy-gabble
telepathy-rakia
telepathy-salut
totem-plugins
libgtk2-perl
# aptitude unmarkauto < file

On peut maintenant supprimer evolution et le méta-paquet gnome :

# aptitude remove evolution

On termine en installant Icedove et le paquet pour qu'il soit en français :

# aptitude install icedove icedove-l10n-fr

Récupérer la configuration de l'ancienne machine

$ cp -r /home/sim/old_home/simon/.icedove/ /home/sim 

J'ai maintenant récupéré toute la configuration de mes comptes mails. Continuons!

Vim

Prérequis

Pour que le plugin Gundo que j'utilise (voir ma configuration de Vim) fonctionne, j'ai besoin de vim-nox :

deb# aptitude search vim-nox
p   vim-nox                                                       - Vi IMproved - enhanced vi editor - with scripting languages support     
deb# aptitude install vim-nox
Les NOUVEAUX paquets suivants vont être installés :     
  libruby2.1{a} libtcl8.6{a} libyaml-0-2{a} vim-nox 
(...)

Récupération de l'ancienne configuration

On récupère ensuite le dossier .vim et le fichier .vimrc :

$ cp -r /home/sim/old_home/simon/.vim/ /home/sim
$ cp /home/sim/old_home/simon/.vimrc /home/sim/

Partager la configuration de Vim entre root et l'utilisateur courant

J'ai maintenant récupéré tous les plugins que j'avais installé et ma configuration dans le .vimrc. On peut encore partager la configuration entre l'utilisateur courant et root. On commence par supprimer la configuration vim de root et on fait les liens vers les configuration de l'utilisateur courant (sim, dans mon cas).

# rm -r /root/.vim
# ln -s /home/sim/.vim/ /root
# ln -s /home/sim/.vimrc /root 

Configuration des vlans

Au boulot ma machine est connectée sur plusieurs vlans.

# aptitude install vlan

Configurer le fichier interfaces :

# vim /etc/network/interfaces

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# VLAN14 : nom du vlan11
auto eth1.14

iface eth1.14 inet static
    address IP.SUR.VLAN.14
    netmask 255.255.255.0

# VLAN27 : nom du vlan27
auto eth1.27

iface eth1.27 inet static
    address IP.SUR.VLAN.27
    netmask 255.255.255.0
    gateway IP.GATEWAY.VLAN.27

(note: UN SEUL GATEWAY! ;-) )

Ensuite on peut activer les vlan avec ifup.

# ifup eth1.14
# ifup eth1.27

Redémarrer :

# reboot

Installer les drivers Nvidia

Mon deuxième écran n'était pas détecté parce que je n'avais pas les bons drivers pour ma carte graphique. Il faut d'abord commencer par identifier la carte graphique avec lspci et/ou nvidia-detect (à installer). Voici la procédure que j'ai faite pour installer nvidia-driver et configurer Xorg. Il faudra évidemment adapter en fonction de votre carte graphique.

$ su 
password:
# lspci|grep VGA
02:00.0 VGA compatible controller: NVIDIA Corporation G96GL [Quadro FX 380] (rev a1)
# nvidia-detect 
Detected NVIDIA GPUs:
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation G96GL [Quadro FX 380] [10de:0658] (rev a1)
Your card is supported by the default drivers and legacy driver series 304.
It is recommended to install the
    nvidia-driver
package.
# aptitude install nvidia-driver
Les NOUVEAUX paquets suivants vont être installés :     
  dkms{a} gcc{a} gcc-4.8{a} gcc-4.9{a} libc-dev-bin{a} libc6-dev{a} 
  libgcc-4.8-dev{a} libgcc-4.9-dev{a} libgl1-nvidia-glx{a} 
  linux-compiler-gcc-4.8-x86{a} linux-headers-3.16.0-4-amd64{a} 
  linux-headers-amd64{a} nvidia-driver nvidia-driver-bin{a} 
  nvidia-kernel-dkms{a} nvidia-settings{a} nvidia-vdpau-driver{a} 
  xserver-xorg-video-nvidia{a} 
0 paquets mis à jour, 18 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 2.234 ko/33,4 Mo d'archives. Après dépaquetage, 153 Mo seront utilisés.
Voulez-vous continuer ? [Y/n/?] 
(...)
# mkdir /etc/X11/xorg.conf.d
# echo -e 'Section "Device"\n\tIdentifier "My GPU"\n\tDriver "nvidia"\nEndSection' > /etc/X11/xorg.conf.d/20-nvidia.conf
# reboot

(source : wiki.debian.org )

Installer un deuxième disque dur

J'ai deux disques durs dans ma nouvelle machine. À l'installation, j'ai formaté le deuxième en ext4 pour l'utiliser comme espace de stockage. Cependant, il ne se montait pas automatiquement au démarrage car fstab n'était pas complet. J'ai donc rajouté la ligne suivante dans fstab :

$ su
password:
# nano /etc/fstab
#deuxieme disque dur:
/dev/sdf1   /media/hd2  ext4    defaults    0   0

Maintenant le disque dur se monte automatiquement au démarrage. Je peux aussi le monter/démonter avec mount/umount :

$ mount /media/hd2
$ umount /media/hd2

Configuration du terminal

Pour avoir un terminal efficace et joli, j'utilise le thème Solarized d'Ethan Schoonover ainsi que le shell Zsh et le thème Agnoster.

Configuration du thème Solarized (Dark)

$ wget --no-check-certificate https://raw.github.com/seebi/dircolors-solarized/master/dircolors.ansi-dark
$ mv dircolors.ansi-dark .dircolors
$ eval `dircolors ~/.dircolors`

(source : webupd8.org)

Une fois ces commandes exécutées, on ouvre les Préférences du profil (dans le menu Édition) et on configure les couleurs pour utilisé le thème Solarizé sombre. solarized

Installation de Zsh

Je réutilise Zsh depuis quelques semaines avec l'extension Oh-my-zsh. Voici comment l'installer.

# aptitude install zsh
Les NOUVEAUX paquets suivants vont être installés :     
  zsh zsh-common{a} 
...

Faire de Zsh son shell par défaut :

$ chsh -s $(which zsh)

Il faut quitter le terminal ou changer d'utilisateur pour que le changement soit effectif.) Quand on réouvre un terminal et qu'on a pas encore configuré quoi que ce soit, Zsh nous propose de mettre une configuration par défaut (ou pas). Je choisi pour ma part d'utiliser la configuration par défaut dans un premier temps. (Option 2)

This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

(2)  Populate your ~/.zshrc with the configuration recommended
     by the system administrator and exit (you will need to edit
     the file by hand, if so desired).

--- Type one of the keys in parentheses --- 2
prompt_adam1_setup:1: scalar parameter prompt_adam1_color1 created globally in function
prompt_adam1_setup:2: scalar parameter prompt_adam1_color2 created globally in function
prompt_adam1_setup:3: scalar parameter prompt_adam1_color3 created globally in function
prompt_adam1_setup:5: scalar parameter base_prompt created globally in function
prompt_adam1_setup:6: scalar parameter post_prompt created globally in function
prompt_adam1_setup:8: scalar parameter base_prompt_no_color created globally in function
prompt_adam1_setup:9: scalar parameter post_prompt_no_color created globally in function
/home/sim/.zshrc:15: scalar parameter HISTFILE created globally in function
(eval):1: scalar parameter LS_COLORS created globally in function

Pour info, on peut vérifier le Shell utilisé par défaut :

$ echo $SHELL
/usr/bin/zsh

Installer Oh-my-zsh :

$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
--2015-08-14 11:54:19--  https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Résolution de raw.github.com (raw.github.com)… 23.235.43.133
Connexion à raw.github.com (raw.github.com)|23.235.43.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh [suivant]
--2015-08-14 11:54:20--  https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Résolution de raw.githubusercontent.com (raw.githubusercontent.com)… 185.31.17.133
Connexion à raw.githubusercontent.com (raw.githubusercontent.com)|185.31.17.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 2033 (2,0K) [text/plain]
Sauvegarde en : « STDOUT »

-                   100%[=====================>]   1,99K  --.-KB/s   ds 0s     

2015-08-14 11:54:20 (85,6 MB/s) — envoi vers sortie standard [2033/2033]

Cloning Oh My Zsh...
Clonage dans '/home/sim/.oh-my-zsh'...
remote: Counting objects: 671, done.
remote: Compressing objects: 100% (542/542), done.
remote: Total 671 (delta 15), reused 509 (delta 4), pack-reused 0
Réception d'objets: 100% (671/671), 412.72 KiB | 0 bytes/s, fait.
Résolution des deltas: 100% (15/15), fait.
Vérification de la connectivité... fait.
Looking for an existing zsh config...
Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh
Using the Oh My Zsh template file and adding it to ~/.zshrc
Copying your current PATH and adding it to the end of ~/.zshrc for you.
         __                                     __   
  ____  / /_     ____ ___  __  __   ____  _____/ /_  
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ 
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / 
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  
                        /____/                       ....is now installed!


 Please look over the ~/.zshrc file to select plugins, themes, and options.


 p.s. Follow us at http://twitter.com/ohmyzsh.


 p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.

On peut maintenant changer de thème. Il y a une longue liste de thèmes et j'ai choisi agnoster. En prérequis, il faut installer powerline et des polices :

Installation de Powerline et des polices :

$ sudo aptitude install powerline fonts-powerline:
$ git clone https://github.com/powerline/fonts.git
$ ls fonts
AnonymousPro    DroidSansMonoDotted   Inconsolata    InputMono       Meslo       samples        UbuntuMono
DejaVuSansMono  DroidSansMonoSlashed  InconsolataDz  install.sh      Monofur     SourceCodePro
DroidSansMono   FiraMono              Inconsolata-g  LiberationMono  README.rst  Terminus
$ ./fonts/install.sh 
All Powerline fonts installed to /home/simon/.fonts

Après l'installation :

echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"
 ±  ➦ ✘ ⚡ ⚙

Pour changer de thème et mettre agnoster, il faut éditer le fichier .zshrc.

$ vim .zshrc
# Path to your oh-my-zsh installation.
export ZSH=/home/simon/.oh-my-zsh
export DEFAULT_USER=simon

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="agnoster"
(...)

Partager la configuration de Zsh entre root et l'utilisateur

Pour avoir la même configuration Zsh pour root et l'utilisateur courant, on peut faire quelques liens symboliques.

deb# ln -s /home/sim/.zshrc /root
deb# ln -s /home/sim/.zsh_history /root 
deb# ln -s /home/sim/.zshrc.pre-oh-my-zsh /root
deb# ln -s /home/sim/.zsh-update /root

Changer l'éditeur par défaut

# update-alternatives --config editor
Il existe 4 choix pour l'alternative editor (qui fournit /usr/bin/editor).

 Sélection   Chemin              Priorité  État
------------------------------------------------------------
* 0            /bin/nano            40        mode automatique
 1            /bin/nano            40        mode manuel
 2            /usr/bin/vim.basic   30        mode manuel
 3            /usr/bin/vim.nox     40        mode manuel
 4            /usr/bin/vim.tiny    10        mode manuel

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :2      
update-alternatives: utilisation de « /usr/bin/vim.basic » pour fournir « /usr/bin/editor » (editor) en mode manuel

Il y a encore plein de choses à installer mais avec ça, j'ai une machine que je peux utiliser pour travailler. Plus qu'à... :-)