Installation et utilisation de VMware Server 1.0.1 sur Ubuntu 6.06

En informatique la virtualisation c’est bien réelle. Cette technique permet de faire fonctionner sur une seule machine (OS hôtes) plusieurs systèmes d’exploitations (OS invités ou encore machines virtuelles, VM en anglais) indépendamment les uns des autres, comme si ils fonctionnaient sur des machines physiques différentes. VMware Server est un de ces outils de virtualisation, qui certes n’est pas libre comme le sont QUEMU ou XEN, mais il est gratuit (version Windows et Linux), (il suffit de s’enregistrer pour recevoir par mail un n° de série) à moitié ouvert (la société que le supporte à ouvert son code source à certains partenaires) et surtout, c’est un outils complet et simple à mettre à oeuvre.

A l’échelle de l’entreprise la virtualisation sert surtout à mutualiser les ressources (humaines comme matériels), elle sert aussi les développeurs qui portent des applications sur différentes architectures et à notre échelle elle est très utile pour tester de nouvelles distributions ou libérer définitivement la partition NTFS de nos disques durs, si vous voyez de quoi je parle :)

Principe de fonctionnement : extrait du datasheet VMware Server

vm011.png

L’administration des machine virtuelle (VM) peut être local ou distante via le réseau
Une VM hébergée par VMware Server peut être utilisée en local ou à distance via le réseau (sécurisé avec ssh) au travers de la Console Vmware
Une couche http peut être rajoutée sur le serveur pour l’administration Web

Une VM peut être crée, comme si on installait un OS (boot sur CD, partitionnement, etc…) ou téléchargée prête à l’emploie. Des sites comme http://www.thoughtpolice.co.uk/ ou encore le site de Vmware qui proposent moultes images VMware en libres téléchargement. Il existe aussi l’outils VMware Player qui permet uniquement de lire des VM. Pour l’installation c’est par ici

Utilisation standard :

Cette procédure est valable sur une version 32 bits ou 64 bits de Ubuntu

VMware Server software + console locale avec un accès par console distante (Windows ou linux)

Prés-requis : Installation de certains paquets dont entre autres le serveur OpenSSH et le nécessaire pour la compilation (les dépôts universe et multiverse doivent être actifs)

$ mkdir ~/vmware (création du dossier pour le stockage des VM)
$ sudo -s
$ apt-get install ssh openssh-server
$ apt-get install libx11-6 libx11-dev libxtst6 xlibs-dev xinetd wget
$ apt-get install linux-headers-`uname -r` build-essential

Puis pour une version Ubuntu 32 bits

$ apt-get install gcc binutils-doc cpp-doc make manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.0-doc libc6-dev-amd64 lib64gcc1

Ou pour version Ubuntu 64 bits

Il est à noter que libc6-dev-amd64 ne s’installe que sur une version 32 bits de Ubuntu, ça sert à émuler un 64 bit pour une VM. Si vous installez VMware sur une Ubuntu 64 bits, ce paquet n’est pas nécessaire, de toute façon il n’existe même pas. Il faut également ajouter le paquet ia32-libs pour éviter un bug de génération de certificats SSL (Unable to get the last modification timestamp of the destination file /etc/vmware/ssl/rui.key.), Merci à nico pour l’astuce …

$ apt-get install gcc binutils-doc cpp-doc make manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.0-doc lib64gcc1 ia32-libs

La suite de la procédure est valable sur une version 32 bits ou 64 bits de Ubuntu

Téléchargement de VMware Server

$ cd /tmp
$ wget http://download3.vmware.com/software/vmserver/VMware-server-1.0.1-29996.tar.gz

Installation

$ tar xvfz VMware-server-*.tar.gz
$ cd vmware-server-distrib
$ ./vmware-install.pl

Le script d’installation se déroule, il faut accepter la réponse par défaut à toutes les questions, sauf pour :

