Breaking

Post Top Ad

Your Ad Spot

domingo, 15 de diciembre de 2019

Instalación fallida de MSSQL-CLI en Ubuntu

Entonces, ¿quieres ejecutar mssql-cli en Ubuntu Linux, pero recibiste varios errores e incluso si superaste algunos errores, todavía estás atascado?
Estoy aquí para tratar de ayudarte a superarlos y espero haberlos capturado a todos. Confíe en mí, los DBA de Oracle han estado aquí: nuestras bases de datos y herramientas fallaron durante mucho tiempo hasta que los administradores de Linux supieron lo que necesitábamos y comenzaron a construirnos las imágenes con las bibliotecas y versiones correctas que necesitábamos, por lo que sentimos su dolor !
El escenario más fácil para muchos para implementar SQL Server 2019 en Linux para comenzar a trabajar con él, es muy probablemente una distribución de Ubuntu, (sabor) de Linux. Con eso, es posible que desee jugar con la herramienta más nueva para la ejecución de la línea de comandos de SQL, que no es sqlcmd, sino mssql-cli. Tiene algunas características nuevas increíbles, que no mencionaré aquí, pero enfóquese en los fallos de instalación, lo que sucede no porque la instalación sea complicada sino por las demandas aún para Python 2.7 cuando se requieren 3+ versiones para el software más nuevo.
mssql-cli requiere Python 3, por lo que recomiendo verificar la versión antes de ejecutar el comando de instalación mssql-cli, ya que esto puede ahorrarle mucho trabajo con dependencias. Todavía seguiré los pasos si desea forzarlo a trabajar con Python 2.7, pero en serio, solo usar la versión correcta de Python lo hará mucho más fácil.
python3 --version
Python 3.43

PIP no está instalado

pip install mssql-cli

El programa 'pip' actualmente no está instalado. Puede instalarlo escribiendo:
sudo apt-get install python3-pip
Sí, haz lo que dice y como SUDO, (Super User Domain Owner) usa APT-GET, (esto es Ubuntu, pero si es otra distribución de Linux, es posible que necesites usar YUM o ZYPPER) para instalar pip.

Error en la instalación de pip para Python3

Si tuvo éxito, está configurado y puede avanzar, si intenta instalar PIP, pero recibe el siguiente error al final de la instalación:
ImportError: ningún módulo llamado 'ConfigParser'
dpkg: paquete de procesamiento de error python-pip (--configure):
Si escanea en el proceso de instalación, verá errores similares a los siguientes:

dpkg: paquete de procesamiento de error python-pip (--configure):
almacenar el registro de depuración para la falla en /root/.pip/pip.log
Muchos errores quedarán atrapados en el pip.log. Para estos tipos de errores, suelen ser únicos y la instalación de la aplicación los registrará y debe buscar el problema exacto. Para este, tenemos un problema separado. El ConfigParser fue reemplazado por el configparser en Python3. En realidad, no es la instalación de PIP la que tiene un problema, sino otra utilidad de soporte que se encuentra en una versión demasiado temprana.
ver /root/.pip/pip.log
Si es solo el error de ConfigParser en Python3, (a diferencia de Python 2.7, que analizaré más adelante) haga lo siguiente:
Ejecute una actualización para los paquetes disponibles:
sudo apt-get update
Actualice las herramientas de red y las herramientas de configuración:
sudo apt-get install net-tools

sudo apt-get install setuptools
Intente ejecutar la instalación nuevamente y verifique que el error del analizador de configuraciones esté solucionado, ya que las utilidades dependientes ahora también apuntan a las utilidades de soporte correctas.
sudo  apt-get install python3-pip

Dependencias sobre dependencias

Todos estos desafíos rodean las dependencias de mssql-cli para bibliotecas, utilidades y paquetes que no están presentes en su host / imagen de Linux. Una vez que corrige uno, no significa que haya terminado, significa que puede que tenga que arreglar otros y el paso correcto una vez que corrige todo es crear una imagen para su servidor de base de datos para que no tenga que ejecutar esto cada hora.
El siguiente conjunto de errores una vez que supere el último, al instalar el mssql-cli puede incluir lo siguiente:
Los siguientes paquetes tienen dependencias insatisfechas:
 openssl: depende: libssl1.0.0 (> = 1.0.2g) pero se instalará 1.0.1f-1ubuntu2.27
 python-pip: Depende: python-colorama pero no se instalará
              Depende: python-distlib pero no se instalará
              Depende: python-html5lib pero no se instalará
              Depende: python-pip-whl (= 1.5.4-1ubuntu4) pero no se instalará
              Depende de: python-setuptools (> = 0.6c1) pero no se instalará
              Recomienda: build-essential pero no se va a instalar
              Recomienda: python-dev-all (> = 2.6) pero no es instalable
              Recomienda: python-wheel pero no se instalará
