Billets avec l'étiquette ‘RedHat’

Plus je bosse avec RedHat, plus je préfère Ubuntu/Debian…

15-12-2009 par Horacio Gonzalez
LiB et Ubuntu

Étant un fervant utilisateur d’Ubuntu depuis des années, je me sens beaucoup plus à l’aise sur des distributions de type Debian que sur celles basées sur RedHat. Cependant il m’arrive relativement souvent (surtout ces derniers temps) de devoir m’occuper de serveurs RedHat-like, et à chaque fois je constate encore une fois que je préfère la façon Debian d’administrer le système.

A titre d’exemple, voyons le dernier problème auquel je me suis confronté ce matin. L’opération était de la pure routine, je voulais installer un nouveau paquet sur un serveur. Mais lorsque je lance mon yum install, je me suis heurté à un beau message d’erreur pas explicite de tout :

Loaded plugins: kernel-module
error: no dbpath has been set
error: cannot open Packages database in /%{_dbpath}
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 229, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 84, in main
base.getOptionsConfig(args)
File "/usr/share/yum-cli/cli.py", line 184, in getOptionsConfig
enabled_plugins=self.optparser._splitArg(opts.enableplugins))
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 191, in _getConfig
self._conf = config.readMainConfig(startupconf)
File "/usr/lib/python2.4/site-packages/yum/config.py", line 754, in readMainConfig
yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
File "/usr/lib/python2.4/site-packages/yum/config.py", line 824, in _getsysver
idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

J’ai essayé d’abord la solution classique aux problèmes yum, un bon vieux yum clean all, mais cela n’a rien fait. Les premières recherches sur le net suggéraient que le problème venait de ma base de données des RPM en local, qui serait corrompue, mais la solution proposée ne marchait pas :

rm -rf /var/lib/rpm/__db.00*
rpm --rebuilddb
yum clean all
yum update

Après quelques recherches de plus, j’ai fini par trouver une solution qui marche :

rm /dev/urandom
mknod -m 644 /dev/urandom c 1 9

Et oui, ça marche… mais je ne sais pas pourquoi. Ce qui m’ennuie est donc le côté “magique” de la solution, je n’ai trouvé aucune explication du pourquoi du comment. Ca marche, mais personne ne semble savoir pourquoi, ni d’où vient l’erreur. Et j’ai du mal à comprendre qu’est-ce que /dev/urandom, un pseudo-fichier pour génération de nombres aléatoires, a à voir avec des problèmes de yum.

Définitivement, je préfère mon Ubuntu…