Aller au contenu | Aller au menu | Aller à la recherche


Mot-clé - GNU-Linux

Fil des billets - Fil des commentaires

vendredi 17 mai 2013

Quand l'espace de stockage interne de son périphérique mobile sous CyanogenMod n'est pas suffisant

Ceci est juste une note qui peut en intéresser quelques-uns. J'ai eu sur le Galaxy S2 (i9100P) de ma femme et sur le mien (i9000) qui sont sous CyanogenMod 10.1, des problèmes d'espace de stockage interne, sans pour autant avoir sur mes 2 Go la totalité prise par les applications ou leur données.

En utilisant une application telle que DiskUsage (https://play.google.com/store/apps/details?id=com.google.android.diskusage&hl=fr) on se rend compte qu'effectivement il n'y a plus de place, mais ce qu'il y a d'étonnant c'est que j'avais 2 Go de rempli en ayant que 400 Mo en tout d'utiliser d'après les indications de stockage fournies par CyanogenMod.

Ce qu'il faut savoir c'est qu'en fin de compte dans le répertoire qui contient les applications : /data/ , il y a un répertoire log qui empiète sur cet espace interne et peut, s'il se remplit aboutir au problème précédemment cité.

L'astuce consiste donc à vider le contenu de ce répertoire /data/log/ soit en ligne de commande via le terminal

# rm -Rf /data/log/*

Soit via une selection de ces mêmes fichiers par ES Explorer en mode root, puis les supprimer !

Il paraitrait que la non purge de ces logs via CyanogenMod soit un bug. En attendant, ça permet de garder son appareil fonctionnel, car avec ce soucis, les appareils n'étaient pas très stable.

samedi 13 avril 2013

Urban Lightscape : Un logiciel de retouche de photo dédié au traitement de la lumière

Présentation

Parfois on tombe sur des outils très simples certes, mais aussi très efficaces ! C'est le cas d'Urban Lightscape ! Issu de mon Shaarli : http://www.slobberbone.net/shaarli/?searchtags=editor

Urban Lightscape

Son travail jouer sur les effets de lumière. Point bar ! Si vous voulez faire d'autres choses, il faut aller voir du coté de pinta, gimp ou encore photofiltre lx.

Je vous propose de l'installer sous Fedora avec intégration dans GNOME !

Prérequis

# yum install wxGTK-devel boost-devel

Téléchargement : 

Se rendre ici : http://www.indii.org/software/urbanlightscape/download ou

$ wget http://www.indii.org/files/urbanlightscape/releases/urbanlightscape-latest.tar.gz

Compilation

$ tar xvfz urbanlightscape-1.2.3.tar.gz

$ cd urbanlightscape-1.2.3/

$ ./configure --disable-assert CXXFLAGS="-O3 -g3"

$ make

$ cd ..

$ mv urbanlightscape-1.2.3/ /opt/

# chown -Rf user:user /opt/urbanlightscape*

Votre logiciel est compilé et placé dans /opt/ un répertoire pour ces logiciels n'ayant pas de rpm pour les installé là où il faut :) !

Intégration Gnome Shell

Nous allons créer le fichier urbanlightscape.desktop dans /usr/share/appplications/ et y copier ce qui suit.

# vi /usr/share/applications/urbanlightscape.desktop

[Desktop Entry]
Version=1.2.3
Type=Application
Name=Urban Lightscape
GenericName=Image Light Editor
Comment=For photographers who love light
Exec=/opt/urbanlightscape-1.2.3/urbanlightscape
Icon=urbanlightscape
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
StartupNotify=false
MimeType=image/bmp;image/g3fax;image/gif;image/x-fits;image/x-pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;

Une fois fais, il reste à placer une icône issue du site :

# cd /usr/share/icons/

# wget http://www.indii.org/images/urbanlightscape_48.png

# mv urbanlightscape_48.png urbanlightscape.png

Et voilà, le tour est joué !

À lire également :

mardi 26 mars 2013

Installer Office 2010 sous Fedora/CentOS

Contexte

Oui, je sais, il y a LibreOffice ou OpenOffice ou plein d'autres alternatives libres et qui fonctionnent tout aussi bien sinon mieux que ça ...

Maintenant, parfois, on a pas toujours le choix (en entreprise) et même s'il faudrait tout faire pour convaincre tout le monde que le bon choix c'est celui de choisir du libre pour la suite bureautique, le combat est long, douloureux et pas gagner d'avance. Donc en attendant, il faut une période de cesser le feu ...

Ceci étant dit, voici comment pouvoir bénéficier de la suite Office de Microsoft sous Fedora/CentOS grâce à Wine et Playonlinux.

Installation

Installons Playonlinux

# yum install http://rpm.playonlinux.com/playonlinux-yum-4-1.noarch.rpm

# yum install playonlinux

Installation d'Office

Très simple, il suffit de lancer Playonlinux, puis de ce rendre dans le menu "Bureautique"

playonlinux bureautique

On sélectionne la suite Office dans la version que l'on dispose et on suit ce qui est indiqué ! C'est du cliclic ! Merci Playonlinux !

Après pas mal de téléchargement en tous genre, vous devriez pouvoir pointer un CDROM d'Office ou une fichier setup.exe d'une iso montée ou décompressée dans un répertoire.playonlinux office

En ce qui me concerne j'ai fais l'installation avec Office 2010, bah oui ni plus vieux, ni plus récent car cette bouse intersidérale n'est compatible qu'avec elle-même, tout le monde sait qu'ouvrir un document word version xxxx avec une version xxxy est suicidaire ! Donc, comme au taff c'est du 2010, on va jouer au gentil soldat ...

On cliclic, on rentre la clé ou non selon le cas ;), ce qui est formidable, c'est que ça ne vous empêche pas de l'utiliser ... bref.

Office 2010Configuration

Une fois l'installation faites, Playonlinux va vous coller 3 beaux raccourcis sur votre bureau. Avec Gnome 3, ca va pas nous aider à grand chose ...

Rangeons tout ça ! (pensez à changer {monuser} par votre login)

# mv /home/{monuser}/Bureau/Microsoft\ *.desktop /usr/share/applications/

Ensuite ajoutons de quoi ranger ces applications dans Bureautique et permettre de les définir comme applications par défaut pour les extensions de fichier qui vont bien. Je mets à disposition l'ensemble du fichier ".desktop", comme ça si Word, Excel et PowerPoint ne figurent pas dans la liste des applications, vous n'aurez qu'à remplacer par ce qui suit.

Word

[Desktop Entry]
Encoding=UTF-8
Name=Microsoft Word 2010
Comment=PlayOnLinux
Type=Application
Exec=/usr/share/playonlinux/playonlinux --run "Microsoft Word 2010" %F
Icon=/home/{monuser}/.PlayOnLinux//icones/full_size/Microsoft Word 2010
Name[fr_FR]=Microsoft Word 2010
StartupWMClass=WINWORD.EXE
Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Wordprocessors;
MimeType=application/msword;application/vnd.ms-word;application/x-doc;application/x-hwp;application/rtf;text/rtf;application/vnd.wordperfect;application/wordperfect;application/vnd.lotus-wordpro;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;

Excel

[Desktop Entry]
Encoding=UTF-8
Name=Microsoft Excel 2010
Comment=PlayOnLinux
Type=Application
Exec=/usr/share/playonlinux/playonlinux --run "Microsoft Excel 2010" %F
Icon=/home/{monuser}/.PlayOnLinux//icones/full_size/Microsoft Excel 2010
Name[fr_FR]=Microsoft Excel 2010
StartupWMClass=EXCEL.EXE
Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Wordprocessors;
MimeType=application/msexcel;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroenabled.12;application/vnd.ms-excel.sheet.binary.macroenabled.12;text/csv;application/x-dbf;text/spreadsheet;

PowerPoint

[Desktop Entry]
Encoding=UTF-8
Name=Microsoft Powerpoint 2010
Comment=PlayOnLinux
Type=Application
Exec=/usr/share/playonlinux/playonlinux --run "Microsoft Powerpoint 2010" %F
Icon=/home/{monuser}/.PlayOnLinux//icones/full_size/Microsoft Powerpoint 2010
Name[fr_FR]=Microsoft Powerpoint 2010
StartupWMClass=POWERPNT.EXE
Categories=Office;X-Red-Hat-Base;X-SuSE-Core-Office;X-MandrivaLinux-Office-Presentations;
MimeType=application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroenabled.12;

