U Classroom

Un blog collectif, orienté vers l'apprentissage et l'enseignement collaboratif et communautaire de techniques applicables aux unix libres

Au revoir Effraie

"Ma disparition'", c'est ainsi que Mathieu, alias Effraie vient d'annoncer son retrait de la vie Linuxienne publique. Distant depuis quelques temps il officialise ainsi son départ : trop de boulot, moins de motivation; mais on ne peut lui en vouloir.

Membre actif de la communauté GNU/Linux et Ubuntu depuis plusieurs années, Effraie s'était engagé dans plusieurs domaines tels que l'association Ubuntu-fr, où il participait activement à plusieurs actions. Il est un des instigateurs de Mental PPC, un dépôt de paquets debian qui avait été fait pour les utilisateurs d'architectures PowerPC. Concernant les Macintosh libre, vous devez sans conteste connaître son blog où beaucoup d'astuces et d'aide à la configuration pour ces machines sont répertoriés. Coté classroom, Effraie était à l'initiative du blog et peu de choses auraient vu le jour sans lui. C'est également lui qui héberge ce blog et les mailing listes du projet u-classroom.

Pour tout ce qu'il a fait et pour ce qu'il fera encore (du moins on l'espère), toute l'équipe de la classroom tient à remercier Effraie et à lui souhaiter une bonne continuation dans ses projets personnels.

je ne suis plus vraiment sûr, ni d'avoir trop ma place parmi vous, ni d'avoir franchement le temps et la motivation nécessaire pour ça.

Et contrairement à ce qu'il peut dire, Effraie aura toujours sa place au sein de la communauté pour laquelle il a tant donné.

Au revoir Effraie, ou plutôt à bientôt !

La classroom

Squelette de documentation des fonctions C/C++ avec vim

Bon, j'avoue, le titre ne veut rien dire, mais faut m'excuser, il est tard, skateinmars a pas arrêté de m'embêter, etc, etc ...

Le but de ce petit topic est de vous montrer comment générer un début de docmentation des fonctions C sous vim.

D'abord, le code. Prenez une chaise, des aspirines, un grand verre, de l'eau . Vous êtes prêt :

map T :copy.<ESC>k<ESC>:.!sed -r 's@(.[^ ]*) (.[^\(]*)\((.*)\).*@/**\n* \@name \2 :\n* \@Param \3 :\n* \@Return \1 :\n*/@; s/,/ :\n* \@Param /g; s/ [ ]+/ /g;' <CR><CR>

J'avais prévenu :)

Alors ça fait quoi ça ? Ca va générer à l'aide d'une simple touche de raccourci un squelette de documentation compatible doxygen & autres. Vous mettez cette petite ligne à la fin de votre ~/.vimrc, vous enregistrez tout ça et vous ouvrez votre code source C préféré.

Placez vous sur la ligne de déclaration d'une fonction par exemple :

 int main (int argc, const char ** argv) { 

et, en mode commande, appuyez sur T (shift + t).

Et là magie, vous voyez apparaître ceci au dessus de la déclaration :

/**
* @name main :
* @Param int argc :
* @Param const char ** argv :
* @Return int :
*/

Si ça ne marche pas c'est que :

  • Vous avez mal fait
  • J'ai mal fait

Dans le premier cas, reprenez vous, que diable ! Dans le second, tant pis pour vous je vais me coucher :)

PS : un GRAND GRAND merci au petit petit gapz qui du fond de sa cave m'a grandement aidé à faire ça (pour ne pas dire qu'il a fait de loin le plus dur) :)

Session Apache/HTTP

Certains se croient encore en vacances et remettent sans cesse leurs projets au lendemain, mais il faut bien se mettre au travail à un moment donné.

Voila donc pour vous une session HTTP/Apache. Bien que l'on parlera du célèbre serveur web, son installation et sa configuration basique l'accent sera mis sur le principe des serveurs webs en général, d'ou une partie importante sur HTTP.

Rendez-vous le mardi 2 octobre à 20h30 heure de Paris (UTC+0200), comme toujours sur le channel irc #ubuntu-fr-classroom (serveur irc.freenode.net).


Prérequis pour ce cours qui s'annonce passionnant (sisi) :
  • Un système ubuntu (ou debian)
  • Avoir déjà utilisé la ligne de commande (se déplacer dans un répertoire, obtenir les droits root)
L'installation sera vue durant le cours mais les utilisateurs en 56k peuvent dès à présent télécharger les paquets suivants : apache2 apache2-mpm-prefork libapache2-mod-php5.