In which directory do you want to keep your virtual machine files? [/var/lib/vmware/Virtual Machines] votre_home_directory/vmware (dossier de stockage des VM)
Please enter your 20-character serial number.Type XXXXX-XXXXX-XXXXX-XXXXX or ‘Enter’ to cancel: entrer_ici_le_numero_de_serie_reçu_par_mail puis enter

Creating a new installer database using the tar3 format
Installing the content of the package
In which directory do you want to install the binary files? [/usr/bin] par défaut pressez enter
What is the directory that contains the init directories (rc0.d/ to rc6.d/)? [/etc] par défaut pressez enter
What is the directory that contains the init scripts? [/etc/init.d] par défaut pressez enter
In which directory do you want to install the daemon files? [/usr/sbin] par défaut pressez enter
In which directory do you want to install the library files? [/usr/lib/vmware] par défaut pressez enter
The path « /usr/lib/vmware » does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes] par défaut pressez enter
In which directory do you want to install the daemon files? [/usr/sbin] par défaut pressez enter
In which directory do you want to install the library files? [/usr/lib/vmware] par défaut pressez enter
The path « /usr/lib/vmware » does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes] par défaut pressez enter
In which directory do you want to install the manual files? [/usr/share/man] par défaut pressez enter
In which directory do you want to install the documentation files? [/usr/share/doc/vmware] par défaut pressez enter
The path « /usr/share/doc/vmware » does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes] par défaut pressez enter
The installation of VMware Server 1.0.1 build-29996 for Linux completed successfully. You can decide to remove this software from your system at any time by invoking the following command: « /usr/bin/vmware-uninstall.pl ».
Before running VMware Server for the first time, you need to configure it by invoking the following command: « /usr/bin/vmware-config.pl ». Do you want this program to invoke the command for you now? [yes] par défaut pressez enter
You must read and accept the End User License Agreement to continue.
Press enter to display it. pressez enter
touche q pour quitter
Do you accept? (yes/no) yes
In which directory do you want to install the mime type icons? [/usr/share/icons] par défaut pressez enter
What directory contains your desktop menu entry files? These files have a .desktop file extension. [/usr/share/applications] par défaut pressez enter
In which directory do you want to install the application’s icon? [/usr/share/pixmaps] par défaut pressez enter
None of the pre-built vmmon modules for VMware Server is suitable for your running kernel. Do you want this program to try to build the vmmon module for your system (you need to have a C compiler installed on your system)? [yes] par défaut pressez enter
Do you want networking for your virtual machines? (yes/no/help) [yes] par défaut pressez enter
Do you want to be able to use NAT networking in your virtual machines? (yes/no) [yes] par défaut pressez enter
Do you want this program to probe for an unused private subnet? (yes/no/help) [yes] par défaut pressez enter
Do you wish to configure another NAT network? (yes/no) [no] par défaut pressez enter
Do you want to be able to use host-only networking in your virtual machines? [yes] par défaut pressez enter
Do you want this program to probe for an unused private subnet? (yes/no/help) [yes] par défaut pressez enter
Do you wish to configure another host-only network? (yes/no) [no] par défaut pressez enter
Please specify a port for remote console connections to use [902] par défaut pressez enter
In which directory do you want to keep your virtual machine files? [/var/lib/vmware/Virtual Machines] votre_home_directory/vmware (dossier de stockage des VM)
Please enter your 20-character serial number.
Type XXXXX-XXXXX-XXXXX-XXXXX or ‘Enter’ to cancel: entrer_ici_le_numero_de_serie_reçu_par_mail puis enter
The configuration of VMware Server 1.0.1 build-29996 for Linux for this running kernel completed successfully.

Si tout se déroule correctement :

Le serveur est installé et il tourne déjà en arrière plan. Il se lancera à chaque démarrage de la machine (script /etc/rc2.d/S90vmware)
La console locale est prête à l’emploi dans le menu Outils système

vm02.png

Choisir local host puis Connect

vm03.png