Et puis le reste, je passe, vous avez compris le principe, je fais déjà l'effort d'avoir installé ces 3 là car je n'ai pas vraiment le choix, mais OneNote, Access ou InfoPath je ne veux pas en entendre parler (ni même d'Outlook !).

menu officeouvrir avec office

Et voilà le travail, au moins c'est intégré à votre environnement comme une application "native" \o/ :/ :~ ...

À lire également :

Quand VMware Workstation cherche les sources du kernel ...

Votre VMware Workstation se lance et vous demande le chemin des source de votre kernel, et à chaque mise à jour du noyau, ça sera le cas !

Que faire pour qu'il retrouve ces petits ? soit utiliser une des nombreuses alternatives libres (^^), soit à chaque fois exécuter ce qui suit :

# cp /usr/include/linux/version.h /lib/modules/maversiondemondernierkernel.fc17.x86_64/build/include/linux/

vmware kernel sourceVoilà, mémo à 2 balles, mais j'en avais ras le bol de rechercher dans l'historique de mon terminal !

À lire également :

mercredi 20 mars 2013

Monter un partage NFS sous CentOS/Fedora

Aujourd'hui, une petite note permettant de monter un partage NFS. Ca sert toujours de garder ça dans un coin ;) !

Prérequis

Installation du client nfs :

# yum install nfs-utils nfs-utils-lib

Démarrage des services :

# service rpcbind start
# service nfs start

On s'assure de les lancer au démarrage de notre machine :

# chkconfig rpcbind on

# chkconfig nfs on

Vérifions le bon démarrage des services avec :

# netstat -nlp

Configuration

Ajouter dans /etc/fstab :

ip_du_serveur:/data/mon_rep_nfs  /mnt/mon_rep_nfs   nfs      rw,sync,hard,nointr,_netdev  0     0

Voici quelques explication (Merci à penthium2 ;) ) :

  • L’option rw indique que le système de fichier à monter est accessible en lecture et écriture
  • L’option sync indique que le système de fichier à monter est synchrone
  • L’option hard indique que le s'il y a un problème d'accès au partage NFS, alors la requête est ré-exécutée en boucle
  • L’option nointr indique qu'in signal peut interrompre les opérations sur le montage (si hard, éviter intr qui pourrait entrainer une corruption des données
  • L’option _netdev indique que le système de fichier à monter est un système de fichiers distant et doit donc être monté une fois que le réseau est actif
  • En savoir plus : http://linux.die.net/man/5/nfs

Ensuite on recharge le fichier de montage :

# mount -a

Nous voilà avec notre client configuré !

À lire également :

lundi 18 mars 2013

check_file_content : Plugin Nagios tout terrain pour consulter le contenu d'un fichier

Présentation

Ce projet est un projet sous licence GPL v2. Cette commande est un plugin pour Nagios 3.x, développé en PERL et oui, on prend les mêmes et on recommence ;) )

Son objectif est de permettre de consulter un fichier local ou sur le réseau et de retourner des alertes selon la présence ou non d'une suite de mots passés en paramètre. Dans un premier temps, le plugin ne prend en compte que le protocol samba, mais ça ne devrait pas être compliqué d'en intégrer d'autres.

Ce plugin permet de :

  • Retourner le nombre d'occurrences d'un mot ou d'une expression contenue dans un fichiers local ou distant.Des alertes peuvent être levées si le nombre d'occurrences est inclue un minimum de fois ou à l'inverse s'il est exclu du fichier (ou présent au maximum n fois). Les limites étant définies par les seuils critique et warning passés en paramètres

Pour le reste, je vous laisse parcourir le fichier, tout doit être dedans ;)  et assez explicite ! Sinon, vous savez où me trouver ;)

Installation

Vous l'aurez compris, pour l'utiliser, il suffit d'un serveur Nagios (Installer Nagios sur CentOS sans RPM) sur lequel vous aurez installé les packages suivant :

# yum install perl perl-Filesys-SmbClient

Une fois fais, il ne vous reste qu'à placer check_file_content.pl dans le répertoire libexec de votre arborescence Nagios :

# chmod +x check_file_content.pl

Et voilà, le tour est joué !

$ perl check_file_content.pl --help

Check_file_content for Nagios, version 1.0
GPL licence, (c)2013 Slobberbone

Site http://www.slobberbone.net

Usage: check_file_content.pl -f <file> -P <protocol> [-u <user> -p <password> -d <domain>] -s <"search_expression"> -t <check_type> [-w <warn_level> -c <crit_level>] -V
-h, --help
print this help message
-f, --filepath=PATHTOFILENAME
full path to file to analyze
-P, --protocol=PROTOCOL
protocol used to acess file :
LOCAL for local file (default),
SMB for CIFS file
-u, --user=USER
user to login
-p, --password=PASSWORD
password
-d, --domain=DOMAIN
domain name
-s, --search="EXPRESSION", if empty looks for lines present in the file
expression to search in the specified file
-t, --check_type=TYPE
Type of search :
INCLUDE for include at least the critical option, then the warning option
EXCLUDE for exclude with a maximum of founded expression smaller than critical option
-w, --warn=INTEGER
number that will cause a warning
-c, --critical=INTEGER
number that will cause an error (Default: 1)
-V, --version
prints version number
Note :
The script will return
* With warn and critical options:
OK if we are able to found expression and the count result respect <warn_level> and depending check_type,
WARNING if we are able to found expression and the count result unrespect <warn_level> and depending check_type,
CRITICAL if we are able to found expression and the count result unrespect <crit_level> and depending check_type,
UNKNOWN if we aren't able to read the file

Configuration

Pour que ce plugin soit opérationnel avec notre serveur de supervision Nagios (ou Shinken), il faut ajouter dans le fichier commands.cfg :

# 'check_file_content' command definition
define command{
    command_name    check_file_content
    command_line    $USER1$/check_file_content.pl -f $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -d $ARG5$ -t $ARG6$ -s $ARG7$ -w $ARG8$ -c $ARG9$
    }

Puis, il ne vous reste plus qu'à l'appeler de la manière suivante :

define service{
    use            generic-service
    host_name        my_file_server
    service_description    Include at least 4 instances of "Provider : OK" in mytest.log
    check_command        check_file_content!smb://server/dir/file.log!SMB!user!password!domain!INCLUDE!"Provider : OK"!5!3
    normal_check_interval    10
}

Et voilà, il ne reste plus qu'à modifier ce projet pour vos propres besoins ! Pour ça, direction SourceForge.net !

Si vous avez des questions, les commentaires sont ouverts !

À lire également :

mercredi 13 mars 2013

Authentification SSH par agent sur CentOS/Fedora

Contexte

Lorsque l'on manipule des serveurs sous GNU/Linux, on utilise de manière quasiment exclusive nos si chères et si pratiques/efficaces/magiques commandes en utilisant très souvent le Secure Shell aussi appelé : SSH !

J'ai un serveur qui héberge ce blog entre autre et un NAS chez moi afin d'y entreposer ces indispensables sauvegardes ! Quoi de mieux que de passer par un script pour effectuer les différentes opérations ! Voilà que notre script peut très rapidement avoir besoin de copier un certains nombre de fichiers vers ce NAS via la commande scp par exemple. Tout ceci est parfait mais comment ne pas devoir entrer son mot de passe ou le stocker en clair à l'aide d'une quelconque bidouille ou commande bizarres ? Utiliser un système d'authentification proposé par ce formidable outil !

Prérequis

Tout d'abord vérifions coté serveur que nous disposons bien des paquets nécéssaires et l'autorisation d'authentification par clé RSA :

# yum install openssh-server openssh-client openssh

$ grep RSA /etc/sshd_config RSAAuthentication yes

Que notre serveur SSH est lancé et se lance au démarrage du serveur ( ;) ):

# /etc/init.d/sshd status ou # service sshd status

# chkconfig sshd on

S'il n'est pas démarré, un simple # service sshd start doit suffire !

Fonctionnement

Un schéma vaut mieux qu'une explication :
cle-rsa.pngSource : http://geekfault.org - license Creative Commons

Génération d'une clé RSA ou DSA

Une fois ce qu'il faut d'activé et de configuré côté serveur, nous nous rendons sur le client. C'est sur cette machine que nous ne voulons plus rentrer ce mot de passe si long et compliqué :)

Rendez vous dans votre home de l'utilisateur qui voudra se connecter au serveur SSH sans donner de mot de passe mais en utilisant ce système d'authentification.

$ cd

$ ssh-keygen -t rsa

