Salut,

Je viens presenter un ptit outil que j'ai développé hier. Au debut je l'ai fait pour moi, mais au final j'ai obtenu des resultats assez interessants et donc je me suis dit, pourquoi ne pas partager 🙂

J'utilise yum depuis que je suis sous FC2. Meme si cet outil est tres pratique, il est tres lent (telecharger les headers quand on veut juste installer un package est tres penible) et parfois ne trouve pas toutes les dependances. Quand cela arrive, je finis souvent sur rpm.pbone.net a chercher moi meme mes packages. Mon idée a donc été d'ecrire une librairie (en python) d'acces a pbone pour simuler le fonctionnement d'outils comme apt ou yum mais se basant sur le moteur de recherche de rpm.pbone.net. L'outil permet donc de faire des operations simple comme, la recherche, l'interrogation, l'installation de packages (avec gestion des dependances) disponibles sur ce site.
L'avantage d'une telle solution sont les temps de reponse. Quand pbone fonctionne correctement, les reponses aux differentes requetes sont quasi immediates.
Par contre hier matin, pbone avait de gros pbs et les temps de reponse de mon outil sont devenu tres tres long (en gros je depends du bon fonctionnement de pbone)
J'ai pas developpé cet outil dans le but de remplacer apt ou yum, mais plutot pour les completer.


L'outil ayant été developpé en une seule journée, il existe encore des limitations et un grand nombre de bugs potentiels.
Voici une liste des limitations actuelles:

LIMITATIONS:
-----------
* Gere uniquement les paquets FC2. Il est possible avec d'autres distrib d'utiliser
toutes les options a part celle d'installation. J'attend encore avant de passer
a FC3.

* L'option installation n'est pas dispo pour les machines avec une architecture 64 bits

* Pas d'upgrade des paquets possible. Uniquement l'installation