Pour un premier test, on peut télécharger le Browser Appliance proposé par Vmware, c’est une VM Ubuntu light pour un surf sur le web sécurisé. Il faut dézipper le fichier Browser-Appliance-1.0.0.zip dans le dossier ~/vmware, puis dans la console : File / Open / et il faut aller chercher le fichier Browser-Appliance.vmx

vm05.png

Puis un simple startup et c’est partis…

vm04.png

Remarque : Pour chaque VM, il faut installer par la suite le VMware Tools qui sont des outils qui permettent d’optimiser la VM, notamment par rapport aux drivers vidéo, souris, etc…. Pour les installer, il faut, une fois que la VM est démarrée et qu’une session est ouverte dans le menu VM lancer Install Wmware Tools

Le principe sur une console distante est exactement le même à part la connexion du départ, voilà un exemple avec une console installée sur un poste Windows XP :

vmWIN.png

NB : le User Name et le Password doivent correspondre à un compte existant sur la machine serveur (un compte système sur Ubuntu pour ce cas précis)

Pour installer la console distante sur une machine Windows XP, c’est par ici. VMware Server Windows client package. puis Windows VMware Server Console (.exe), c’est du suivant, suivant, …, OK
Pour installer la console distante sur une machine Ubuntu (ou autre Linux), c’est par ici. VMware Server Linux client package. puis Linux VMware Server Console
Pour la création de VM un rapide googelage sortira nombre de tutos et de Howto sur le sujet

Utilisation avancée :

Rajout de l’interface web d’administration sur le serveur. Cette interface permet, depuis un poste du réseau (qui n’a pas de console distante) de gérer le serveur VMware et de télécharger les consoles pour l’exécution des VM. On y accède par l’adresse https://ip_du_serveur:8333

Téléchargement de VMware MUI

$ sudo -s
$ cd /tmp
$ wget http://download3.vmware.com/software/vmserver/VMware-mui-1.0.1-29996.tar.gz

Installation

$ tar xvzf VMware-mui*
$ cd vmware-mui-distrib/
$ ./vmware-install.pl

Le script d’installation se déroule, il faut accepter la réponse par défaut à toutes les questions :

Creating a new installer database using the tar3 format.
You must read and accept the End User License Agreement to continue.
Press enter to display it. presser enter
touche q pour quitter
Do you accept? (yes/no) yes
Installing the content of the package.
In which directory do you want to install the binary files? [/usr/bin] par défaut pressez enter
What is the directory that contains the init directories (rc0.d/ to rc6.d/)? [/etc] par défaut pressez enter
What is the directory that contains the init scripts? [/etc/init.d] par défaut pressez enter
In which directory do you want to install the VMware Management Interface files? [/usr/lib/vmware-mui] par défaut pressez enter
The path « /usr/lib/vmware-mui » does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes] par défaut pressez enter
In which directory would you like to install the documentation files? [/usr/lib/vmware-mui/doc] par défaut pressez enter
The path « /usr/lib/vmware-mui/doc » does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes] par défaut pressez enter
The installation of VMware Management Interface 1.0.1 build-29996 for Linux completed successfully. You can decide to remove this software from your system at any time by invoking the following command: « /usr/bin/vmware-uninstall-mui.pl ».
Before running VMware Management Interface for the first time, you need to configure it by invoking the following command: « /usr/bin/vmware-config-mui.pl ». Do you want this program to invoke the command for you now? [yes] par défaut pressez enter
Configuring httpd.conf to run Apache as: User: www-data and Group: nogroup
Set the number of minutes before a http session times out. (This is the length of time before someone connecting to VMware Management Interface will be logged out) [60] par défaut pressez enter
Generating SSL Server Certificate
Starting httpd.vmware: done
The configuration of VMware Management Interface completed successfully.

Si tout est OK, le mini serveur web qui gère l’interface d’administration est installé et il tourne déjà en arrière plan. Il se lancera à chaque démarrage de la machine (script S91httpd.vmware).

