Catégories
Developpement Open-source Planet-libre Systeme

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:

wget https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-postinstall.py
chmod a+x ubuntu-12.04-postinstall.py

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:

sudo ./ubuntu-12.04-postinstall.py

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:

sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshell-postinstall.cfg

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

sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-cinnamon-postinstall.cfg

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 !

Catégories
Open-source Planet-libre Systeme

Ubuntu 12.04 – Participez à la conception du script de post-install

Dans quelques semaines, la version 12.04 (alias Precise Pangolin) de la distribution Ubuntu va sortir. C’est une version LTS (« Long Time Support ») qui sera intéressante pour une utilisation aussi bien personnelle que professionnelle. L’orientation grand-public de Canonical (l’éditeur d’Ubuntu) est, je le pense, un bien pour la promotion et la diffusion des systèmes GNU/Linux.

D’un autre coté, pour nous, les geeks/hackers, il est nécessaire d’effectuer pas mal d’actions après l’installation du système (« post-installation ») pour disposer d’un environnement adapté à nos besoins. Depuis la version Ubuntu 11.04, je mets à disposition sur un GitHub un script de post-installation qui va permettre d’automatiser ces actions de post-installation.

Je vous propose donc de travailler ensemble sur la conception de la prochaine version du script qui sera dédié à Ubuntu 12.04.

Structure générale du script

La prochaine version du script sera développé en langage Python (BASH pour les ancienne verison) en se basant sur un squelette commun que j’utilise pour d’autres scripts.

Ce dernier effectuera les actions suivantes:

  • ajout de certains dépôts officiels et non-officiels
  • installation d’une liste de paquets (logiciels, librairies…) non présents dans la distribution standard
  • mise à jour du système
  • configuration de l’interface graphique (Gnome Shell actuellement mais il est possible aussi d’ajouter des customs pour Unity), Conky…
  • configuration VIM (.vimrc)
  • configuration SHELL (alias, prompt…)

Liste des dépôts à ajouter

Voici la listes des dépôts que le script ajoute à votre système:

  • ppa:gstreamer-developers (le PPA officiel des développeurs de GStreamer)
  • ppa:shutter (pour avoir la dernière version de Shutter, l’outil de capture d’écran)
  • ppa:chromium-daily/dev (le daily build de Chromium, le navigateur Web libre basée sur WebKit)
  • ppa:ubuntu-wine (Wine, pour exécuter certains programme Windows sous Ubuntu)
  • ppa:tualatrix/ppa (pour une version toute fraiche d’Ubuntu Tweak)
  • ppa:gnome-terminator/ppa (le terminal ultime…)
  • ppa:nilarimogard/webupd8 (le site WebUpd8 maintient ce PPA avec pas mal de logiciels)
  • ppa:webupd8team/jupiter (si vous avez un portable, ce PPA est fortement conseillé pour augmenter l’autonomie)
  • ppa:clipgrab-team/ppa (convertisseur vidéo ClipGrab)
  • ppa:stebbins/handbrake-releases (Handbrake)
  • http://repository.spotify.com (Spotify)
  • http://archive.getdeb.net/ubuntu (GetDeb, le projet maintien à jour une liste importante de logiciels libres)

Pour Gnome 3 (Gnome Shell):

  • ppa:gnome3-team/gnome3 (le PPA officiel des développeurs de Gnome 3)
  • ppa:webupd8team/gnome3 (pas mal d’extensions en plus)
  • ppa:webupd8team/themes (des thèmes pour Gnome Shell)

Listes des paquets à installer

Les logiciels suivants sont installés.

Développement:

[cc]

build-essential

vim

subversion

git git-core

rabbitvcs-nautilus

textadept

geany

wine

ubuntu-tweak

terminator

pyjupiter

nautilus-dropbox xclip zenity dropbox-share

[/cc]

Multimédia:

[cc]

vlc

x264

ffmpeg2theora

oggvideotools

istanbul

shotwell

mplayer

hugin

nautilus-image-converter

pavucontrol

gimp

gimp-save-for-web

ogmrip

transmageddon

guvcview

wavpack

mppenc

faac

flac

vorbis-tools

faad

lame

nautilus-script-audio-convert

cheese

sound-juicer

picard

arista

nautilus-arista

milkytracker

mypaint

libdvdread4

clipgrab

handbrake-gtk handbrake-cli

spotify-client-qt

shutter

[/cc]

Réseau:

[cc]

iperf

ifstat

wireshark

tshark

arp-scan

htop

netspeed

nmap

netpipe-tcp

[/cc]

Système: 

[cc]

preload

gparted

lm-sensors

compizconfig-settings-manager

hardinfo

fortune-mod

libnotify-bin

compiz-fusion-plugins-extra

ubuntu-restricted-extras

[/cc]

Web:

[cc]

chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra chromium-codecs-ffmpeg-nonfree

pidgin

pidgin-facebookchat

pidgin-plugin-pack

flashplugin-downloader

xchat

googleearth-package lsb-core ttf-mscorefonts-installer

[/cc]

Gnome 3:

[cc]

gnome-shell gnome-tweak-tool gnome-documents

conky-all ttf-ubuntu-font-family

[/cc]

Comment participer à la conception ?

Tout simplement en laissant un commentaire en bas de ce billet. Les actions à mener sont:

  • ajouter des dépôt manquants (attention, il ne faut proposer que des dépôts stables et pérennes)
  • ajout d’applications/librairies obligatoires (au sens geek du terme :))
  • autres actions à mener en post-install (merci de détailler)

Update:

Le script est disponible en version alpha (bien sur il ne faut pas le lancer sur votre machine mais seulement dans des VMs !):

Il est donc possible de le forker et de participer plus pratiquement à son évolution (par exemple en suivant ce billet).

J’attends vos idées !