L'installation de XML::Parser nécessite des expatriés.h
Je suis en train de travailler sur un projet qui exige que tous les tiers (lire: CPAN) modules perl pour être installé dans un perforce référentiel, ainsi que tout code qui dépend d'eux peut être exécuté avec succès sans que personne d'autre avoir besoin de les installer manuellement. J'ai couru dans un problème mais lorsque j'essaie d'installer XML::Parser. J'utilise cpanminus pour installer mes modules CPAN, alors j'ai couru cpanm -L . XML::Parser
dans le répertoire souhaité (ce qui a travaillé auparavant avec d'autres modules) et a obtenu l'erreur:
Expat.xs:12:19: error: expat.h: No such file or directory
Je suis habitué à utiliser Ubuntu et apt-get, mais au travail je dois utiliser RedHat et je ne suis pas sûr de savoir comment installer des expatriés dans un répertoire local. J'ai couru yum search expat
et a obtenu
expat.i386 : A library for parsing XML.
expat.x86_64 : A library for parsing XML.
J'ai donc essayé yum install --installroot=. expat.i386
et a obtenu les erreurs suivantes:
Loaded plugins: rhnplugin, security
error: cannot open Packages index using db3 - No such file or directory (2)
error: cannot open Packages database in ./var/lib/rpm
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 309, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 157, in main
base.getOptionsConfig(args)
File "/usr/share/yum-cli/cli.py", line 187, in getOptionsConfig
self.conf
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 665, in <lambda>
conf = property(fget=lambda self: self._getConfig(),
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 240, in _getConfig
self._conf = config.readMainConfig(startupconf)
File "/usr/lib/python2.4/site-packages/yum/config.py", line 804, in readMainConfig
yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
File "/usr/lib/python2.4/site-packages/yum/config.py", line 877, in _getsysver
idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed
Ce que je fais mal? Aussi, une fois que je ne reçois expatrié installé, je ne suis pas sûr de savoir comment je dirais cpanm où le trouver.
OriginalL'auteur Lorkenpeist | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Je vois un couple de choses qui pourraient vous aider à obtenir sur la bonne voie. Tout d'abord, le paquet que vous voulez est appelé
expat-devel
. Aussi, je pense que vous avez besoin pour fournir un chemin d'accès absolu à l' --installroot option, et vous n'avez probablement pas besoin pour offrir le paquet d'extension pour yum, sauf si cela est pertinent, à la façon dont vous la construction de ces modules (c'est à dire, vous ne pouvez généralement faireyum install expat-devel
).Aussi, il semble que quelque chose peut-être tort avec votre rpmdb, puisque vous avez eu la "rpmdb ouvrir le message" echec de. Vous pouvez exécuter
yum check
de trouver des problèmes dans rpmdb, mais au-delà de que je ne peux pas dire quoi que ce soit se passe avec le gestionnaire de paquet. Peut-être que d'autres personnes peuvent aider plus avec cet aspect.yum install --installroot=[absolute path] expat-devel
et il ditNo package expat-devel available.
En fait, même si je l'ai essayer avec les expatriés.i386, j'obtiens le même message d'erreurQuelle est la version de Red Hat utilisez-vous? Je vois expat-devel avec
Red Hat Enterprise Linux Server release 5.9 (Tikanga)
etFedora release 17 (Beefy Miracle)
. C'est peut-être un autre problème avec votre rpmdb?lsb_release -i -r
ditDistributor ID: RedHatEnterpriseServer Release: 5.6
Cela semble être un problème commun (j'ai juste cherché "yum rpmdb échec de l'ouverture" et trouvé beaucoup de discussions). Je post ce que j'ai trouvé ici, mais vous voudrez peut-être lire pour vous-même, dans le bon contexte. Après c'est résolu, vous pouvez probablement procéder à l'installation de
expat-devel
.Les réponses que j'ai trouvé, semble suggérer que je dois reconstruire la base de données, mais j'ai essayé et rien n'a changé. J'ai cherché un rpm de téléchargement pour expat-devel en ligne, mais je n'ai rien trouvé d'aussi vieux que 5,6
OriginalL'auteur SES
il suffit d'installer l'expatrié en le téléchargeant à partir http://sourceforge.net/projects/expat/ et
$ ./config
$ faire
$ make install
OriginalL'auteur Tomasz Swider
Bien, j'ai trouvé une solution de contournement. J'ai installé XML::Simple à la place. Au début, il semblait comme XML::Simple XML::Parser, mais après une certaine recherche, a trouvé qu'il exige, soit de XML::Parser OU XML::SAX, j'ai donc installé XML::SAX et je l'ai XML::Simple travail. Assez bon pour mes besoins.
OriginalL'auteur Lorkenpeist