2
votes

Impossible d'installer le package MySQL-python

Je viens de créer CentOS 7 dans la société d'hébergement.

Je dois installer une application qui dépend du package MySQL-python.

J'ai essayé d'installer ce package, mais il n'est pas disponible:

[main]
exclude=courier* dovecot* exim* filesystem httpd* mod_ssl* mydns* mysql* nsd* p0f php* proftpd* pure-ftpd* spamassassin* squirrelmail*
tolerant=1
errorlevel=1
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release


#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

Pourquoi je ne peux pas l'installer? une solution de contournement?

EDIT:

/etc/yum.conf

root@vps [/var/frappe]# yum install MySQL-python
Loaded plugins: fastestmirror, universal-hooks
Loading mirror speeds from cached hostfile
 * EA4: 208.100.0.204
 * base: ftpmirror.your.org
 * epel: mirror.steadfastnet.com
 * extras: ftpmirror.your.org
 * ius: muug.ca
 * updates: ftpmirror.your.org
No package MySQL-python available.
Error: Nothing to do
root@vps [/var/frappe]#


7 commentaires

Essayez une yum update . Vérifiez que les miroirs sont en cours de mise à jour. Même docker run centos: 7 yum search MySQL-python le trouve pour moi. Donc problème d'hébergement / repos par défaut.


ça n'a pas marché non plus ... qu'est-ce que docker .....?


Qu'est-ce que «it» - «yum update» ou «vérifier les miroirs»? Plutôt qu'une déclaration dénuée de sens comme «n'a pas fonctionné», montrez les résultats / observations réels et, si nécessaire, les résultats attendus? docker est un moyen d'exécuter des systèmes d'exploitation assez purs dans ce cas à des fins de démonstration.


J'ai lancé "yum update" ... Je ne sais pas comment vérifier les miroirs. Il est supposé que tous les référentiels sont bien configurés.


Étant donné qu'il ne parvient pas à installer le package, je soupçonne qu'il n'est pas correctement configuré. Comparez les URL que vous avez masquées dans votre question avec le répertoire d'un centos public comme mirror.centos .org / centos-7/7 ou définissez votre miroir comme cette réponse et réessayer. Ou contactez votre fournisseur d'hébergement pour l'assistance fournie avec leur service interrompu.


Pouvez-vous nous montrer votre /etc/yum.conf


@DanFromGermany ajouté dans la question.


3 Réponses :


6
votes

ce package serait disponible dans le référentiel base :

sudo yum install MySQL-python --disableexcludes=all

pour référence:

$ repoquery --requires --resolve MySQL-python
python-0:2.7.5-76.el7.x86_64
python-libs-0:2.7.5-76.el7.x86_64
MariaDB-compat-0:10.2.22-1.el7.centos.x86_64
glibc-0:2.17-260.el7.i686
mariadb-libs-1:5.5.60-1.el7_5.x86_64
zlib-0:1.2.7-18.el7.x86_64
glibc-0:2.17-260.el7.x86_64
openssl-libs-1:1.0.2k-16.el7.x86_64

quoi semble assez suspect dans le yum.conf fourni, c'est que la configuration exclude = mysql * correspond précisément au nom du package souhaité. vous devrez soit supprimer ce modèle exclure pour l'installer. ou installez le package MySQL-python avec pip install MySQL-python .


les dépendances RPM de MySQL-python confirment qu'aucun package MySQL supplémentaire n'est requis: p >

$ cat /etc/yum.repos.d/centos.repo 
[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/7/os/$basearch/
gpgcheck=1
enabled=1
protect=1
priority=5
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

le la documentation explique également ce que j'essaie de dire:

exclude Liste des packages à exclure de tous les référentiels, donc yum fonctionne comme si ce package n'était jamais dans les référentiels. Cela devrait être une liste séparée par des espaces. Ceci est couramment utilisé pour qu'un package ne soit pas mis à niveau ou installé accidentellement, mais peut être utilisé pour supprimer des packages de quelque manière que yum list affichera les packages. Les globes Shell utilisant des caractères génériques (par exemple, * et ? ) sont autorisés.

la solution optimale serait: d'éditer /etc/yum.conf puis de remplacer exclude pattern mysql * par quelque chose de similaire mysql-server * mysql-client * mysql-libs * - de sorte que le serveur, le client et les libs MySQL soient toujours exclus, mais l'installation du package MySQL-python serait autorisé.


il existe même un moyen assez simple de contourner le problème (sachez que cela ne trouvera pas de mises à jour plus tard):

XXX


6 commentaires

"yum whatprovides MySQL-python" affiche le message "Aucune correspondance trouvée"


Et je l'ai installé à l'aide de pip, cependant, le logiciel qui en dépend ne le reconnaît pas comme installé.


@jstuardo alors vous devez l'installer avec yum (en supprimant l'exclusion, qui pourrait néanmoins exister pour une raison quelconque, qui pourrait être MariaDB) - l'installation de pip nécessiterait la désactivation le contrôle des dépendances. MariaDB fournit au moins (la plupart) des bibliothèques de compatibilité mySQL, de sorte que l'utilisation de l'une ou l'autre d'entre elles est moins problématique. le problème réel est que le modèle exclude correspond également au nom du package souhaité, bien qu'il ne fasse pas partie du serveur mySQL. a ajouté la liste des dépendances.


@jstuardo sauf si vous supprimez le motif exclude mysql * de /etc/yum.conf ... il ne trouvera pas le paquet, car cela correspond également à MySQL-python . cela semble être un effet secondaire de la tentative d'exclusion du serveur MySQL ; ils auraient dû utiliser un modèle similaire à mysql-server * mysql-client * mysql-libs * à la place, afin qu'il ne corresponde pas à MySQL-python (vous pourriez les notifier le problème, qu'ils ont produit sans le savoir).


Merci!! Je pourrais installer ce package en suivant votre suggestion


@jstuardo pas de problème (tout en connaissant RPM en détail). dans l'attente de la prime :)



0
votes

Vous feriez mieux d'utiliser pip comme gestionnaire de paquets pour Python, au lieu de yum . Créez un environnement virtuel Python , activez-le, puis utilisez pip pour installer MySQL-python:

python -m venv ~/mysqlstuff
source ~/mysqlstuff/bin/activate
pip install MySQL-python


0 commentaires

0
votes

Commencez par mettre à jour votre gestionnaire de packages avec:

sudo pip install MySQL-python # system wide

Puis installez le package pip avec:

pip install --user MySQL-python # user only

Puis mettez à jour pip avec: p >

pip install --upgrade pip

Enfin, installez le package MYSQL-python:

sudo yum install epel-release
sudo yum install python-pip

ou

sudo yum update

p>


0 commentaires