Solución a posibles errores que se producen al ejecutar el comando yum (el instalador de paquetes de Linux CentOS). Solución al error: File «/usr/bin/yum», line 30 except KeyboardInterrupt, e: SyntaxError: invalid syntax, al intentar instalar paquetes con yum en Linux CentOS. Mostramos cómo cambiar la versión por defecto de Python en Linux CentOS.
- Errores que se producen en Linux CentOS 7 al instalar aplicaciones y paquetes con yum.
- Solución a los errores que se producen al ejecutar yum en Linux CentOS.
Errores que se producen en Linux CentOS 7 al instalar aplicaciones y paquetes con yum
Uno de los errores que se puede producir cuando intentamos instalar algún software con yum, por ejemplo, nano:
1 |
yum install nano |
Nos muestra este error:
1 2 3 4 5 |
[root@srvmysql infopc]# yum install nano File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax |
El contenido del fichero:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/usr/bin/python import sys try: import yum except ImportError: print >> sys.stderr, """\ There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: %s Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: %s If you cannot solve this problem yourself, please go to the yum faq at: http://yum.baseurl.org/wiki/Faq """ % (sys.exc_value, sys.version) sys.exit(1) sys.path.insert(0, '/usr/share/yum-cli') try: import yummain yummain.user_main(sys.argv[1:], exit_code=True) except KeyboardInterrupt, e: print >> sys.stderr, "\n\nExiting on user cancel." sys.exit(1) |
Vemos que, efectivamente, yum usa Python. El error anterior se produce normalmente porque tenemos una versión de Python en Linux por defecto superior a la soportada por el código Python de yum.
Otros errores en la ejecución de yum pueden deberse a que hemos desinstalado Python en el equipo Linux o bien no lo encuentra en su ubicación original: /usr/bin/python. En este caso, al ejecutar yum, puede mostrar el mensaje:
-bash: /usr/bin/yum: /usr/bin/python: intérprete erróneo: No existe el fichero o el directorio
Solución a los errores que se producen al ejecutar yum en Linux CentOS
Estos errores de ejecución de yum suelen deberse a que yum no encuentra Python en el equipo o bien (esta es la causa principal) a que la versión de Python de nuestro equipo Linux es superior a la compatible con el código de yum, puesto que Python es el intérprete que usa yum para su funcionamiento.
En el caso de que no tengamos Python en el equipo, dado que yum no funciona para instalar paquetes, lo instalaremos siguiendo los pasos del siguiente artículo, que no usa yum para instalar Python:
Deberemos instalar una versión de Python que sea compatible con el código de yum. Para el caso de Linux CentOS 7 hemos verificado que es la versión 2.7.5 de Python, la que necesita.
Tras instalar Python, deberemos asignar este Python como el de defecto para el sistema. Para ello, comprobaremos las versiones que tenemos de Python en el equipo Linux, podemos hacerlo con el comando:
1 |
ls -lah /usr/bin/python* |
En nuestro caso hemos instalado Phyton 3.9.10, por lo que usaremos el ejecutable python3.9. A continuación modificaremos el alias para python estableciendo el python3.9, lo haremos ejecutando el comando:
1 |
alias python='/usr/bin/python3.9' |
Establecemos el alias en el bashrc con:
1 |
. ~/.bashrc |
Establecemos el Python por defecto que usará el sistema con el siguiente comando:
1 |
update-alternatives --config python |
Este comando nos mostrará todas las instalaciones de Python, con un número a la izquierda. Introduciremos el número de la instalación que queramos usar, en nuestro caso 1 para /usr/bint/python3.9.
Ejecutaremos este último comando para verificar que tenemos la versión correcta de Python:
1 |
python --version |
que nos devolverá, en nuestro caso, Python 3.9.10.
Ya tenemos un Python por defecto en nuestro sistema, sólo nos quedaría, para solucionar el error anterior de yum, agregar un enlace simbólico de /usr/bin/python a /usr/bin/python3.9:
1 |
ln -s /usr/bin/python3.9 /usr/bin/python |
De esta forma, la primera línea de los ficheros de yum y yum-cli que apunte a /usr/bin/python, será redireccionada a /usr/bin/python3.9.
Si sigue dando fallo la ejecución de yum será porque, como hemos comentado al principio, el código fuente Python de yum en la versión de Linux CentOS que estamos usando no es compatible con esta versión, por lo que deberemos instalar otra (normalmente más baja).
Con cambiar el enlace simbólico anterior y que apunte a la versión 2.7 de Python, por ejemplo, podría solucionarse el problema:
1 |
ln -sfn /usr/bin/python2.7 /usr/bin/python |