A bientôt !

Prochaine session classroom: Initiation au packaging Debian/Ubuntu

Une de vos application préférée pas encore packagée ? Vous souhaiteriez vous en charger vous-même, ou tout simplement apprendre à packager des softs pour Debian/Ubuntu ? Dans ce cas ce cours est fait pour vous, rendez-vous le vendredi 13 Juillet à 18H UTC (20H à Paris) sur le canal #ubuntu-fr-classroom du réseau freenode (irc.freenode.net).

Nous verrons dans un premier temps de quoi est constitué un package Debian, puis comment en créer un manière (pas puis plus) propre, et enfin comment faire pour que son paquet soit inclus dans les Dépôts officiels de notre distribution préférée :-)

Prérequis pour le cours:

  • Avoir installé pastbinit (sudo aptitude install pastebinit)
  • Avoir installé debhelper cdbs linda build-essential fakeroot devscripts pbuilder dh-make debootstrap (sudo aptitde install...)
  • Avoir installée la version suivante de lintian: http://people.dunnewind.net/arthur/... (wget puis dpkg -i, ou gdebi...)
  • Si possible avoir déjà Compilé un programme et éventuellement savoir ce qu'est un Makefile
  • Avoir déjà utilisé la ligne de commande

Rassurez vous si ces deux dernières notions ne vous sont pas encore familières, elle seront brièvement expliquées pendant le cours ;-)

Note: ce cours est aussi valable pour Debian que Ubuntu, donc utilisateurs Debian, venez nombreux !

A vendredi !

Création et restauration d'images de disques sous Linux

Lors de l'utilisation de postes dans un cadre d'entreprise, il est fréquent de vouloir reproduire la même configuration sur plusieurs postes. L'idéal est donc de configurer un premier ordinateur, puis de faire une image (appelée 'ghost') du disque pour la reproduire sur les autres ordinateurs. Voici donc un petit tutorial tout simple vous permettant de le faire :)

Prérequis

  • Un ordinateur près à cloner
  • Une distribution linux live

Environnement

Cette manipulation a été effectuée dans les conditions suivantes :

  • Système Ubuntu feisty
  • Live grml 1.0
  • Répertoire de stockage de l'image sur serveur distant accessible via samba

Création de l'image

Bon voila, mon système est tout beau tout propre sur mon premier ordinateur, je veux donc créer une image.

1) Redémarrez sur la live 2) Avant toute manipulation, installez lzop sur le système live si ce n'est pas déjà fait (lzop est un utilitaire de compression plus rapide que gzip / bzip)

apt-get install lzop

3) Montez le répertoire devant contenir l'image finale

mkdir /mnt/smb && mount -t smbfs -o username=usersmb //<monserveur>/<monpartage> /mnt/smb

4) On va donc récupérer le contenu du disque à l'aide de l'utilitaire dd et le compresser via lzop. De plus, si le système de fichier qui va contenir l'image ne peut dépasser 2Go par fichier, il va falloir découper l'image à l'aide de l'utilitaire split . Je suppose que le disque devant être cloné est en /dev/sda . A vous d'adapter.

dd if=/dev/sda | lzop -5 | split -b 2000m - /mnt/smb/images/monimage_

Explications :

dd nous permet de récupérer le contenu du disque. Ensuite, on compresse ce contenu en l'envoyant à l'aide d'un pipe à la commande lzop. L'option -5 correspond, comme pour gzip, au taux de compression (-1 : peu compressé, -9 : compression maximum). Enfin, on envoi le contenu compressé à split, auquel on demande de découper ce qu'il reçoit sur l'entrée standard (via l'argument - ) en fichier de 2000m, soit 2Go. On donne à split le path de destination, il s'occupera de suffixer le nom du fichier donné par 'aa', 'ab' ...

Et voilà, le temps d'aller prendre un (voire deux ou trois) café(s), vous aurez votre disque en images compressées.

Réplication de l'image

Bon, on a notre image, maintenant on aimerait bien la copier sur les autres ordinateurs :) Rien de plus simple.

1) On commence par remonter notre système de fichier distant :

mkdir /mnt/smb && mount -t smbfs -o username=usersmb //<monserveur>/<monpartage> /mnt/smb

2)Ensuite, il faut concaténer les images, décompresser le fichier obtenu et le recopier sur le disque, ce qui donne :

cd /mnt/smb/images && cat monimage_aa monimage_bb monimage_cc | lzop -d | dd of=/dev/sda