Avec la Dapper 6.06 un bug est recensé avec cette version de VMware MUI, si le mini serveur web n’arrive pas à se lancer et que dans le fichier fichier log /var/log/vmware-mui/error_log apparait le message suivant :

VMWARE PANIC:

NOT_IMPLEMENTED F(4023):707

Il faut dans le script de lancement de httpd.vmware /etc/init.d/httpd.vmware

entre les lignes :
start)

et
vmware_exec « Starting httpd.vmware: » vmware_start_http

Rajouter
if [ ! -d /var/run/vmware/httpd ]
then
echo « Directory: var/run/vmware/httpd Not found. Creating it. »
mkdir /var/run/vmware/httpd

echo « Setting user and group ownership to: User: www-data, Group: nogroup »
chown www-data:nogroup /var/run/vmware/httpd

echo « Setting directory permissions to: RWX—— (700) »
chmod 700 /var/run/vmware/httpd
fi

Voilà brièvement à quoi ça ressemble pour https://localhost:8333

vm06.png

NB : le User Name et le Password doivent correspondre à un compte existant sur la machine server (un compte système sur Ubuntu pour ce cas précis)

vm07.png

Pour les détails de l’utilisation et de l’administration je vous laisse découvrir toutes les possibilités sur le site de Vmware

Ressources : http://pubs.vmware.com/server1/wwhelp/wwhimpl/js/html/wwhelp.htm


Filed under: Ubuntu — Étiquettes : , , , — admin @ 13 octobre 2006 22 h 12 min

UbunTOUS, Ubuntu pour qui ? pour tous !

En googelant de sites en sites je suis tombé par hasard sur sur l’annonce faite sur linuxfr.org de la sortie de la preview d’Ubuntu 5.10 de l’époque. En conclusion de l’annonce on peut lire :

Pour rappel, Ubuntu est une distribution GNU/Linux basée sur Debian et qui est soutenue par le milliardaire sud-africain Mark Shuttleworth et sa société Canonical Ltd. Cette distribution a pour but de proposer un système simple et grand public utilisable sur le bureau de monsieur tout le monde. Les versions se succèdent tous les six mois et sont supportées pendant les 18 mois suivants ce qui assure une certaine pérennité en matière de correction de failles. « Ubuntu » est un ancien mot africain qui signifie « humanité aux autres ». Ubuntu signifie également « Je suis ce que je suis grâce à ce que nous sommes tous ».

Me vient alors cette réflexion sur la cible visée par Ubuntu. Comme le soulignait linuxfr.org à l’époque c’est clairement le grand public (et tant mieux, ça participe au développement du libre), mais pas seulement…

Pour intro, voilà un bref historique de mon aventure GNU/Linux : J’ai commencé à « tater » du linux avec du Redhat 7.0, 7.1 et 7.3 puis du Mandrake 8.2, 9.0, 9.1 et 9.2 je m’y suis vraiment intéressé le jour ou j’ai largué windows pour une Debian 3.x et autre version stable, testing, unstable (les joies des .deb et de l’apt-get). Puis j’ai découvert Ubuntu, une distribution architecturée sur debian, simple d’installation et opérationnelle rapidement (que du bonheur) avec une communauté accueillante et active et à partir de ce moment (hoary) je l’ai plus quitté.

Pour atteindre un niveau de service équivalent à ma Dapper d’aujourd’hui (drivers matériel, multimedia, 3d, etc…) avec une Debian d’hier j’ai du me retrousser les manches, googeler activement et plonger dans l’antre du système pour lui triturer les boyaux. Il faut bien le dire, ça forge le caractère et ça fait acquérir certains automatismes indélébiles comme le travail sous console en root. Pour parler du sudo, j’ai jamais pu m’y faire, le seul et unique sudo que je fait sous Ubuntu, c’est sur un système fraichement installée : sudo passwd root. Bon ça c’est pour l’enecdote … :) on pourrait parler longuement de la politique du sudo …