Generating public/private dsa key pair. Enter file in which to save the key (/home/monuser/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/monuser/.ssh/id_rsa. Your public key has been saved in /home/monuser/.ssh/id_rsa.pub. The key fingerprint is: 8f:80:d8:c5:3d:9s:0b:10:66:42:9c:84:45:a1:d0:14 monuser@monserveur

Nos clés se trouvent en théorie dans /home/monuser/.ssh/ avec comme nom id_rsa et id_rsa.pub.

Retenez bien la passphrase renseignée car elle nous servira encore ! Elle sert de base à l’algorithme de génération de la clé privée, donc plus elle est compliquée en combinant des chiffres/lettres/ponctuations majuscules/minuscules, mieux c'est !

Sécurisation de la clé privée

Nous allons mettre la clé privée en lecture seule pour le propriétaire de la clé et aucun droit pour les autres utilisateurs :

$ chmod 400 ~/.ssh/id_rsa

Modifier la passphrase

$ chmod u+w ~/.ssh/id_rsa
$ ssh-keygen -p -f ~/.ssh/id_rsa
$ chmod u-w ~/.ssh/id_rsa

Exporter la clé publique

Comme vu ci-dessus, 2 clés ont été générées ; une privée que l'on ne communique pas et une publique que l'on va transférer sur le serveur SSH :

$ cat .ssh/id_rsa.pub | ssh monuser@monserveur \ "cat - >>~/.ssh/authorized_keys"

Votre mot de passe est demandée, normal, vous effectuez l'opération et ensuite on teste en listant le contenu du répertoire home de monuser :

$ ssh monuser@monserveur ls

Là il nous demande la passphrase et affiche le résultat de la commande ls ! Plus de mot de passe ! ... mais une passphrase ... :(

Automatiser le stockage de la clé privée (passphrase)

Démarrer l'agent

Pour cela nous allons utiliser un agent SSH, c'est lui qui va s'occuper de stocker en mémoire la clé privée :

Pour cela nous allons lancer l'agent, puis un shell supplémentaire avec les variables d'environnement qui l'identifient :

$ ssh-agent /bin/bash

Ajouter une clé

Nous fournissons notre clé privée à l'agent via un simple :

$ ssh-add

Qui nous demande une dernière fois la passphrase et le tour est joué !

Vérifions :

$ ssh monuser@monserveur ls

Nous obtenons le résultat de la commande ls sans avoir rentré quoique ce soit !

Supprimer une clé

$ ssh-add -d ~/.ssh/id_rsa

À lire également :

lundi 25 février 2013

Shaarli - Comment bien gérer ses liens Internet ?

Contexte

Voilà quelque jours que j'ai mis en place un outil génial : Shaarli ! (Je ne vais pas vous faire l'affront de vous expliquer ici ce qu'il faut faire pour l'installer ... tout est sur le site du projet et c'est extrêmement simple !)

Shaarli, c'est exactement l'outil qu'il me manquait pour organiser/partager différents liens que je glane par-ci par-là sur la toile.

En ce qui me concerne, je trouve qu'un lien n'est pas suffisant pour alimenter un billet et pourtant, parfois plusieurs liens sur une thématique peuvent l'être !

Seulement, cela fait souvent du travail en plus pour les mettre en forme et puis c'est doubler les actions : stocker dans ces favoris/oufichiertxtàlarrache puis les coller dans un billet ... c'est bien connu l'informaticien est faignant ... du coup j'avais opté pour Google+ ... C'est à mis chemin entre créer un billet avec tout et un descriptif pour chaque lien et juste mettre une ligne en plus dans monfichiertctàlarrache. Là c'est cool, on colle le lien, le reste est fait tout seul ... Bon, c'est bien, mais ça reste sur et via Google ... et puis lorsqu'il s'agit de rechercher un lien ca devient vite la galère !

C'est la que Shaarli m'est apparu, j'avais déjà dû le voir passer depuis sa création ... mais j'avais pas pris le temps de regarder de plus près !

Présentation

Comme c'est simple, je ne vais pas m'attarder longtemps, juste donner 2-3 petits trucs sur ce que fait cet outils !

Tools

Une fois connecté et authentifié, vous avez accès au menu Tools, c'est via celui-ci que le minimum de configuration peut être fais. C'est aussi en bas de cet écran que vous pourrez glissez dans vos bookmarks/favoris/raccourcis un bouton permettant d'ajouter rapidement et simplement les liens que vous désirez inclure dans votre Shaarli !

Shaarli_-_Tools.pngShaarli_-_Add_link.png

Vues

Une fois vos liens répertoriés, vous avez plusieurs manières de les visionner et de les partager : flux RSS, nuage de Tags, pages de liens ou encore à la façon d'un journal quotidien !

Shaarli_-_Slobberbone_s_Link.pngShaarli_-_Tags.pngShaarli_-_Daily_Links.png

Une démonstration vaut mieux qu'un long discours, voici mon Shaarli accessible depuis ce même blog via le menu en haut : http://www.slobberbone.net/shaarli/

À lire également :

mercredi 9 janvier 2013

Quand rrdtool fait des siennes ... sur CentOS

En souhaitant terminer une installation de Cacti et le coupler à Nagios à l'aide de n2rrd, j'ai dû me préoccuper d'installer des prérequis que sont rrdtool et rrdtool-perl.

Seulement, voilà Un petit yum install rrdtool perl-rrdtool me génère cette erreur :

Loaded plugins: dellsysid, fastestmirror

Loading mirror speeds from cached hostfile

 * base: centos.crazyfrogs.org

 * epel: mir01.syntis.net

 * extras: centos.crazyfrogs.org

 * jpackage-generic: mirror.ibcp.fr

 * jpackage-generic-updates: mirror.ibcp.fr

 * updates: centos.crazyfrogs.org

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package rrdtool-perl.x86_64 0:1.2.27-3.el5 set to be updated

--> Processing Dependency: rrdtool = 1.2.27-3.el5 for package: rrdtool-perl

--> Processing Dependency: librrd.so.2()(64bit) for package: rrdtool-perl

--> Running transaction check

---> Package rrdtool.i386 0:1.2.27-3.el5 set to be updated

---> Package rrdtool-perl.x86_64 0:1.2.27-3.el5 set to be updated

--> Processing Dependency: librrd.so.2()(64bit) for package: rrdtool-perl

--> Finished Dependency Resolution

rrdtool-perl-1.2.27-3.el5.x86_64 from epel has depsolving problems

  --> Missing Dependency: librrd.so.2()(64bit) is needed by package rrdtool-perl-1.2.27-3.el5.x86_64 (epel)

Error: Missing Dependency: librrd.so.2()(64bit) is needed by package rrdtool-perl-1.2.27-3.el5.x86_64 (epel)

Visiblement, déjà installé, il y atout de même un problème ...
En réalité, je mélange ici, le dépôt RPMForge et EPL (pas bien !!!), du coup on désinstalle la version de RPMForge et on installe ceux d'EPEL !
yum remove rrdtool
Puis on relance notre yum install :
yum install rrdtool perl-rrdtool
Et voilà, il y a plus qu'à continuer !

À lire également :

lundi 29 octobre 2012

gSharkDown - un client GTK du site de musique en ligne GrooveShark

Petit tour d'horizon des plateformes de musique en streaming

Depuis un moment je n'utilisais plus Spotify, tout simplement parce qu'il faut obligatoirement un compte Facebook ... no comment. Deezer, il faut du flash alors évidemment, ça n'attire pas !

J'avais découvert Myousic.me, il y a  des applications pour smartphones et l'interface est en HTML. Jusque là tout va bien. Cependant, évidemment on veut toujours plus et une application pour GNU/Linux-Fedora ou une interface plus complète manque (à mon goût).

myousicme

J'ai redécouvert Grooveshark interface sympa, j'ai trouvé les quelques morceaux que je cherchais, impeccable.

grooveshark

Cependant, ne demandez pas pourquoi, j'avais envie d'avoir une application cliente plutôt que le navigateur. En cherchant rapidement je suis tombé sur gSharkDown !

En plus de gérer ses playlist, tout comme on peut le faire en ligne sur le site, ce logiciel permet le téléchargement des pistes au format mp3. Peut mieux faire pour le format de stockage, j'en conviens, mais je n'ai qu'à acheter le CD et l'extraire en FLAC !

gSharkDown-download

Bref un logiciel sympa, qui vaut le coup de connaitre !

Installation sous Fedora

# yum install python-configobj

# wget https://bitbucket.org/vkolev/gsharkdown/downloads/gsharkdown-0.7.0-2.noarch.rpm

# yum localinstall gsharkdown-0.7.0-2.noarch.rpm

Le tour est joué !

gSharkDownLe petit plus, gSharkDown se met dans la barre de notification, très pratique pour gérer vos lectures :) !

À lire également :

vendredi 26 octobre 2012

Mise à jour d'ownCloud depuis mon ReadyNas Ultra 4

Version française

Note avant toute migration d'ownCloud

Je ne saurai vous conseiller de faire des sauvegardes à la fois régulièrement mais aussi avant chaque mise à jour ! De plus, il est conseillé de monter de version dans le dernier patch d'ownCloud avant d'upgrader à la version majeur ou mineur du dessus !

Vous l'aurez deviné, j'ai donc migré en 2 étapes, 2 fois la même manipulation d'affilé vu que le plugin ReadyNas que je cite dans ce billet : OwnCloud - Partage de fichiers est en version 4.0.4.

Migration d'ownCloud pour ReadyNas basé sur l'add-on de ReadyNasXtras

Connectez-vous en SSH à votre ReadyNas, si besoin vous pouvez utiliser ce plugin : Enable SSH

Téléchargement et installation

#!/bin/bash

cd /tmp
rm -Rf owncloud*.*
#wget http://mirrors.owncloud.org/releases/owncloud-latest.tar.bz2
wget http://mirrors.owncloud.org/releases/owncloud-4.5.5.tar.bz2
#rm -Rf /usr/share/owncloud_*
mv /usr/share/owncloud/ /usr/share/owncloud_save
#tar -xjf owncloud-latest.tar.bz2
tar -xjf owncloud*.bz2
mv owncloud /usr/share/
chown -R admin:admin /usr/share/owncloud/
cd /usr/share/owncloud/
ln -s /c/.owncloud/data/ data
cp -R ../owncloud_save/config/ ./
cp -R ../owncloud_save/.htaccess ./
cp -Rn ../owncloud_save/apps/ ./
chown -R admin:admin /usr/share/owncloud/
cd /etc/frontview/
apache-ssl -f /etc/frontview/apache/httpd.conf -k restart

Explication

Bon, je vous dois qd même une petite explication, une fois le fichier téléchargé, on sauvegarde l'ancienne instance d'ownCloud afin d'un de sécuriser l'opération et surtout parce qu’il y a des fichiers de configuration que l'on souhaite récupérer :

3 répertoires et 1 fichier:

  • config
  • data (qui se trouve être un lien symbolique vers /c/.owncloud/data, car me demandez pas pourquoi, mais /c/ est un autre point de montage ayant le plus d'espace ! pourquoi un /c/ et non /home ... ??? merci Netgear !!!)
  • .htaccess
  • apps (contient les plugins éventuellement ajoutés)

Sans ça, vous retrouveriez pas vos petits et surtout, sans le dernier, La planète aurait accès à vos fichiers :D !

Votre nouvelle version est maintenant déployée ! Il ne vous reste plus qu'à vous rendre sur https://mon_ip_ou_mon_dns/owncloud/ et vous connecter !

Migration du client ownCloud en 1.1.1 pour Fedora

Tout d'abord, il faut penser à désactiver ou enlever le dépôt utilisé précédemment :

# vi /etc/yum.repo.d/isv\:ownCloud\:community.repo

...
enabled=1
...

...
enable=0
...

Personnellement, j'ai dû désinstaller owncloud-client et mirall :

# yum remove owncloud-client mirall

Ensuite, même combat que pour la version 1.0.5 du client :

# cd /etc/yum.repos.d/
# wget http://download.opensuse.org/repositories/isv:ownCloud:devel/Fedora_16/isv:ownCloud:devel.repo
# yum install owncloud-client

On se retrouve avec un nouveau dépôt dédié à ce nouveau client ownCloud ... l'histoire ne dit pas comment le repository va évoluer, quid de la prochaine version ?

Pour le client mobile android, une reconfiguration peut être nécessaire après le passage à la 4.5.1 d'ownCloud.

Bilan 4.5.1 d'ownCloud

J'avoue être réellement conquis ! Avec cette mise à jour, les quelques bugs comme la déconnexion qui ne fonctionnait pas sur l’interface web, ou une synchronisation via cette même interface qui était limite. Là on à vraiment l'impression d'un outil plus abouti et toujours si prometteur ! Seule ombre au tableau, l'"Instant Upload" qui fonctionnait bien avant à l'air de vouloir faire des siennes ... à vérifié car le client Android m'indique bien que le fichier à été téléversé ! :) !

Je pense attaquer le reste maintenant que l'installation et la mise à jour sont fiables :) ! J'ai commencé d'ailleurs à utiliser les modules d'édition de fichier texte ou LibreOffice :) C'est très très sympa !

