Préparer l’arrivée de Precise Pangolin avec un script de postinstall

Si vous suivez régulièrement ce blog, vous savez que je suis un informaticien fainéant, j'ai horreur de faire plusieurs fois la même chose. C'est une des raison pour laquelle je développe des scripts d'auto (ou post) installation que vous pouvez trouver sur mon espace GitHub.

Nous allons, dans ce billet, parler de la nouvelle version du script de post installation de la version Ubuntu Precise Pangolin (aka 12.04 LTS).

Heu, c'est quoi un script de post install ?

C'est un script que l'on lance à la fin d'une installation "standard" ("out of the box") d'un système d'exploitation et qui va s'occuper de le configurer pour répondre au mieux à nos besoins.

On peut par exemple automatiser les tâches suivantes:

  • ajouter les dépôts de logiciels
  • installer les logiciels que vous jugez indispensables
  • supprimer les logiciels inutiles
  • télécharger et installer des thèmes pour votre interface graphique
  • configurer vos applications (BASH, prompt, Vim...)
  • faire toutes les actions en ligne de commande qui vous passe par la tête !

Historique du script UbuntuPostInstall

Les dernières versions de ce script (pour les distributions Ubuntu 11.04 et 11.10) étaient développées en Shell Script (BASH). Afin de simplifier le développement, j'ai donc décidé de re-développer complètement le script en Python en lui apportant une fonction de personnalisation par fichier de configuration.

C'est donc sur cette base que le script pour la version 12.04 d'Ubuntu est développé.

Comment fonctionne le script ?

Le script, disponible sous GitHub ou à partir de sa page officielle, est autonome et fonctionne directement à partir d'une installation standard d'Ubuntu 12.04 LTS. Pour le télécharger, il faut saisir les commandes suivantes:

Pour fonctionner, le script utilise un fichier de configuration qui permet de spécifier les "choses à faire". Par défaut, si aucun configuration n'est spécifiée dans la ligne de commande, il va télécharger le fichier suivant sur mon GitHub: post-installation pour Unity.

Donc pour lancer une post-installation standard sur une toute fraiche distribution Ubuntu 12.04 LTS, il faut lancer la commande:

Le script va faire les chose suivantes:

  • Ajouter des dépôts PPA utiles (voir la liste dans la section repos)
  • Ajouter des applications indispensables aux geeks (classées par thème: dev, multimedia, réseau, système...)
  • Ajout de thèmes pour GTK, des icônes...
  • Configuration de BASH (.bashrc, prompt, alias), Vim (.vimrc) et Htop (.htoprc)

Voici un aperçu du script en cous d'exécution:

Le script génère également un fichier de log dans le répertoire /tmp qui va détailler toutes les actions effectuées (et vous permettre d'identifier les éventuels problèmes).

D'autres fichiers de configuration sont disponibles sur mon GitHub et peuvent être spécifiés dans la ligne de commande. Par exemple, si vous préférez utiliser Gnome Shell en lieu et place d'Unity:

ou si vous êtes plutôt Cinnanon (le fork de Gnome 2):

Comment éditer votre propre fichier de configuration ?

Bien que les fichiers fournis en standard répondent aux besoins de la plupart des geek qui lisent ce blog, il peut être intéressant de l'adapter plus finement à vos besoins.

Le plus simple est donc de "forker" la configuration par défaut qui s'approche le plus de votre environnement (Unity, Gnome Shell ou Cinnanon). Puis d'éditer le fichier de configuration et enfin de l'utiliser avec l'option -c du script (qui peut prendre en paramètre une URL ou un fichier local).

Par exemple, si vous êtes un fan de Gnome Shell, vous pouvez télécharger le fichier suivant puis l'éditer en suivant les consignes disponibles sur le site officiel.

Comme vous allez le voir, le fichier de configuration permet, en plus des actions détaillées au début de ce chapitre, de lancer des lignes de commandes en début (section preactions) ou fin de script (section postactions).

Conclusion

Si vous avez des remarques ou des demandes spécifiques sur ce nouveau scripts ou que vous vouliez partager vos fichiers de configurations personnels, les commentaires ci-dessous sont là pour ça !

  • http://www.le-libriste.fr BoB

    Salut,

    Je n’ai pas oublié, je regarde cela dans la semaine !

    Cdt B0B

  • Nordine

    Salut, merci pour cet article.
    Je pense qu’il me sera d’une grande utilité lors de la sortie officiel de la LTS.

    Bon boulot !
    Nono.

  • Herisson

    Merci pour cet article. Juste qqls fautes “un aperçu du script en cous d’exéc…” en couRs.
    Sinon c’est cinnaMon (et non cinnaNon, lapsus ?) et cela n’est pas un fork de Gnome 2 mais de Gnome shell qui a un look de Gnome 2. Le fork de Gnome 2 chez Mint c’est Mate … et Cinnamon est vraiment agréable à utiliser. Encore en cours d’amélioration mais à essayer non pas parce que c’est comme gnome 2 mais parce qu’il est ergonomique et les applets / extensions permettent de l’enrichir un peu …

  • http://low.je lowje
  • Bristow

    Merci beaucoup pour ce script ! Je l’ai forké gentiment pour l’utiliser pour la migration des PC familiaux, l’échéance approche à grands pas :)

    Il me manque 2 choses actuellement, et n’étant pas spécialement développeur, je les soumet :)

    1 – Possibilité d’installer des deb, genre, teamviewer, qui malgré tout est bien pratique pour les débutants
    2 – Possibilité de décompresser une archive téléchargée dans un dossier spécifique, en fait, j’adore ces icônes : http://www.omgubuntu.co.uk/2012/03/get-better-looking-folder-icons-in-ubuntu-with-fs-icons/

    Merci encore !

  • http://blog.lyrixx.info Greg

    salut, pourquoi tu n’as pas utilisé du fabric ou, même du chef ?

  • Pingback: Automatiser la post-installation d'Ubuntu 12.04 | Le Libriste

  • http://www.tiramiseb.fr tiramiseb

    Bonjour Nico,

    J’ai posté un commentaire sur un précédent post concernant ton script de postinstall, mais je viens de me rendre compte que le post en question date de plus de deux ans… Fainénant que je suis, voici un simple copier/coller de ce message :

    J’utilisais également un tel script, refait plusieurs fois, mais j’ai cette fois-ci décidé de prendre le taureau par les cornes et j’ai créé un outil complètement générique, qui va donc bien plus loin qu’un simple script et pour lequel les améliorations sont bien plus faciles à partager (en gros, chaque “action” est définie dans une classe Python que j’ai appelée “maker”, et les makers sont réunis par thèmes dans différents modules)… Il est donc possible de créer de nouveaux makers, voire de nouveaux modules, et de les partager sans modifier le code source de l’outil dans sa globalité.
    Il reste pas mal d’améliorations à faire : j’ai encore moi-même plein de makers à faire pour mes préférences perso, il serait également bon de faire des vérifications de bon fonctionnement pour rendre la chose solide…
    Ça se trouve là : https://github.com/tiramiseb/apply-my-preferences

  • http://www.tiramiseb.fr tiramiseb

    Greg,

    Il me semble que Fabric ne répond pas du tout au besoin évoqué.
    De son côté, Chef est plutôt orienté “ferme de serveurs” et pas vraiment adapté pour des installations récurrentes d’un seul poste utilisateur.

  • SckyzO

    Salut Nico,
    J’ai eu un bug avec ton script, rien de grave, juste j’avais lancer un apt-get update/dist-upgrade et en même temps j’ai lancé ton script et “l’interface shell” m’affichait :
    Update repositories [ OK ]
    System upgrade (~20 mins, please be patient…) [ OK ]
    Install packages ubuntu-restrictive [ OK ]
    Install packages development [ OK ]
    Install packages multimedia [ OK ]
    Install packages network [ OK ]
    [...]

    En gros le code erreur ne doit pas être identique si apt est déjà lancé.

    Merci pour le script je vais le regarder rapidement, je reviens sous linux là :-)

  • Pingback: Geek De France.fr » Ubuntu 12.04 : les nouveautés

  • Pingback: Geek de France: Ubuntu 12.04 : les nouveautés « SAM7BLOG

  • Celid

    Petit script bien utile :)

    Cependant sur mes deux installations (une en 32bit, l’autre en 64) je me retrouve avec une erreur pour toute installation de programme concernant textadept

    Paramétrage de textadept (4.0-1~webupd8~oneiric) …
    Downloading…
    –2012-04-28 12:18:10– http://textadept.googlecode.com/files/textadept_4.0.x86_64.tgz
    Résolution de textadept.googlecode.com (textadept.googlecode.com)… 173.194.67.82, 2a00:1450:8005::52
    Connexion vers textadept.googlecode.com (textadept.googlecode.com)|173.194.67.82|:80… connecté.
    requête HTTP transmise, en attente de la réponse… 403 Forbidden
    2012-04-28 12:18:10 ERREUR 403: Forbidden.

    download failed
    Download done.
    tar: textadept_4.0.x86_64.tgz : open impossible: Aucun fichier ou dossier de ce type
    tar: Error is not recoverable: exiting now
    cannot unpack Textadept
    mv: impossible d’évaluer «textadept_4.0.x86_64»: Aucun fichier ou dossier de ce type
    dpkg : erreur de traitement de textadept (–configure) :
    le sous-processus script post-installation installé a retourné une erreur de sortie d’état 1
    Des erreurs ont été rencontrées pendant l’exécution :
    textadept
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Rien de bien grave je pense, mais c’est assez énervant >< si quelqu'un avait une solution ?

    • http://www.nicolargo.com nicolargo

      Il y a effectivement un pb avec ce package… Pour le résoudre:

      # sudo apt-get remove textadept

      J’ai modifié les fichiers de conf pour ne plus installer ce logiciel…

  • Mathieu

    Salut, ‘jai un petit soucis avec ce script à l’éxécution j’obtient :
    “sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-cinnamon-postinstall.cfg
    File “./ubuntu-12.04-postinstall.py”, line 42
    RED = ’33[91m’
    ^
    IndentationError: expected an indented block”

    Quelqu’un a une solution ? merci.

    • http://www.nicolargo.com nicolargo

      Peux tu télécharger la dernière version du script (0.7) et essayer une nouvelle fois ?

  • Pingback: Ubuntu 12.04 : les nouveautés « Sandra Le Franc

  • Pingback: Technology And Software » Préparer l’arrivée de Precise Pangolin avec un script de postinstall

  • Pingback: Precise Pangolin ubuntu 12.04 LTS || KOREZIAN

  • brahim

    Bonjour
    Votre script me convient et je vais l’utiliser dans la semmaine prochaine a partir du (https://help.ubuntu.com/community/Installation/MinimalCD)

    mais avant je voudrai ajouter 3 depots
    ou devrais je les ajouter ?
    j’opte pour pour une installation gnome-shell : ( sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshell-postinstall.cfg)

    devrais je ajouter une ligne comme ceci seulement
    # Tweak your system
    ppa_tweak = ppa:tualatrix/ppa
    pkg_tweak = ubuntu-tweak

    merci encore pour le script

    • http://www.nicolargo.com nicolargo

      Exactement, il faut ajouter ces lignes dans la section repos du fichier de configuration.

      Bonne continuation.

  • Issa

    Bonjour,

    gros probléme pour moi aprés avoir installé le script, je suis bloqué sur la page de login, ubuntu ne veut plus me logguer :’(

    quand je tape mon mot de passe je valide et l’écran deviens noir, reviens sur l’écran de login.

    la je me suis connecter en liveCd, ou est ce que je peux voir les logs svp, pour voir ce qui ce passe.

    merci

    • http://www.nicolargo.com nicolargo

      Quel fichier de conf as tu utilisé ?

      Tu esayes de lancer Unity ? Gnome ?

    • http://www.nicolargo.com nicolargo

      Il y a effectivement un problème que je viens d’identifier (mais pas encore de corriger) sur le fichier .bashrc.

      Pour arriver à ce loguer:
      1) Faire un CTRL-ALT-F1
      2) Se loguer
      3) mv ~/.bashrc ~/.bashrc_BUG
      4) cp /usr/share/base-files/dot.bashrc ~/.bashrc
      5) sudo reboot

      Je regarde ce qui cloche dans le fichier .bashrc ce we…

      En attendant j’ai désactiver le téléchargement de ce fichier dans les fichiers de conf du script d’install.

      • Laurent

        Merci Nico

  • http://www.jeremygiuseppi.fr YerebY

    Salut Nico,

    Un coquille c’est glissée dans le dernier paragraphe : dans la phrase “Par exemple, si vous êtes un fan de Gnome Shell, vous pouvez télécharger le fichier suivant”, tu mets le lien vers le config de cinnamon.

    @+

    • http://www.nicolargo.com nicolargo

      C’est corrigé ! Thx

  • ibrahim

    Bonjour
    je viens d’installer gnome-shel sur mini.iso sous virtualbox

    voici le lien pour les images: http://flashmirrors.com/files/izesieymeyb30jl/nicolargo.tar.gz

    je remarque que l’interface graphique de gnome-shel est celle de gnome2

    pour les image:
    1- boot mini.iso
    2- le grub après installation de l’iso
    3- execution de script
    4- Choix de session
    5- menu des logiciels est cellui de gnome2 et pas de gnome-shell

    merci de votre attention

  • ibrahim

    j’ai trouvée la solution
    gnome3 ne peux être affiche sans 3D

  • ludo

    Bonjour,

    je viens de découvrir le script de postinstall, vraiment sympa et très pratique, j’aurais voulu savoir si il était compatible avec Ubuntu 12.10 en l’état ?
    merci

    • http://www.nicolargo.com nicolargo

      Je pense que oui mais je n’ai pas testé. Au pire, il ne trouvera pas certain PPA pas encore disponible pour la 12.10… Je suis preneur d’un retour si tu teste :)

      • ludo

        Apparemment on peut pas lancer l’installation standard : sudo ./ubuntu-12.04-postinstall.py

        message d’erreur : Script only for ubuntu 12.04
        donc pas compatible avec ubuntu 12.10 ;)

  • Kyôshiro

    Bonjour,

    Depuis le script j’ai un message d’erreur qui arrive souvent.

    http://uppix.net/8/d/f/ad90199abfa91af8c26482f08a31c.png

    http://uppix.net/6/4/2/7abbc6c1fe4831510dcd88dd0c1d1.png
    Je dois avoir fait quelque chose de mal.

    EDIT: à priori c’est une fonction de la version 12.10, j’ai donc du mettre le mauvais script.
    Vous savez comment je peux corriger le tout ?

  • Pingback: Post-installation d’Ubuntu 12.04 | Cyberscooty's Wiki

  • Pingback: » Post-installation d’Ubuntu 12.04 - Cyberscooty's Wiki

  • Pingback: » Réinstallation de mon Ubuntu - Cyberscooty's Wiki