Quant à la cible de Ubuntu, il ne faut pas oublier que son moteur est Debian et sa carrosserie est Gnome (pas de troll …) et le liant dans tous ça, c’est Canonical via Mark Shuttleworth. Pour continuer la comparaison avec le monde de l’automobile la plupart des gens apprécient chez une voiture son confort d’utilisation, sa sécurité, sont design, sa faible consommation , etc … Certains vont faire du tunning et d’autres moins nombreux vont s’intéresser à la mécanique et mettre les mains dans le cambouis, et puis il y a les pros, le constructeur. Et tous ça à partir de la même voiture à la base. Ceux qui utilisent leur voiture pour ce déplacer d’un point A vers un point B, qui aiment son confort, ne sont pas insensible de temps en temps au tunning, aux couleurs pétantes et aux belles carrosseries. Celui qui pratique le tunning, au début mettra du son dans sa caisse, des jantes larges, des amortisseurs derniers cris et n’est pas insensible aux soupapes, bièles, carter et autre carbu. Peut-être qu’un jour il mettra les mains sous le capots pour voir (et comprendre) ce qui s’y passe. Et tous ce petit monde cohabite sans soucis. Il y a juste des ponts entre ces différentes catégorie de personnes, qui de temps en temps communiquent et partages leurs expériences. Chacun prend chez l’autre, d’abord ce que l’autre veut lui donner puis ce qu’il l’intéresse.

On peut faire le même parallèle avec GNU/Linux (avec un OS propriétaire on ne peut que s’arrêter au tunning) et à Ubuntu en particulier. Quelqu’un qui n’est pas féru (ou ne « connaît pas ») d’informatique en général peut être opérationnel rapidement sous n’importe quel OS s’il est un peut guidé au départ. j’entends par opérationnel, le surf sur le net, les mails, les photos, la vidéo, etc … c’est à dire une utilisation familiale. C’est ça là force de Ubuntu à mon sens. La taille de la communauté et la simplicité d’utilisation au départ pour un débutant font que nombreux s’y essayent car ils savent qu’ils seront guidés, aidés, tutorés et beaucoup l’adoptent définitivement. Puis par la suite quelqu’un de curieux, qui acquière certains automatismes, qui « aime bien » l’informatique, comme il le ferait avec un autre OS, commencera à twiker un peu son système, à utiliser un thème ultra personnalisé, à configurer aux petits oignons son /etc pour une meilleurs sécurité, de meilleurs performances, etc … en un mot du tunning. Et là encore la communauté via le planet, les forums, les blogs, assume pleinement leurs rôles de conseil, soutien et mines d’informations.

Par définition GNU/Linux/Ubuntu, c’est du libre, on est libre de l’utiliser comme on le veut selon ses besoins, son niveau, sa patience, son implication, sa disponibilité, son degrés de passion,… C’est finalement ça la grande force de Ubuntu, c’est que tout le monde peut l’adopter, le débutant qui sera aidé par la communauté, l’amateur éclairé qui participe parfois à la communauté, qui quant à lui trouvera une mine d’informations inépuisable dans le planet, les forum ou les wiki et enfin l’utilisateur expérimenté (pour ne pas dire professionnel) qui fait le coeur de la communauté et participe au développement. Personnellement je me classe dans la catégorie de l’ « amateur éclairé », j’utilise Ubuntu à la « Debian » car Ubuntu m’en donne la possibilité, tous est modulable, même la façon de l’utiliser.

Alors oui Ubuntu est une distribution orientée « home user » ou « entreprise desktop user » et tant mieux, c’est avec des distributions comme ça que de plus en plus de monde utilise GNU/Linux mais rien n’empêche son utilisation à l’ancienne, qui à dit qu’on est obligé d’installer X, d’utiliser le noyau par défaut, les paquets officiels, qui nous empêche de compiler nous-même les applications, le noyau, (/!\ À MANIER AVEC PRÉCAUTIONS /!\) etc… personne car par définition GNU/Linux est à tous le monde. C’est la grande force du libre (sans parler du partage des connaissances, de la politique des formats ou protocoles propriétaires, etc …).