* Gestion des dependances reste a travailler (meme si ca a fonctionné sur le peu de tests
que j'ai effectué).

* Vu le tres petit nombre de tests, il est fort possible que le prog plante (sans que ce soit
dangereux pour autant)

Il existe aussi quelques bugs que j'ai identifié mais que je n'ai pas encore corrigés car je les ai jugé pas genants.

Voila, vous pouvez telecharger l'outil à l'adresse suivante:

http://vhalalla.suidzer0.org/libpbone-0.1.tgz

Pour desarchiver:
tar xvfz libpbone-0.1.tgz
rendre libpbone executable si c'est pas le cas.
Vous devez avoir python. Normalement y a pas de pb.

Si vous avez des remarques, des suggestions, des bugs (ca y en a surement un paquet), n'hesitez pas!!

A+


Voici les possibilités de la chose avec des exemples:


1/ Faire une recherche d'un package (l'argument est soit un fichier du package ou le nom precis
du package
Pour l'instant, pas de possibilité d'utiliser des jokers: Le nom du fichier ou du package doit
etre exact

# ./libpbone.py search libzvbi.so.0.3.2
zvbi-0.2.8-3.rhfc2.at.i386.rpm
zvbi-0.2.8-1.1.fc2.fr.i386.rpm
zvbi-0.2.8-1.1.fc2.dag.x86_64.rpm
zvbi-0.2.8-1.1.fc2.dag.i386.rpm
4 result(s) found

2/ Faire une recherche d'un package (l'argument est soit un fichier du package ou le nom precis
du package
Pour l'instant, pas de possibilité d'utiliser des jokers: Le nom du fichier ou du package doit
etre exact


# ./libpbone.py search MagicPoint
MagicPoint-1.10a-8.x86_64.rpm
MagicPoint-1.10a-8.i386.rpm
2 result(s) found

3/ Demander les infos sur un package. L'argument est le nom exact du package. Pour recuperer ce nom, il faut utiliser
l'option search dans un premier temps

# ./libpbone.py info MagicPoint-1.10a-8.i386.rpm
This package provides debug information for package MagicPoint. Debug information is useful when developing applications that use this package or when debugging this package.

4/ Lister les fichiers du package. Encore une fois le nom doit etre exact (utiliser search)

# ./libpbone.py list MagicPoint-1.10a-8.i386.rpm

/usr/X11R6/bin/mgp2ps
/usr/X11R6/bin/mgpembed
/usr/X11R6/bin/mgpnet
/usr/X11R6/bin/xwintoppm
/usr/X11R6/lib/X11/mgp
/usr/X11R6/lib/X11/mgp/default.mgp
...

5/ Installer un package avec gestion automatique des dependances. Encore une fois le nom doit etre exact (utiliser search). Quand il telecharge le meme paquet a des adresses differentes, c'est qu'il a detecté que le lien precedent etait mort, et il en essaye un nouveau.

# ./libpbone.py install MagicPoint-1.10a-8.i386.rpm
---------------------------------------------------------------------------
[ftp://ftp.linux.org.ar/redhat/fedora/core/2/i386/os/Fedora/RPMS/MagicPoint-1.10a-8.i386.rpm]
download MagicPoint-1.10a-8.i386.rpm... Please wait
---------------------------------------------------------------------------
[ftp://ftp.univie.ac.at/systems/linux/fedora/2/i386/os/Fedora/RPMS/MagicPoint-1.10a-8.i386.rpm]
download MagicPoint-1.10a-8.i386.rpm... Please wait
---------------------------------------------------------------------------
check dependencies for MagicPoint-1.10a-8.i386.rpm... please wait
Try to resolv VFlib2-conf-ja dependance...
Will install VFlib2-conf-ja-2.25.6-21.i386.rpm to resolv the dependance
---------------------------------------------------------------------------
[ftp://ftp.linux.org.ar/redhat/fedora/core/2/i386/os/Fedora/RPMS/VFlib2-conf-ja-2.25.6-21.i386.rpm]
download VFlib2-conf-ja-2.25.6-21.i386.rpm... Please wait
---------------------------------------------------------------------------
[ftp://ftp.univie.ac.at/systems/linux/fedora/2/i386/os/Fedora/RPMS/VFlib2-conf-ja-2.25.6-21.i386.rpm]
download VFlib2-conf-ja-2.25.6-21.i386.rpm... Please wait
---------------------------------------------------------------------------
check dependencies for VFlib2-conf-ja-2.25.6-21.i386.rpm... please wait
Try to resolv ttfonts-ja dependance...
Will install ttfonts-ja-1.2-34.noarch.rpm to resolv the dependance
---------------------------------------------------------------------------
[ftp://ftp.linux.org.ar/redhat/fedora/core/2/x86_64/os/Fedora/RPMS/ttfonts-ja-1.2-34.noarch.rpm]
download ttfonts-ja-1.2-34.noarch.rpm... Please wait
---------------------------------------------------------------------------
[ftp://ftp.linux.org.ar/redhat/fedora/core/2/i386/os/Fedora/RPMS/ttfonts-ja-1.2-34.noarch.rpm]
download ttfonts-ja-1.2-34.noarch.rpm... Please wait
---------------------------------------------------------------------------
[ftp://ftp.univie.ac.at/systems/linux/fedora/2/i386/os/Fedora/RPMS/ttfonts-ja-1.2-34.noarch.rpm]
download ttfonts-ja-1.2-34.noarch.rpm... Please wait
---------------------------------------------------------------------------
check dependencies for ttfonts-ja-1.2-34.noarch.rpm... please wait
---------------------------------------------------------------------------
installation of ttfonts-ja-1.2-34.noarch.rpm... please wait
Installation completed
---------------------------------------------------------------------------
---------------------------------------------------------------------------
installation of VFlib2-conf-ja-2.25.6-21.i386.rpm... please wait
Installation completed
---------------------------------------------------------------------------
---------------------------------------------------------------------------
installation of MagicPoint-1.10a-8.i386.rpm... please wait
Installation completed
---------------------------------------------------------------------------


Nettoyer les fichiers temporaires

# ./libpbone.py clean
Allez hop dans la section "telechargement"....
Seulement si tu le veux
  • [supprimé]

pas de pb!! Si je suis motivé (et si j'ai le temps) je vais essayé de l'ameliorer!!
Ct moi qui parlais au dessus 🙂 oublié de me connecter...
Salut!!

Bon meme si ca n'a pas l'air de dechainer les passions, voila la derniere version de mon ptit prog.
Voila les trucs en plus:

-Ajout de la fonctionnalite update. On peut desormais mettre à jour des packages
-Gestion complete des numeros de version dans les phases d'installation et de mise a jour.
-Test si root
-Le telechargement ne risque plus de planter si le programme ne trouve aucun lien valide
-Ajout des affichages de wget (pour la barre de progression)
-Se connecte directement sur le serveur ftp pour voir si le fichier existe plutot
que de tenter de faire un wget dessus (Gain de temps).
-Reorganisation de la liste des packages renvoyes par search (version precedente considerait
que version 0.10 < 0.9.
-Correction de la sortie etrange (avec des sauts de lignes) dans certains cas

Bon pour l'instant il ne propose que des packages pour FC2...

J'ai un peu plus testé cette version qui semble etre plus stable.
Je crois que je suis enfin arrivé a faire ce que je voulais au debut.
Si je passe a FC3 un jour, je rajouterai le support pour cette distrib (j'ai fait ce prog pour moi avant tout)
L'avantage de ce programme, c'est donc la vitesse, mais aussi le fait qu'on ai pas de fichier
avec une liste de depots a gerer (le prog fait tout tout seul en se basant sur le moteur de
recherche de rpm.pbone.net)

Vous pouvez telecharger la derniere version à l'adresse suivante:
http://vhalalla.suidzer0.org/libpbone-0.5.tgz


A+

Voici un exemple d'utilisation de la nouvelle fonctionnalité de mise à jour:
-----------------------------------------------------------------------------

# rpm -q xfsprogs-devel xfsprogs
xfsprogs-devel-2.6.9
xfsprogs-2.6.9


./libpbone.py search xfsprogs-devel
xfsprogs-devel-2.6.9-0_8.rhfc2.at.x86_64.rpm
xfsprogs-devel-2.6.13-1.x86_64.rpm
xfsprogs-devel-2.6.9-0_8.rhfc2.at.i386.rpm
xfsprogs-devel-2.6.13-1.i386.rpm
4 result(s) found


./libpbone.py info xfsprogs-devel-2.6.13-1.i386.rpm
xfsprogs-devel contains the libraries and header files needed to develop XFS filesystem-specific programs. You should install xfsprogs-devel if you want to develop XFS filesystem-specific programs, If you install xfsprogs-devel, you'll also want to install xfsprogs.


# ./libpbone.py update xfsprogs-devel-2.6.13-1.i386.rpm
Searching for an url of xfsprogs-devel-2.6.13-1.i386.rpm... *
---------------------------------------------------------------------------
[ftp://ftp.univie.ac.at/systems/linux/fedora/2/i386/os/Fedora/RPMS/xfsprogs-devel-2.6.13-1.i386.rpm]
download xfsprogs-devel-2.6.13-1.i386.rpm of size 252 ko... Please wait
---------------------------------------------------------------------------

100%[=======================================================================>] 258,170 64.16K/s ETA 00:00

---------------------------------------------------------------------------
check dependencies for xfsprogs-devel-2.6.13-1.i386.rpm... please wait
Try to resolv xfsprogs=2.6.13 dependance...
Will install xfsprogs-2.6.13-1.i386.rpm to resolv the dependance
Searching for an url of xfsprogs-2.6.13-1.i386.rpm... *
---------------------------------------------------------------------------
[ftp://ftp.univie.ac.at/systems/linux/fedora/2/i386/os/Fedora/RPMS/xfsprogs-2.6.13-1.i386.rpm]
download xfsprogs-2.6.13-1.i386.rpm of size 938 ko... Please wait
---------------------------------------------------------------------------

100%[========================================================================>] 960,600 64.40K/s ETA 00:00

---------------------------------------------------------------------------
check dependencies for xfsprogs-2.6.13-1.i386.rpm... please wait
---------------------------------------------------------------------------
Update System with xfsprogs-2.6.13-1.i386.rpm... please wait
Installation completed
---------------------------------------------------------------------------
Update System with xfsprogs-devel-2.6.13-1.i386.rpm... please wait
Installation completed
---------------------------------------------------------------------------

# rpm -q xfsprogs-devel xfsprogs
xfsprogs-devel-2.6.13-1
xfsprogs-2.6.13-1
C'est super ce petit outil!
Merci beaucoup!

Je teste et si je vois quelques chose je te le post ici...
Continue ton travail!

@+ :-D
Vivement que tu passes à Fedora Core 3 !! :-D
Bon pour le coup, voila la meme version avec plein de de bugs de corrigés. J'ai reussi a installer totem avec et il a gerer toutes les dependances sans pb. J'arrive meme a lire tous les divx, ce qui n'etait pas le cas avec la version de totem installée par yum 🙂

http://vhalalla.suidzer0.org/libpbone-0.5a.tgz

A+
Je suis très impressionné par ton travail.
Je ne peux le tester car je suis sous Fedora Core 3... depuis ce week end, elle remplace dignement ma Fc2.

Dis moi, serait ce bien compliqué de modifier le script pour le rendre compatible Fc3?
Merci 🙂

En theorie c'est tres simple. Voila les requetes HTTP que je fais vers le moteur de recherche:

/index.php3?stat=3&search="+query+"&srodzaj=3&dist[]=37&dl=100


query, c'est ce que je recherche
rodzaj -> mode de recherche (ftp, fichier, nom rpm...)
dist[] -> distribution. C'est une liste de valeurs et pour l'instant je n'ai mis que la valeur 37 qui correspond a FC2. En theorie en modifiant cette valeur, on peut gerer n'importe quelle distrib proposer par rpm.pbone.net.

Le pb c'est que rpm.pbone.net n'est pas encore passé a FC3 🙂
Merci mec, c'est exactement le genre de réponse que j'espérais!
Des que pbone se bouge le fion, je teste ton truc 😉
Bonjour,

Idem pour moi qui vient d'arriver dans la communauté.
Je m'incline bien bas très cher.
Bon courage.

:pint:
Et voila... rpm.pbone.net vient de passer a FC3.

La valeur de dist[] utilisée est donc de 43. Pour ceux qui sont motivés pour essayer 🙂
Il faut donc modifier les appels de la fonction postCommand en remplacant le 37 par 43.

Bon par contre je sais pas si c'est encore top au point du coté de pbone. En faisant des recherches directement sur le moteur de recherche, j'ai pas de supers resulats. Par exemple en selectionnant fc3, et "Search for rpms by name" avec comme recherche xawtv, il ne trouve rien... Faut peut etre attendre un peu surement.

A+
En tout cas ça avance, car moi 6h00 après toi j'ai 2 rpm pour xaw tv :-D
Salut,

Effectivement tu as raison. Par contre en cliquant sur les liens, derriere la page est vide: Pas de description, pas de liste de fichiers et surtout pas de liens ftp. Bon ca va surement arriver.

J'ai modifié la valeur pour que le prog soit compatible FC3. J'ai juste changé le 37 en 41, et ca a l'air de marcher pas mal...

Voila donc la chose modifiée FC3:
http://vhalalla.suidzer0.org/libpbone-FC3.tgz

Voila le seul test que j'ai effectué... Ne possedant que FC2, ce n'est pas evident...

J'ai essayé avec xmms qui semble etre deja bien renseigné:

# ./libpbone3.py search xmms
xmms-1.2.10-9.i386.rpm
xmms-1.2.10-9.1.1.fc3.fr.i386.rpm
2 result(s) found

# ./libpbone3.py info xmms-1.2.10-9.1.1.fc3.fr.i386.rpm
Xmms is a multimedia (Ogg Vorbis, CDs) player for the X Window System with an interface similar to Winamp's. Xmms supports playlists and streaming content and has a configurable interface.

lister les fichiers fonctionnent aussi:
# ./libpbone3.py list xmms-1.2.10-9.1.1.fc3.fr.i386.rpm
...

J'ai meme reussi a mettre a jour le xmms de ma FC2:


# ./libpbone3.py update xmms-1.2.10-9.1.1.fc3.fr.i386.rpm
Searching for an url of xmms-1.2.10-9.1.1.fc3.fr.i386.rpm...
---------------------------------------------------------------------------
[ftp://chuck.ucs.indiana.edu/pub/array2/linux/freshrpms/fedora/linux/3/xmms/xmms-1.2.10-9.1.1.fc3.fr.i386.rpm]
download xmms-1.2.10-9.1.1.fc3.fr.i386.rpm of size 1955 ko ... Please wait
---------------------------------------------------------------------------


100%[======================================================>] 2,002,056 60.51K/s ETA 00:00


---------------------------------------------------------------------------
check dependencies for xmms-1.2.10-9.1.1.fc3.fr.i386.rpm... please wait
Try to resolv desktop-file-utils>0.9 dependance...
Will install desktop-file-utils-0.9-2.i386.rpm to resolv the dependance
Searching for an url of desktop-file-utils-0.9-2.i386.rpm...
---------------------------------------------------------------------------

100%[=====================================================>] 110,123 50.97K/s

---------------------------------------------------------------------------
check dependencies for desktop-file-utils-0.9-2.i386.rpm... please wait
---------------------------------------------------------------------------
Update System with desktop-file-utils-0.9-2.i386.rpm... please wait
Installation completed
---------------------------------------------------------------------------
Update System with xmms-1.2.10-9.1.1.fc3.fr.i386.rpm... please wait
Installation completed
---------------------------------------------------------------------------
Je vais ressayé, parce que j'ai essayé vite fait cette nuit à 4h durant un demie heure d'insomnie, et en mettant 43, je chopais surtout du mandrake! 😉
Oui c'etait 41 en fait... J'ai egalement fait ca pendant ma demi heure d'insomnie et tu dois savoir qu'en ces moments la un 1 et un 3 c'est la meme chose 🙂
J'ai un peu travaillé dessus cet apres midi. J'ai corrigé un chtit bug sur la resolution des dependances et j'ai rajouté un fichier de config qui permet de choisir FC2 ou FC3.

le fichier de config est créé lors de la premiere utilisation et se nomme /etc/libpbone. Par defaut il est cree avec le contenu:

OS=FC3

pour gerer les packages de la FC3. On peut remplacer FC3 par FC2 pour gerer les packages de la FC2.

Voila 🙂
http://vhalalla.suidzer0.org/libpbone-0.6.tgz