Simple ... non ? cat concatène les différentes images < 2Go, passe l'image recomposée à lzop qui va la décompresser, et l'image une fois décompressée est passée à dd en lui demandant de l'écrire sur le disque /dev/sda .

Allez, un (deux, trois) autre(s) café(s), et votre clonage est fini. Il ne reste plus qu'à redémarrer sur votre nouveau système !

Avertissement :

Votre système cloné est parfaitement identique au premier. Pensez donc à changer les paramètres tels que l'IP si celle ci est configurée en statique, le nom d'host, etc ...

Prochaine session Classroom : Votre propre Live CD

Avoir LE LiveCD qui va bien, celui qui fait juste ce qu'il vous faut, et rien d'autre, avaec votre propre thème graphique, votre fond d'écran, ça vous branche ? Tant mieux, car on en parlera Jeudi 05 Juillet sur freenode (canal #ubuntu-fr-classroom) à 20H00, heure Parisienne (18H00 UTC).

Une session en deux parties sera proposée. La première vous proposera une solution pour installer/desinstaller les paquets que vous voulez, et changer la configuration par défaut. La seconde, pour les utilisateurs un peu plus avancés, partira à la découverte de casper, logiciel qui gère le lancement du LiveCD.

Pour préparer la session, pensez juste à télécharger une iso Ubuntu Desktop quelconque (pour éviter des problèmes de compatibilité, récupérez la même version que votre système principal).

A jeudi !

Medibuntu.org, ça y est !!!

Des semaines que vous en entendez parler, des jours que vous l'attendiez, mais ça y est, medibuntu.org est là !!!

Enfin prêt, le domaine medibuntu.org est maintenant le domaine officiel du projet MEDIBUNTU.

Vous êtes certainement très nombreux à utiliser les dépots Medibuntu sur votre distribution favorite. Rappelons que Medibuntu propose des paquets non disponibles sur les dépôts officiels essentiellement pour des raisons légales. Jusqu'à présent, il fallait se rendre sur http://medibuntu.sos-sts.com pour effectuer les modifications dans votre gestionnaire de paquets ou en éditant le fichier /etc/apt/sources.list.

En plus de la nouvelle adresse, la venue de medibuntu.org apporte un lot considérable de réorganisations.

1) Les dépôts sont maintenant découpés en 3 sous groupes :

  • http://fr.packages.medibuntu.org : mirroirs français
  • http://de.packages.medibuntu.org : mirroirs allemand
  • http://packages.medibuntu.org : mirroirs généralistes

Ceci afin d'optimiser votre utilisation.

2) Les listes de diffusions sont maintenant :

  • general@lists.medibuntu.org : Discussion généraliste
  • bugs@lists.medibuntu.org : Rapports de bugs, utilisée lors d'un rapport sur Launchpad
  • announce@lists.medibuntu.org : Liste permettant d'effectuer des annonces sur un changement dans Medibuntu
  • servers@lists.medibuntu.org : Liste de discussion sur l'aspect technique de Medibuntu

Nous vous encourageons à vous inscrire aux listes pour nous faire part de vos avis et pour nous permettre de vous tenir facilement au courant. Vous trouverez une interface d'inscription ici

Bien évidemment, les anciennes adresses (medibuntu.sos-sts.com) resteront actives un certains temps, néanmoins, pensez à changer votre configuration dès que possible (cf le Wiki Ubuntu-fr)

Vous trouverez toutes les informations nécessaires à l'utilisation de Medibuntu sur le site officiel : http://www.medibuntu.org .

L'équipe Medibuntu vous souhaite une agréable utilisation de son service .

Jeudi 17 Mai : le packaging debian remonte sur scène

Effraie l'a annoncé, une nouvelle session de cours packaging aura lieu ce jeudi 17 Mai sur #ubuntu-fr-classroom.

Cette session – planifiée depuis longtemps – s'attachera à des cas particuliers d'empaquetage :

  • logiciels en python ;
  • logiciels ne nécessitant pas de compilation ;
  • mise à jour de paquets ;
  • patcher des sources.
Ce sera l'occasion de revenir sur le rôle et la construction du fichier debian/rules – on a eu trop de questions là dessus sur IRC, je n'ai pas dû être très clair ;).

Même si je suis un fan et fervent utilisateur de CDBS, le cours tiendra compte des utilisateurs de debhelper only – mais franchement, CDBS c'est le bien.

A jeudi sur IRC !