D’ailleurs je pense que les perspectives d’avenir d’Ubuntu prennent en compte tous ces paramètres. Canonical qui est à la base d’Ubuntu commence à multiplier les projets (distribution ouverte, version serveurs, desktop, portabilité) et offres de services, de support. Des constructeurs comme SUN commencent à s’intéresser à Ubuntu. Cette activité commerciale et la fourmilière qui en découle au travers de la grande activité de la « communauté » font à mon sens que Ubuntu a un bel avenir devant lui …

Longue vie à Ubuntu et au planet


Filed under: Ubuntu — Étiquettes : , — admin @ 5 octobre 2006 19 h 11 min

Nouveau sur le planet …

Voila quelques mois que j’ai dotclearisé mes découvertes sous Ubuntu. A l’origine c’était une simple page HTML sur laquelle je notais à la vas-vite mes tips, truc, scripts sous Ubuntu , pour ne pas les oublier et les faire partager à mon entourage (je l’avoue je fais du prosélytisme Ubuntien). L’adresse du blog est http://taltan.free.fr/ http://www.taltan.fr et son titre est Taltan.Blog.Bkp :

Taltan : pour « T’as Le Temps » de coucher noir sur blanc les trouvailles que tu fais en utilisant quotidiennement ce merveilleux système d’exploitation qu’est GNU/Linux/Ubuntu pour les faire partager au plus grand nombre
Blog : pour Mise en ligne claire et rapide, partage simplifié
Bkp : pour Backup, sauvegarde en ligne, avoir toujours sous la main (aux quatre coins du monde) son bloc-notes et pouvoir partager

Voila pourquoi j’ai fait cette demande d’inscription sur le planet.ubuntu-fr.org …


Filed under: Ubuntu — Étiquettes : , — admin @ 28 septembre 2006 19 h 37 min

par2 (Parity Archive Volume Set), vérifier et réparer des archives avec les fichiers .PAR2

Les archives binaires sur Usenet sont complétés par des fichiers de controles qui permettent de recréer une archive corrompue, ce sont les fichiers par2. Le principe est similaire aux technologies RAID, il est possible, à l’aide d’ensemble de fichiers de parité de vérifier l’intégrité de chacun des segments de l’archive, et de les réparer si certains sont corrompus.

Sous Windows QuickPar permet reconstituer le fichier original d’une archive manquante ou abîmée. Le pendant sous Ununtu est par2

1. Avec les dépots universe et multiverse

sudo apt-get install par2

2. Nautilus-script
#!/bin/sh
par2repair -q « $1 » | zenity –text-info –title « PAR2 » –width=500 –height=500

Sources : camboui sur forum.ubuntu-fr.org

3. Réparer une archive


Filed under: Ubuntu — Étiquettes : , , , — admin @ 17 septembre 2006 13 h 38 min

VMplayer et Ubuntu, ralentissements réseaux entre machines virtuelles et hôte

Des problèmes récurrents de ralentissement réseaux (entre machines virtuelles et hôte) apparaissent avec les dernière version de VMware ou VMplayer et les maj du noyau dans Ubuntu Dapper, aprés quelques divagations googlelesque voila donc une petite commande qui va tout remettre en ordre…

ethtool -K eth0 tso off


Filed under: Ubuntu — Étiquettes : , , — admin @ 9 septembre 2006 9 h 47 min

Script de génération automatique de galeries PhpWebGallery

PhpWebGallery est une trés bonne application web PHP (sous licence GPL), qui permet de créer facilement une galerie de photos en ligne. Elle est proposée en standard dans les modules des pages perso de FREE. le hic c’est que la génération de galerie n’est pas automatique et la nomenclature des fichiers est trés précise. Sous Windows on a phpMyVignettes mais rien en GUI sous Linux (à ma connaissance). après quelques recherches j’ai trouvé pas mal de scripts qui réalisent ça mais rien que me colle vraiment, alors j’en ai adapté plusieurs pour avoir un résultat perso :

Script PhpWebGallery_create_v2.0.sh => Génération automatique de galeries au format PhpWebGallery (génération répertoire, miniatures, photos pwg_high, …), à intégrer dans les nautilus script (s’applique aux fichiers selectionnés, ne les modifie pas ), nécessite le paquet Imagemagick et zenity

pwg_script.png

Maj : 17/07/2007

Demande du nom de la galerie
Crée les dossier $GALERY_NAME , $GALERY_NAME/THUMB_DIR et $GALERY_NAME/REAL_DIR dans le dossier courant
Traite les images originales et les copie dans le dossier $GALERY_NAME/THUMB_DIR, 3 choix possibles
Aucun, déplacement de l’original
Augmente la compression en gardant la résolution originale
Réduit la résolution originale sans compression à $REAL_L et $REAL_H
Création des images affichées dans la galerie (à 800×600, variable PICT_L et PICT_H) dans le dossier $GALERY_NAME
Création des miniatures (à 128×96, variable THUMB_L et THUMB_H) dans le dossier $GALERY_NAME/THUMB_DIR

#!/bin/bash
############################################################################################
# Taltan – http://www.taltan.fr #
############################################################################################
# Script PhpWebGallery_create_v2.0.sh #
# Licence : GNU / GPL #
############################################################################################
# Inspiré du script Rep2Thumb.sh de Gothico #
# http://forum.phpwebgallery.net/viewtopic.php?id=5522 #
# Inspiré du script gallery.sh de wiloo #
# http://forum.phpwebgallery.net/viewtopic.php?pid=37829 #
############################################################################################
# Script de création de galerie pour PhpWebGallery #
# A intégrer dans les nautilus script (applicable aux fichiers selectionnés) #
# Création de miniatures #
# Création de photos redimensionnées #
############################################################################################
# Dépendances #
############################################################################################
# – Nécessite le paquet imagemagick : http://doc.ubuntu-fr.org/imagemagick #
# – Nécessite le paquet zenity #
# => sudo apt-get install imagemagick zenity #
############################################################################################
# 02/09/06 – v1.0 – Création #
# 17/09/07 – v2.0 – Ajout différents tests avant exécution #
# – Ajout de l’interface zenity #
############################################################################################
########################################################################
## CONFIGURATION ##
########################################################################
# vérifie si imagemagick est installé
which convert 2>/dev/null
if [ $? != 0 ]
then
zenity –error –title= »Erreur » –text= »La paquet Imagemagick n’est pas installé »
fi
#teste si au moins 1 fichier est selectioné
if [ $# -eq 0 ]; then
zenity –error –title= »Erreur » –text= »Selectionner au moins 1 fichier »
exit 1
fi
# Chemin complet de la galerie à créer
GALLERY_PATH= »`pwd` »
##
# Nom de la galerie
while [ ! « $GALERY_NAME » ] # Réafficher la fenetre tant que l’utilisateur n’a pas fait de choix
do
GALERY_NAME=`zenity –title « Nom de la galerie » –entry –text « Entrer le nom de la galerie »`
if [ $? != 0 ]; then
exit 1
fi
[ $? -ne 0 ] && exit 2 # Annulation
done
# Nom du répertoire à créer pour les miniatures
# (« thumbnail » par défaut dans phpwebgallery)
THUMB_DIR= »thumbnail »
# Nom du répertoire à créer pour les images tailles réelles
# (« pwg_high » par défaut dans phpwebgallery)
REAL_DIR= »pwg_high »
# Préfixe des miniatures
THUMB_PREFIX= »TN- »
## L pour Largeur
## H pour Hauteur
# Taille des photos miniatures
THUMB_L= »128″
THUMB_H= »96″
# Taille des photos à afficher dans phpwebgallery
PICT_L= »800″
PICT_H= »600″
# Taille des photos images tailles réelles dans REAL_DIR
REAL_L= »1280″
REAL_H= »1024″
# Garder les données EXIF ou non
# Avec EXIF => «  »
# Sans EXIF => « -strip »
EXIF= » »
# Choix du traitement pour l’image en taille réelle

while [ ! « $TRAIT_REAL_CHOICE » ] # Réafficher la fenetre tant que l’utilisateur n’a pas fait de choix
do
TRAIT_REAL_CHOICE=`zenity –list –width=500 –height=200 \
–title= »Choisissez le type de traitement pour l’image en taille réelle » \
–column= »N° » –column= »Description » \
a « Aucun, déplacement de l’original » \
b « Augmente la compression en gardant la résolution originale » \
c « Réduit la résolution originale sans compression »`
###### Choix -> Sortie boucle ######
if [ $? != 0 ]; then
exit 1
fi
[ $? -ne 0 ] && exit 2 # Annulation
done

if [ $TRAIT_REAL_CHOICE == « a » ] # Déplacement de l’original dans le répertoire configuré pour les mages tailles réelles
then
trait_real ()
{
cp « $parametre » « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre »
}
fi
if [ $TRAIT_REAL_CHOICE == « b » ] # Augmente la compression en gardant la résolution originale
then
trait_real ()
{
convert -density 72 $EXIF « $GALLERY_PATH/$parametre » « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre »
}
fi
if [ $TRAIT_REAL_CHOICE == « c » ] # Réduit la résolition originale sans compression
then
trait_real ()
{
convert $EXIF -resize $REAL_SIZE « $GALLERY_PATH/$parametre » « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre »
}
fi
########################################################################
## TRAITEMENT DES IMAGES ##
########################################################################
# Création des miniatures dans le répertoire configuré
mkdir « $GALLERY_PATH/$GALERY_NAME »
mkdir « $GALLERY_PATH/$GALERY_NAME/$THUMB_DIR »
mkdir « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR »
numParam=1
erreur=0
nb_param= »$# »
for parametre in « $@ »;
do
# Orientation de la photo
L= »`identify « $parametre » | cut -d\ -f3 | cut -dx -f1` »
H= »`identify « $parametre » | cut -d\ -f3 | cut -dx -f2` »
if [ $L -gt $H ]
then
THUMB_SIZE= »${THUMB_L}x${THUMB_H} »
PICT_SIZE= »${PICT_L}x${PICT_H} »
REAL_SIZE= »${REAL_L}x${REAL_H} »
else
THUMB_SIZE= »${THUMB_H}x${THUMB_L} »
PICT_SIZE= »${PICT_H}x${PICT_L} »
REAL_SIZE= »${REAL_H}x${REAL_L} »
fi
echo « ${numParam}. Traitement de $parametre : …. OK  »
# traitement pour l’image en taille réelle
trait_real $parametre
# Création des images affichées dans la galerie
convert -density 72 $EXIF -resize $PICT_SIZE « $GALLERY_PATH/$GALERY_NAME/$REAL_DIR/$parametre » « $GALLERY_PATH/$GALERY_NAME/$parametre »;
# Création des miniatures dans le répertoire configuré pour les miniature
convert -thumbnail $THUMB_SIZE -density 72 « $GALLERY_PATH/$GALERY_NAME/$parametre » « $GALLERY_PATH/$GALERY_NAME/$THUMB_DIR/$THUMB_PREFIX$parametre »;

let $[numParam += 1]
if [ $numParam -gt « $# » ] ; then
echo « —————————————– »
echo « Fin de traitement : $# fichiers  »
echo « —————————————– »
echo « OK, vous pouvez fermer ! »
fi
done | zenity –text-info –title « PhpWebGallery_create » –width=500 –height=500

NB : _/!\_ Par principe de précaution, je vous conseille de commencer à utiliser un script qui, au final supprime ou modifie un fichier, sur une copie de vos photos, histoire de voir que tout se passe bien 😉


Filed under: Linux — Étiquettes : , , , — admin @ 2 septembre 2006 22 h 06 min
« Newer PostsOlder Posts »