E: dependencias insatisfechas. Pruebe 'apt-get -f install' sin paquetes (o especifique una solución).
Deberá ejecutar esto como SUDO nuevamente, ya que su administrador no tendrá los privilegios necesarios para ejecutar esto de manera predeterminada. El instalador le dice claramente que le faltan varios paquetes / archivos de distribución de la biblioteca de Python que se necesitan antes de poder ejecutar este paso, por lo tanto, ejecute la actualización para recopilar lo último del repositorio:
sudo apt-get -f install
Luego ejecute la instalación de Python nuevamente:
sudo apt-get install python-pip

Error al reiniciar el demonio

Luego de la instalación, publique la actualización, también puede recibir un paso de falla al intentar reiniciar el demonio:
Eliminando landscape-client (14.12-0ubuntu6.14.04.4) ...
 * Deteniendo el daemon de paisaje-cliente [falla]
Esto puede ser una falsa falla. No puede detener el daemon de paisaje-cliente porque NO ESTÁ INSTALADO.
1. Verifique si existe:
ps -ef | grep daemon
Esto mostrará una lista de todos los demonios en ejecución. Si no ve el paisaje-cliente en la lista, puede cambiar a ROOT (el propietario adecuado) y ver si se puede iniciar con el comando mínimo:
sudo su -

paisaje-cliente
Si dice que no está instalado, estás bien. Acaba de verificar que la razón por la que el paso falló en la instalación fue que el cliente horizontal no está instalado en primer lugar.

Error al crear las herramientas de configuración

Ejecutó el instalador sin verificar la versión de Python y se encontró con este error:
    /Tmp/pip_build_azureuser/pymssql/setuptools_git-1.2-py2.7.egg instalado

Instalación de paquetes recopilados: mssql-cli, pymssql
Ejecutando setup.py install para mssql-cli
error: no se pudo crear '/usr/local/lib/python2.7/dist-packages/mssql_cli': Permiso denegado 
Salida completa del comando / usr / bin / python -c "import setuptools, tokenize; __ file __ = '/ tmp / pip_build_azureuser / mssql-cli / setup.py '; exec (compile (getattr (tokenize,' open ', open) (__ file __). read (). replace (' \ r \ n ',' \ n '), __file__, 'exec')) "install --record /tmp/pip-46EYHL-record/install-record.txt --single-version-externally-managed --compile:
Esto es en realidad parte de la falla final que verá si está intentando instalar el mssql-cli con el conjunto de versiones de Python incorrecto. Debe tener en cuenta la versión 2.7 en la ruta y las fallas continuas debido a la falta de archivos de biblioteca y módulo.

Repara la versión de Python

Sí, es Python y sin la versión de soporte adecuada, tendrá algunos problemas. Los errores que recibe pueden ser un poco engañosos porque verá las demandas de pymssql u otros módulos que ya no están disponibles:
DeprecationWarning: el proyecto pymssql ha sido descontinuado.   Para instalar la última versión publicada de trabajo, use un

especificador de versión como "pymssql <3.0". Para detalles y alternativas ver:

https://github.com/pymssql/pymssql/issues/668https : // github . com / pymssql / pymssql / issues / 668

----------------------------------------
Limpiar...
Comando / usr / bin / python -c "import setuptools, tokenize; __ file __ = '/ tmp / pip_build_root / pymssql / setup.py'; exec (compile (getattr (tokenize, 'open', open)) (__ file __). Read ( ) .replace ('\ r \ n', '\ n'), __file__, 'exec')) "install --record /tmp/pip-Ccg8po-record/install-record.txt --single-version-externally -managed --compile falló con el código de error 1 en / tmp / pip_build_root / pymssql
Almacenamiento del registro de depuración para fallas en /home/azureuser/.pip/pip.log
1. Determine "a qué" Python se dirige, asegurándose de que nada en su camino lo haya redirigido a una versión diferente de Python que la predeterminada en / usr / bin:
que python 
/ usr / bin / python
Ahora descubra cómo se ve el enlace suave:
ls -la / usr / bin / python 
 lrwxrwxrwx 1 raíz raíz 18 22 de noviembre 21:22 / usr / bin / python -> /usr/bin/python2.7
Tendrá que eliminar el enlace suave existente (recuerde, esto es solo un enlace suave, no está eliminando Python) y luego crear uno nuevo. Esto debe hacerse como usuario root:
 rm / usr / bin / python
ln -s /usr/bin/python3.4 / usr / bin / python
Ahora ejecute su instalación y esto debería solucionar muchos de los problemas que puede haber enfrentado. De lo contrario, continúe con los pasos y aprenda cómo abordar las dependencias.
sudo pip install mssql-cli

Actualizar e instalar

A medida que actualice las bibliotecas de instalación que se instalarán en su máquina virtual Linux, tenga en cuenta que esto es simplemente agregarlas al repositorio para que estén disponibles y solo se agregarán las obligatorias si ejecuta el comando "sudo apt-get install" después . No se instalarán bibliotecas o herramientas secundarias hasta que las llame específicamente. Si ha pasado un tiempo desde que actualizó su repositorio para las actualizaciones disponibles recientemente o si acaba de crear la imagen, es una buena idea ejecutar una actualización e instalarla en general. Una vez hecho esto, ejecute la instalación de pip:
sudo apt-get update