English Version

Notes before ownCloud update

At first, make backup !!!! Daily or weekly, and before update ! On the ownCloud website, it advice to update all patches before upgrade to the new version.

So, has you supppose, I updates in 2 steps with the same way because ReadyNas add-on that I use in this article : OwnCloud - Partage de fichiers is in 4.0.4 version.

OwnCloud update on ReadyNas based on ReadyNasXtras's add-on

Connect with SSH to your ReadyNas, for that you need this plugin : Enable SSH

Download and installation

#!/bin/bash

cd /tmp
rm -Rf owncloud*.*
#wget http://mirrors.owncloud.org/releases/owncloud-latest.tar.bz2
wget http://mirrors.owncloud.org/releases/owncloud-4.5.5.tar.bz2
#rm -Rf /usr/share/owncloud_*
mv /usr/share/owncloud/ /usr/share/owncloud_save
#tar -xjf owncloud-latest.tar.bz2
tar -xjf owncloud*.bz2
mv owncloud /usr/share/
chown -R admin:admin /usr/share/owncloud/
cd /usr/share/owncloud/
ln -s /c/.owncloud/data/ data
cp -R ../owncloud_save/config/ ./
cp -R ../owncloud_save/.htaccess ./
cp -Rn ../owncloud_save/apps/ ./
chown -R admin:admin /usr/share/owncloud/
cd /etc/frontview/
apache-ssl -f /etc/frontview/apache/httpd.conf -k restart

Explanation

So, I give you some explanation, after the download of the last version (maybe, the link is not good and you have to update to link to the version you want, each time), we save the old ownCloud instance to secure our operation ;) and also because there are some configuration files which we want to keep :

3 folders and 1 file :

  • config
  • data (which is a symbolic link to /c/.owncloud/data,I don't know why, but /c/ is an other mounted point with more space (all HDD added in the nas)! Why a /c/ and not an /home directory like under linux... ??? thanks Netgear !!!)
  • .htaccess (for secure access)
  • apps (contains owncloud add-on)

Less that, you lose all you specific configuration ... it would be bad :/

so your new ownCloud version is up to date ! Go to https://my_ip_or_my_dns/owncloud/ and connect you !

Update sync client ownCloud in the 1.1.1 version on Fedora

So you have to disable or remove the old repository :

# vi /etc/yum.repo.d/isv\:ownCloud\:community.repo

...
enabled=1
...

...
enable=0
...

In my case, I have to remove owncloud-client and mirall :

# yum remove owncloud-client mirall

then, same way for install version 1.0.5 of sync-client :

# cd /etc/yum.repos.d/
# wget http://download.opensuse.org/repositories/isv:ownCloud:devel/Fedora_16/isv:ownCloud:devel.repo
# yum install owncloud-client

It works, you have only one last thing : configure it ;) !

for the android client cell, just a new configuration may be necessary when you'll be in 4.5.1 of ownCloud server.

Resume ownCloud 4.5.1

I'm very exited about this program ! And after this last update, many bugs are fix, like this one about the logout on the website ! It seems really a good job and on all sync-client too (InstantUpload works fine on my Android, etc ...)

Have fun !

À lire également :

Note : Installation VMware-Converter Fedora x86_64

Une note très rapide sur l'installation de VMware-Convertor sur Fedora 17, Penser à exécuter les commandes suivantes une fois l'installation effectuée :

mkdir -p /etc/vmware-converter/ssl

touch /etc/vmware-converter/ssl/rui.crt

touch /etc/vmware-converter/ssl/rui.key

C'est tout :) !

À lire également :

mardi 23 octobre 2012

Rotation de vidéo avec Mencoder

Ceci est une note afin de ne pas oublier comment faire la prochaine fois que j'utiliserai ma caméra embarquée pour une rando VTT comme un manche :) !

En effet, j'ai eu la bonne idée de filmer ce que je faisais avec une caméra Oregon. Super, sauf qu'évidemment, je l'ai tourné un quart de trop ! Donc soit je tourne mon écran si je veux regarder le résultat, soit je fais un fichier vidéo retouché pour ne plus avoir à faire fonctionner mon muscle stérno-cléido-mastoïdien, car admettons-le tourner son écran de 90° n'est pas toujours simple ... du coup on préfère tourner la tête !

Après tout ce blabla, et un # yum install mencoder lame lame-libs

Il ne me reste plus qu'à utiliser la commande suivante :

mencoder -ffourcc XVID -oac mp3lame -lavcopts acodec=mp3:abitrate=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800 -vf rotate=2 mon_fichier.avi -o mon_nouveau_fichier.avi

Ici, la "seule" option qui m'interesse se trouve être rotate qui peut prendre 4 valeurs :

0 Rotation de 90 degres sens horaire et flip (par defaut).  
1 Rotation de 90 degres sens horaire   
2 Rotation de 90 degres sens anti horaire   
3 Rotation de 90 degres sens  anti-horaire et flip. 

Et voilà le travail, rien d'extraordinaire, mais ça me permettra de l'avoir sous la main pour la prochaine bourde :) !

À lire également :

lundi 16 juillet 2012

Installation de NagVis sur CentOS

Aujourd'hui, je vous propose d'installer NagVis 1.6 ! Cette procédure suit celle précédemment rédigée : Installation de Nagios dur CentOS

NagVis_accueil

Installation des prérequis

Comme d'habitude, on installe les paquets qui nous manquent, j'avais déjà installer le dépôt de RPMForge, si besoin, voici la procédure : http://wiki.centos.org/AdditionalResources/Repositories/RPMForge/#head-5aabf02717d5b6b12d47edbc5811404998926a1b !

$ su -

# yum install php php-mysql
# yum install graphviz rsync

Et voilà,passons à l'installation de NagVis.

Installation de NagVis

Nagios étant initialement installé dans /usr/local/nagios, nous allons continuer de mettre les autres composants à coté !

# cd /usr/local/
# wget http://downloads.sourceforge.net/project/nagvis/NagVis%201.6/nagvis-1.6.6.tar.gz?r=http%3A%2F%2Fwww.nagvis.org%2Fdownloads&ts=1342001584&use_mirror=kent

Une fois téléchargé, on décompresse l'archive ( NagVis ) :


# tar xvfz nagvis-1.6.6.tar.gz
# mv nagvis-1.6.6 nagvis

Nous nous retrouvons avec Nagvis, prêt à être compilé dans /usr/local/nagvis/ !

Configuration de NagVis

Attention, c'est ici que ça devient extrêmement technique ^^ ! Il faut juste suivre les questions du script en donnant le chemin de Nagios (/usr/local/nagios) et de bien demander de modifier les fichiers de configuration de Nagios ainsi que de modifier la configuration d'Apache.

# cd nagvis
# ./install.sh

Vous devriez avoir un résultat du genre :

| Installation complete                                                                                                                                             |
|                                                                                                                                                                               |
| You can safely remove this source directory.                                                                                                          |
|                                                                                                                                                                               |
| For later update/upgrade you may use this command to have a faster update:                                                    |
| ./install.sh -n /usr/local/nagios -p /usr/local/nagvis -b ndo2db -u apache -g apache -w /etc/httpd/conf.d -a y         |
|                                                                                                                                                                               |
| What to do next?                                                                                                                                                    |
| - Read the documentation                                                                                                                                      |
| - Maybe you want to edit the main configuration file?                                                                                             |
|   Its location is: /usr/local/nagvis/etc/nagvis.ini.php                                                                                                |
| - Configure NagVis via browser                                                                                                                               |
|   <http://localhost/nagvis/config.php>                                                                                                                   |
| - Initial admin credentials:                                                                                                                                      |
|     Username: admin                                                                                                                                               |
|     Password: admin                                                                                                                                                |   

En ce qui me concerne, j'ai dû modifier directement dans le fichier de configuration de NagVis, les infos pour attaquer la base de données de Nagios alimentée par NDO.

# vi /usr/local/nagvis/etc/nagvis.ini.php

Voici les infos que j'ai modifié (retrouvée dans le fichier ndo2db.cfg) :

;statushost=""
; hostname for NDO-db
dbhost="momn_nom_de_serveur"
; portname for NDO-db
;dbport=3306
; database name for NDO-db
;dbname="nagios"
; username for NDO-db
dbuser="nagios"
; password for NDO-db
dbpass="nagios"
; prefix for tables in NDO-db
dbprefix="npc_"
; instance name for tables in NDO-db
;dbinstancename="default"
; maximum delay of the NDO Database in seconds
;maxtimewithoutupdate=180
; path to the cgi-bin of this backend
;htmlcgi="/nagios/cgi-bin"


Voilà, à priori, après avoir paramétré via la page http://localhost/nagvis/config.php (et notamment définir NDO comme plugin BDD), une modification des droits pour l'utilisateur nagios est nécessaire, puis redémarrage d'Apache et c'est bon !

# chown -Rf nagios:nagios /usr/local/nagvis/
# /etc/init.d/httpd restart

J'ai cependant eu un problème, mes tables alimentées par NDO, n'étaient pas confirme à ce qu'attendait NagVis ...

Il suffit donc d'exécuter via la commande $ mysql -u nagios -pnagios sur les tables de ndo :

ALTER TABLE npc_eventhandlers ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_hostchecks ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_hoststatus ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_notifications ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_servicechecks ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_servicestatus ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_statehistory ADD long_output TEXT NOT NULL after output;
ALTER TABLE npc_systemcommands ADD long_output TEXT NOT NULL after output;

Et voilà ! NagVis est fonctionnel !

En ce qui me concerne, j'ai voulu avoir accès à NagVis depuis l'interface de Nagios (modifiée avec le thème Vautour). Pour cela, un peu de php/html de base afin de modifier les fichiers présent dans /usr/local/nagios/share/ et notamment le menu.html ;)

Seul hic, comment utiliser une même authentification ?

Authentification Nagios / NagVis

Via Apache, comme pour Nagios !

# vi /etc/httpd/conf.d/nagvis.cnf

On ajoute ceci :

AuthName "NagVis Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

...

SetEnv REMOTE_USER guest
RequestHeader set Cookie "nagvis_session=1"

On recharge la configuration Apache :

# /etc/init.d/httpd reload

Et le tour est joué ! (par défaut on indique que tout utilisateur utilise le login guest, si vous créez l'utilisateur dans NagVis, les droits lui seront alors appliqués !

NagVis_ex1

Aller plus loin ...

Au cas où, on peut ajouter des icônes, des gadgets, des map personnalisées, etc ... Donc voici quelques liens intéressants que je complèterai si besoin :

- Pack d'icônes : http://exchange.nagvis.org/exchange/func-finishdown/9/

À lire également :

mercredi 30 novembre 2011

Migration Fedora 15 à Fedora 16 via preupgrade

fedora-16.jpgVoilà, après quelques semaines, je me décide enfin à passer à Fedora 16 ! Au vu des nouveautés je n'ai pas pu attendre plus longtemps ! (Notamment tout ce qui touche à la virtualisation ;) )

Seulement voilà, quelques petits problèmes sont apparus lors de cette mise à jour ... c'est rare, mais ca arrive !

Voici la procédure à suivre, si après le preupgrade,, vous arrivez sur un écran "Oh no! ..." ou "Oh mince! ...

Changement uid et gid

Tout d'abord il faut éditer 2 fichiers, dans lequel nous allons remplacer les uid de notre (nos) utilisateur(s), le tout avec les droits root :

# vi /etc/passwd
# vi /etc/group

J'ai passé mon uid de 500 à 1000. Rappel pour vi : i pour insérer, /monuser pour rechercher la chaine monuser, [echap]wq pour enregistrer et quitter et [echap]q! pour quitter sans enregistrer.

Ensuite :

# find / -gid 500 -exec chgrp -h 1000 {} \; # find / -uid 500 -exec chown -h 1000 {} \;

Enfin on change le propriétaire de /home/monuser :

# chown -Rf 1000 /home/monuser

Voilà, en théorie, plus de problèmes au niveau des droits ...

Problème avec Gnome

J'ai été contraints de supprimer l'ensemble des extensions :

# yum remove gnome-shell-extension*

Par sécurité, j'ai aussi enlevé le driver propriétaire Nvidia :

# yum remove *nvidia*

Après tout cela, j'avais toujours cette erreur.

# yum reinstall gnome-shell

Et voilà, je peux enfin me connecter !
Fedora 16 me voilà !

jeudi 20 octobre 2011

Quand MySQL WorkBench cherche ses tables ...

MySQL WorkBenchDepuis hier, je me suis rendu compte que MySQL Workbench n'arrivait plus à lister les tables de mes schémas MySQL.

Dès que je voulais afficher les tables, "Fetching" apparaissait de manière interminable et systématique ... Serait-ce parce que le paquet fourni par Fedora est corrompu ???

# yum reinstall mysql-workbench ne change rien ...

Je passe alors par le dépôt de Remi, mais rien n'y fait ... Cela doit alors provenir de mes données ... seulement voilà, avec un bon vieux MySQL Query, cela fonctionne ... Il m'aura fallu chercher 2 secondes pour tomber sur cet incident ouvert chez MySQL, lire quelques réponses et tester ce qui suit :

$ mysql_upgrade -u myuser -pmypassword -P myport -h myhost

Je relance MySQL WorkBench et ... tadaaa ! Voilà mes tables !!!

Je pensais que partager cette astuce pourrait servir ou me servir à nouveau ;) !

À lire également :

mardi 18 octobre 2011

Domotique/Multimedia - Samsung Galaxy Tab 7" sous Android 2.3. fournie par Samsung

Bonjour à tous !

Comme je l'avais déjà expliqué lors de ce billet : Samsung Galaxy Tab et Heimdall, ma Samsung Galaxy Tab a reçu CyanogenMod, il y a un moment en version beta, depuis, voici la version 2.3.3 où visiblement tout est fonctionnel ! Je repasse donc à une version fournie par Samsung, il paraitrait que cette dernière venue est prometteuse ... à tester donc ! Tester, certes, mais toujours depuis ma Fedora et non via Odin sous Windows ...

Pour rappel, il vous suffit de décompresser le fichier disponible à l'adresse suivante : http://file.mixturecloud.com/download=PMWw2Q.

Une fois fait, vous n'avez plus qu'à respecter ce qui figure sur l'image suivante (rappel : $ heimdall-frontend ) :

Heimdall

Une fois terminé, la tablette doit redémarrer toute seule, si ce n'est pas le cas, au bout de quelques minutes, faites-le manuellement en appuyant longuement sur le bouton "power".

Il faut redémarrer en mode recovery ("power" + "volume up"), faire un wipe (restore default) puis il faut redémarrer la tablette à nouveau depuis le menu du recovery (bouton "home" = OK).

Et voilà, vous avez une tablette toute neuve, sans surcouche opérateur, mais fournie par Samsung ! Ainsi vous pouvez profiter pleinement de votre tablette et des applications made by Samsung ;) !

Enjoy !

PS : Voici un lien vers les RPMs pour Fedora 15 : http://ingvar.blog.redpill-linpro.com/2011/08/18/fedora-rpms-of-heimdall/

À lire également :

jeudi 22 septembre 2011

CentOS + Tomcat + beaucoup d'ouvertures de fichiers = java.net.SocketException: Too many open files

ExceptionTout est dans le titre !!! Comme d'habitude, c'est plus un pense-bête qu'un véritable article ... si ça peut aider ...

J'ai eu une surprise ce matin sur un serveur client de constater cette erreur :

java.net.SocketException: Too many open files


C'est un serveur sous CentOS 5.5 hébergeant un serveur MySQL, un serveur tomcat avec plusieurs Webapps, un serveur Apache et enfin un serveur propriétaire qui utilise pas mal de socket et a une base de donnée en interne ...

Cocktail génial pour visiblement dépasser la limite par défaut du système s'élevant à 1024 que l'on obtient en faisant un :

ulimit -n

Il y a 2 valeurs possibles à modifier, celle présente dans le fichier /proc/sys/fs/file-max par défaut, celle-ci est assez élevée (plus de 64000). Au besoin il faut modifier la ligne suivante :

...

fs.file-max = 64000

...

Si (comme tel était mon cas) la valeur de ce fichier est plus élevée, il reste à ajouter une entrée au fichier /etc/security/limits.conf :

user         -          nofile          8192

ou

@group         -          nofile          8192

La première colonne désigne l'utilisateur ou le groupe (grâce à @) ou encore n'importe qui grâce à *.
La seconde colonne, on détermine si la limite est soft ou hard, ou les 2 grâce à -.
La troisième colonne indique sur quel paramètre cette configuration s'exécute, ici nofile correspond au paramètre open files retourné par ulimit.
Enfin la dernière colonne indique la valeur.
Dans mon cas, j'ai rajouté :

@tomcat         -          nofile          8192
optitime           -          nofile          8192

Il est indiqué sur la documentation Red Hat de redémarrer le serveur pour que cela prenne effet. La solution peut consister à relancer le ou les services concernés ainsi que les sessions utilisateurs.

Voilà, en espérant que ça puisse aider et surtout m'éviter de rechercher cette information à nouveau ;) !

À lire également :

mercredi 17 août 2011

Création d'un dépôt RPM à base de Fedora

Introduction

Je vais partir du principe que nous allons créer un dépôt RPM pour Fedora 14 et CentOS/RHEL 5 dans /var/www/html/linux/. Voici l'arborescence :

/var/www/html/linux/fedora/14/i386/
/var/www/html/linux/fedora/14/x86_64/
/var/www/html/linux/el5/5/i386/
/var/www/html/linux/el5/5/x86_64/

Chacun des chemins cités ci-dessus est un dépôt. Ainsi, dans ce qui suit on remplacera /path/myrepo par /var/www/html/linux/fedora/14/i386/ puis pour l'ensemble des commandes par /var/www/html/linux/fedora/14/x86_64/ et ainsi de suite pour chacune des architecture des distributions que concerne notre dépôt.

Vos rpm seront donc présents avant la génération de createrepo et repoview ;)
MyRepo

Préparation des chemins contenant les RPM

su -lc 'mkdir -p /var/www/html/linux/fedora/14/i386/'
su -lc 'mkdir -p /var/www/html/linux/fedora/14/x86_64/'
su -lc 'mkdir -p /var/www/html/linux/el5/5/i386/'
su -lc 'mkdir -p /var/www/html/linux/el5/5/x86_64/'


Pour el5, on peut installer des pré-configuration lors de l'installation de l'OS, du coup, $releaseversion n'est pas forcément 5, mais peut être 5Workstation, 5client ou 5Server. Dans ce cas on en profite pour créer des liens symboliques :
su -lc 'ln -s /var/www/html/linux/el5/5/ /var/www/html/linux/el5/5Workstation'
su -lc 'ln -s /var/www/html/linux/el5/5/ /var/www/html/linux/el5/5Client'
su -lc 'ln -s /var/www/html/linux/el5/5/ /var/www/html/linux/el5/5Server
'

Installer un dépôt RPM

Installation d'un serveur web

Tout d'abord commençons par installer un serveur Apache :
su -lc 'yum install httpd'

Configuration du dépôt

Pour configurer notre dépôt, nous allons utiliser l'outil createrepo :
su -lc 'yum install createrepo'

Créons dans /etc/httpd/conf.d/ un fichier de configuration pour notre dépôt dans Apache :
su -lc 'vi /etc/httpd/conf.d/repository.conf'

Voici le contenu du fichier :

<Directory /var/www/html/>
    Options Indexes
    Options Indexes FollowSymLinks
    Order allow, deny
    Allow from all
</Directory>

Création du dépôt

La commande de base pour créer une dépôt est createrepo :
createrepo /path/monrepo

Le plus souvent, on crée un dépôt en générant une base sqlite (cela nous sera utile pour repoview), pour cela, il faut utiliser l'option -d :
createrepo -d  /path/monrepo

L'option -g permet de prendre en compte un groupe de RPM définit dans un fichier comps.xml :
createrepo -d -g /path/comps.xml /path/monrepo

Ainsi, nous pourrons utiliser les commandes yum grouptruc avec notre dépôt !

L'option --unique-md-filenames semble utile, notamment lorsque 'lon a plusieurs mirroir, permet ede donner un nom unique aux metadatas.
L'option --checksum sha est indispensable pour le dépôt EL-5 (la valeur par défaut, sha256, est ok pour fedora >= 11 et EL >= 6)

Donc au final on se retrouve avec :

createrepo --unique-md-filenames --checksum sha -d -g /path/comps.xml /path/monrepo

Génération de repoview

Un dépôt, c'est bien, de quoi le parcourir avec un design sympa, c'est mieux !

Installation de Repoview

su -lc 'yum install repoview'

Utiliser l'option -d sur la commande createrepo afin de créer la base sqlite qui sera utilisée par repoview.

Création des page html via repoview

Ensuite, c'est très simple on demande à repoview de créer les pages qui permettront de naviguer dans notre dépôt !
repoview /path/monrepo

Pour terminer, assurons-nous de disposer des droits pour l'utilisateur apache :
su -lc 'chmod o+rX /path/monrepo'

Exemple de fichier Comps.xml afin de créer des groupes de rpm

Si vous désirez installer l'ensemble de vos rpm dans votre repo, ou un sous-ensemble spécifique, vous devrez créer un fichier de groupes : comps.xml. Pour notre exemple, si nous voulions que myrpm.noarch.rpm soit installé par défaut et mybinrpm.i386.rpm soit une option, nous créerions un fichier de comps.xml comme ceci :

    <comps>
    <!--  <meta> -->
    <!-- Meta information will go here eventually -->
    <!--  </meta> -->
      <group>
        <id>mygroup</id>
        <name>MyGroup</name>
        <default>true</default>
        <description>Default RPMS from MyRepo</description>
        <uservisible>true</uservisible>
        <packagelist>
          <packagereq type="default">myrpm</packagereq>
          <packagereq type="optional">mybinrpm</packagereq>
        </packagelist>
      </group>
    </comps>

Pensez à relancer createrepo afin que vos groupes soient accessibles par les personnes ayant votre dépôt de configuré !

Ajout de pages manquantes

Cette opération est effectuée qu'un seule fois à la création de l'arborescence, puis à l'ajout d'un release ou d'une distribution.

Index principal dans /var/www/html/

Notre dépôt est prêt, reste à y ajouter quelques pages et feuilles de style !
su -lc 'vi /var/www/html/index.html
Voici le contenu :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<head>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
        <title>RepoView: MyRpo</title>
        <link href="css/repostyle.css" type="text/css" rel="stylesheet" />
        <meta content="index,follow" name="robots" />
        <link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
    <div id="page">
        <div id="top">
            <h1><span><a href="index.html">My - Packages</a></span></h1>
        </div>
        <p id="prelude"><a href="http://www.opti-time.com/">Site</a> | <a href="index.html">Dépôt</a></p>
        <div id="wrapper">
            <div id="main">
                <div id="content">
                    <h2>Download mirrors</h2>
                    <ul class="pkglist">
                        <li><a href="index.html" class="inpage">http://monurl/linux/</a> - <strong>primary</strong></li>
                    </ul>
                    <h2>Distribution choice</h2>
                    <h3>Fedora - Maintained version</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="linux/fedora/14/index.html" class="inpage">Fedora 14 (Laughlin)</a> -
                                                        repository auto-configuration package : <a href="linux/fedora/14/x86_64/my-repo-fedora-2.0-0.0.fc14.noarch.rpm">My-repository-fc-14.rpm</a>
                        </li>
                    </ul>
                    <h3>Enterprise Linux (RHEL / CentOS / Other clones)</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="linux/el5/5/index.html" class="inpage">Enterprise Linux 5.5</a> -
                            repository auto-configuration package : <a href="linux/el5/5/x86_64/my-repo-el5-2.0-0.0.el5.noarch.rpm">My-repository-el-5.rpm</a>
                        </li>

                    </ul>
                    <h2>Other resources</h2>
                    <ul class="pkglist">
                        <li>
                            <a href="linux/RPM-GPG-KEY-MyRepo.gpg" class="inpage">RPM-GPG-KEY-MyRepo</a>: the GnuPG public key of the key pair used to sign MyRepo's packages
                        </li>
                    </ul>
                </div>
            </div>
        </div>
        <div id="footer">
            <ul id="w3c">
                <li>
                    <a id="vxhtml" href="http://validator.w3.org/check/referer">XHTML 1.1 valide</a>
                </li>
                <li>
                    <a id="vcss" href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2.0 valide</a>
                </li>
            </ul>
            <p>
                by <a href="http://mricon.com/trac/wiki/Repoview">Repoview</a> | Designed for <a href="http://www.myRepo.org/">MyRepo</a>
            </p>
        </div>
    </div>
</body>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</html>

su -lc 'vi /var/www/html/css/repostyle.css
Voici le contenu :

ul, ul li {
    list-style: none;
    }
a:link, a:visited {
    color: #000;
    text-decoration: underline;
    }
a:hover {
    color: #000;
    text-decoration: none;
    }
.nav {
    text-align: right;
    color: gray;
    font-size: small;
    }
.nactive {
    border-bottom: 1px dotted blue;
    background-color: lavender;
    color: blue;
    font-size: small;
    text-decoration: none;
    }
.ninactive {
    color: gray;
    font-size: small;
    }
.nlink {
    text-decoration: none;
    color: blue;
    font-size: small;
    }
.nlink:hover {
    background-color: lavender;
    border-bottom: 1px dotted blue;
    font-size: small;
    }
.inpage {
    text-decoration: none;
    color: blue;
    }
.inpage:hover {
    background-color: mistyrose;
    color: red;
    border-bottom: 1px dotted red;
    }
.levbar {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 11em;
    height: 100%;
    border-right: 4px dotted gray;
    border-bottom: 4px dotted gray;
    background-color: gainsboro;
    }
.main {
    position: absolute;
    left: 13em;
    width: 75%;
    }
h1,h2,h3,h4,h5 {
    border-bottom: 1px dotted gray;
    border-top: 1px dotted gray;
    background-color: whitesmoke;
    font-weight: normal;
    }
.pagetitle {
    border-top: 1px dotted gray;
    border-bottom: 1px dotted gray;
    padding-top: 5%;
    padding-bottom: 5%;
    margin-top: 5%;
    margin-bottom: 5%;
    text-align: center;
    width: 100%;
    color: gray;
    background-color: white;
    }
dt  {
    font-weight: bold;
    margin-top: 1%;
    }
th  {
    background-color: whitesmoke;
    text-align: left;
    }
.field  {
    background-color: whitesmoke;
    text-align: right;
    }
.levbarlist {
    list-style-type: none;
    padding: 5%;
    border-top: 1px dotted gray;
    border-bottom: 1px dotted gray;
    background-color: whitesmoke;
    }
.pkglist {
    padding-top: 2%;
    padding-bottom: 2%;
    list-style-type: circle;
    }
.letterlist {
    background-color: whitesmoke;
    }
.letterlist a {
    padding-left: 0.2em;
    padding-right: 0.2em;
    }
.footernote {
    text-align: right;
    font-size: small;
    background-color: whitesmoke;
    border-top: 1px dotted gray;
    color: gray;
    }
.repoview {
    text-decoration: none;
    color: gray;
    border-bottom: 1px dotted gray;
    font-size: small;
    }
.repoview:hover {
    background-color: lavender;
    border-bottom: 1px dotted blue;
    color: blue;
    font-size: small;
    }

NB : Ce style est très fortement/probablement inspiré de celui qu'utilise Remi pour ses dépôts !

Index de redirection dans /var/www/html/linux/

su -lc 'vi /var/www/html/linux/index.html'
Voici le contenu :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="refresh" content="0; url=../index.html" />
<title>Repository MyRepo</title>
<meta name="robots" content="noindex,follow" />
<link href="../css/repostyle.css" type="text/css" rel="stylesheet" />
</head>

<body>
<p><a href="../index.html">Packages MyRepo</a></p>
</body>
</html>

Index dans chacun des dépôts

Ici placez cet index autant de fois que de distributions supportée par votre dépôt
su -lc 'vi /var/www/html/linux/fedora/14/index.html'
Voici le contenu :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="content-type" />
    <title>Opti-Time - Fedora 14</title>
    <link href="i386/repoview/layout/repostyle.css" type="text/css" rel="stylesheet" />
    <meta content="index,follow" name="robots" />
    <link rel="shortcut icon" href="../../favicon.ico" />
</head>
<body>
    <div id="page">
        <div id="top">
            <h1><span><a href="../../../index.html">MyRepo- Packages</a></span></h1>
        </div>
        <p id="prelude"><a href="http://www.myrepo.com/">Site</a> | <a href="index.html">Dépôt</a></p>
        <div id="wrapper">
            <div id="main">
                <div id="content">
                        <h2>Fedora 14 (Laughlin)</h2>
                    <h3>MyRepo</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="i386/repoview/index.html" class="inpage">i386</a>
                        </li>
                        <li>
                            <a href="x86_64/repoview/index.html" class="inpage">x86_64</a>
                        </li>
                    </ul>
                    <!--<h3>MyRepo-test</h3>
                    <ul class="pkglist">
                        <li>
                            <a href="test/i386/repoview/index.html" class="inpage">i386</a>
                        </li>
                        <li>
                            <a href="test/x86_64/repoview/index.html" class="inpage">x86_64</a>
                        </li>
                    </ul>-->
                </div>
            </div>
            <div id="sidebar">
                <h2>fedora 14</h2>
                <ul class="levbarlist">
                    <li>
                        <a href="../../../index.html" class="nlink" title="Back to distribution choice">Back to distribution choice</a>
                    </li>
                </ul>
            </div>
        </div>
        <div id="footer">
            <ul id="w3c">
                <li>
                    <a id="vxhtml" href="http://validator.w3.org/check/referer">XHTML 1.1 valide</a>
                </li>
                <li>
                    <a id="vcss" href="http://jigsaw.w3.org/css-validator/check/referer">CSS 2.0 valide</a>
                </li>
            </ul>
            <p>
                by <a href="http://mricon.com/trac/wiki/Repoview">Repoview</a> | Designed for <a href="http://www.myrepo.com/">MyRepo</a>
            </p>
        </div>
    </div>
</body>

<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</html>

NB : changez donc fedora et 14 par el5 et 5 pour CentOS et RHEL.

Terminons par redonner la propriété du répertoire /var/www/html/ à apache :
su -lc 'chown -Rf apache:apache /var/www/html/' Merci Remi !
su -lc 'chmod o+rX /path/monrepo'

Scripts de régénération automatique des dépôts

Tâche que vous allez vous trouvez à faire souvent, voici donc un script pour le dépôt el5.5 (effectué avec les droits root) :

#!/bin/sh

chown -R apache:apache /var/www/html/linux/el5/
createrepo -g ~/comps.xml -d /var/www/html/linux/el5/5/i386/
createrepo -g ~/comps.xml -d /var/www/html/linux/el5/5/x86_64/
repoview /var/www/html/linux/el5/5/i386/
repoview /var/www/html/linux/el5/5/x86_64/
#permet d'avoir le même style que l'index.html
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/el5/5/i386/repoview/layout/
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/el5/5/x86_64/repoview/layout/
/etc/init.d/httpd reload

Et pour Fedora 14 :

#!/bin/sh

chown -R apache:apache /var/www/html/linux/fedora/
createrepo -g ~/comps.xml -d /var/www/html/linux/fedora/14/i386/
createrepo -g ~/comps.xml -d /var/www/html/linux/fedora/14/x86_64/
repoview /var/www/html/linux/fedora/14/i386/
repoview /var/www/html/linux/fedora/14/x86_64/
#permet d'avoir le même style que l'index.html
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/fedora/14/i386/repoview/layout/
cp -f /var/www/html/css/repostyle.css /var/www/html/linux/fedora/14/x86_64/repoview/layout/
/etc/init.d/httpd reload

Génération de la clé GPG et du fichier myrepo.repo

Pour finaliser votre dépôt, il vous faut une clé GPG qui va authentifier vos rpm présents sur le dépôt, je vous invite à lire GnuPG : Signature et Chiffrement afin de créer votre propre clé GPG.
Ensuite, il va falloir ajouter la définition de votre dépôt et la clé GPG à chacun de vos "clients" de votre dépôt.
Voici le fichier qui sera dans /etc/yum.repo.d/
su -lc 'vi /etc/yum.repo.d/myrepo.repo'

[MyRepo]
name=MyRepo Repository for Enterprise Linux $releasever - $basearch
baseurl=http://repository.opti-time.net:81/linux/el5/$releasever/$basearch/
enabled=1
#failovermethod=priority
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MyRepo.gpg

Et comme un exemple est toujours mieux qu'un beau discours, voici le contenu de mon fichier myrepo.spec qui me permet de générer un rpm pour ajouter MyRepo !

Name:           myrepo-repo-el5
Version:        1.0
Release:        0.0%{?dist}
Summary:        This package is the repository of MyRepo

Group:          Applications/ProjectManagement
License:        GPL
URL:            http://www.myrepo.org/linux/
Vendor:        Slobberbone
Source0:        %{name}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:    noarch

%description
Repository RHEL / Centos for MyRepo

%prep

%setup -q

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_sysconfdir}/yum.repos.d/
mkdir -p %{buildroot}%{_sysconfdir}/pki/rpm-gpg/
install -c -m 755  optitime.repo %{buildroot}%{_sysconfdir}/yum.repos.d/
install -c -m 755 RPM-GPG-KEY-Opti-TimeSA.gpg %{buildroot}%{_sysconfdir}/pki/rpm-gpg/

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%{_sysconfdir}/yum.repos.d/optitime.repo
%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-Opti-TimeSA.gpg

%changelog
* Wed  Aug 17 2011 MyRepo <slobberbone@myrepo.org> 1.0-1.1
- initial release

Bien-sur, il faudra en faire un pour Fedora 14, en remplaçant el5 par fc ;)
Il ne faut pas oublier que lorsque vous mettez vos RPM sur le dépôt que ceux-ci soient signés grâce à la commande :
rpmsign --addsign monrpm.rpm

Conclusion

Vous voilà fin prêt ! La technique n'est peut-être pas orthodoxe, mais ça a le mérite de fonctionner ! Comme d'habitude, je vous invite à me laisser des commentaires afin de l'améliorer !

À lire également :

mardi 9 août 2011

Pourquoi la mise à jour vers PHP 5.3 peut génèrer beaucoup de log ?

Hier matin, pour des raisons de compatibilité de version avec un logiciel que je compte installer prochainement pour Communauté-SLA.org, j'ai mis à jour mon serveur et notamment php et son ensemble de module en version 5.3. Le logiciel en question, c'est Openmeetings. J'y reviendrai dans un prochain article.

Analyse des logs

PhpDepuis cette mise à jour de mon serveur dédié chez OVH, hier, j'ai remarqué que mes logs Apache devenaient de plus en plus gros !

Je m'en suis rendu compte grâce à cette commande :  du -sh * | sort -n

Un petit tour du coté de /var/log/httpd : ll /var/log/httpd/

    -rw-rr 1 root root 0 août 8 10:32 access_log
    -rw-rr 1 root root 1049 août 9 09:45 error_log
    -rw-rr 1 root root 284 août 9 00:38 ssl_access_log
    -rw-rr 1 root root 527 août 9 09:45 ssl_error_log
    -rw-rr 1 root root 288 août 9 00:38 ssl_request_log
    -rw-rr 1 root root 3481337 août 9 09:47 www.communaute-sla.org-access_log
    -rw-rr 1 root root 53300401 août 9 09:47 www.communaute-sla.org-error_log
    -rw-rr 1 root root 198900 août 9 09:44 www.ecohumanisemradical.org-access_log
    -rw-rr 1 root root 11434 août 9 08:13 www.ecohumanismeradical.org-error_log
    -rw-rr 1 root root 316073 août 9 09:47 www.slobberbone.net-access_log
    -rw-rr 1 root root 21509 août 9 09:15 www.slobberbone.net-error_log

Ah bah là, on peut constater que ça se remplit vite pour Communauté-SLA.org ... surtout pour un fichier purgé hier ...

tail -f -n 300 /var/log/httpd/www.communaute-sla.org-error.log

Tue Aug 09 09:42:01 2011 error client ip.ip.ip.ip PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /var/www/blablabla.php on line 707

En effet, Pour l'accueil de Communauté-SLA.org, j'utilise la fonction date() pour afficher les différents flux sur l'accueil. Visiblement avec la mise à jour en 5.3 de php, ceci génère cette erreur lorsque le timezone n'est pas spécifié et ce, pour chaque appel de la méthode ...

Modification du php.ini

cp /etc/php.ini /etc/php.ini.save vi /etc/php.ini

;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;;

Date ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Paris"

Modifiez ce qui est en gras, donc dé-commentez la ligne et ajoutez-y votre timezone ! Il ne reste plus qu'à recharger la configuration Apache :

/etc/init.d/httpd reload

Et hop ! résolu !

À lire également :

- page 1 de 2