sudo apt-get -f install
sudo apt-get install python-pip
TypeError: error al llamar a las bases de metaclase

    str () toma como máximo 1 argumento (3 dados)

----------------------------------------
Limpiar...
El comando python setup.py egg_info falló con el código de error 1 en / tmp / pip_build_root / pymssql
Almacenamiento del registro de depuración para fallas en /root/.pip/pip.log
Arreglemos esto actualizando las herramientas de configuración y luego ejecutando la instalación nuevamente:
pip install --upgrade setuptools
Puede haber una siguiente capa para este error:
  Archivo "/tmp/pip_build_root/pymssql/setup.py", línea 88, en <module>

    de Cython.Distutils importa build_ext como _build_ext

ImportError: ningún módulo llamado Cython.Distutils

----------------------------------------
Limpiar...
El comando python setup.py egg_info falló con el código de error 1 en / tmp / pip_build_root / pymssql
Almacenamiento del registro de depuración para fallas en /root/.pip/pip.log
Tenga en cuenta que hay un registro de depuración incluido en esto, ya que el error puede ser diferente para cada falla. Ver el registro para más información:
ver /root/.pip/pip.log
Si te encuentras con este, no dudes en poner el error exacto del pip.log en los comentarios y lo solucionaremos.

Cuando falla Cython

Tenga en cuenta en el error, nos falta el Cython.Distutils. Cython se considera el superconjunto del lenguaje Python, así que sí, necesitamos que esto funcione. A medida que instalamos bibliotecas faltantes y utilidades / herramientas, es posible que necesitemos seguir y repetir otras instalaciones, la biblioteca -> herramienta -> aplicación que era el objetivo para comenzar. Para instalar esto, los siguientes comandos se pueden ejecutar como uno con el siguiente conjunto, separados por punto y coma:
sudo apt-get install python-dev; sudo pip instalar cython
Actualiza las herramientas de configuración
pip install --upgrade setuptools pip 
Use un controlador diferente, ya que el controlador pymsql ya no es compatible a través de su repositorio github:
pip install sqlalchemy_pyodbc_mssql 
Ahora debe estar configurado para instalar msql-cli
sudo pip install mssql-cli

Instalación Pip no encontrada

PIP es una herramienta de línea de comandos para instalar paquetes de software Python y se requiere para realizar la instalación de mssql-cli. Si la versión incorrecta para soporte o enlaces blandos (piense en ellos como alias en Linux) apuntan a los directorios / archivos de biblioteca incorrectos, se producirá un error. Esto puede convertirse en una situación frustrante, por lo que espero guiarlo a través de errores y soluciones. Tenga en cuenta que, a medida que avanza por estas correcciones, es posible que tenga que volver a ejecutar comandos anteriores para tener éxito una vez que arregle cada dependencia.
Si recibe el siguiente error:
  Archivo " /usr/lib/python3/dist-packages/pkg_resources.py", línea 628 , en resolución
    elevar DistributionNotFound (req)
pkg_resources.DistributionNotFound: pip == 1.5.4
Esto se debe a una instalación de pip para 2.7 de Python que debe instalarse en la versión 3.4 y volver a vincularse . Esto se puede hacer con los siguientes comandos:
wget https://bootstrap.pypa.io/get-pip.pyhttps : // bootstrap . pypa . io / get - pip . py

sudo python get-pip.py

pip --version

Engañar a la pepita

Lo que terminó funcionando para obtener mssql-cli para muchos fue desconectar la instalación de PIP instalando el pip de python 3, copiando el pip de 2.7 a él, luego instalando las herramientas de configuración completas para corregir lo que parece estar incompleto en la versión 3 en algunos repositorios
sudo easy_install3 pip

sudo mv / usr / local / bin / pip / usr / local / bin / pip-3
Ejecute la instalación en otro momento:
sudo apt-get install python3-setuptools
Ahora ejecute la instalación mssql-cli:
sudo pip install mssql-cli

Último error que cubriré, ¡lo prometo!

Aunque ahora puede instalar mssql-cli, puede experimentar un error más en las variaciones de esta guía de solución de problemas:
  Rueda de construcción para terminalestables (setup.py) ... hecho
  Almacenado en el directorio: /root/.cache/pip/wheels/30/6b/50/6c75775b681fb36cdfac7f19799888ef9d8813aff9e379663e
Configobj construido con éxito humaniza las futuras mesas terminales
ERROR: prompt-toolkit 2.0.10 tiene el requisito seis> = 1.9.0, pero tendrá seis 1.5.2 que es incompatible.
El kit de herramientas rápido es tal como suena: es un potente kit de herramientas para construir aplicaciones de línea de comandos y terminales. Si desea actualizar esto, ya que el de la imagen puede ser una versión anterior a la admitida, puede actualizar su paquete de herramientas de red, que incluye una versión más nueva del kit de herramientas de solicitud:
sudo apt-get install net-tools

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas