{"id":458,"date":"2014-07-18T19:10:10","date_gmt":"2014-07-19T00:10:10","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/nemo\/?p=458"},"modified":"2016-03-20T15:56:03","modified_gmt":"2016-03-20T20:56:03","slug":"coneccion-odbc-entre-ubuntu-14-04-trusty-tahr-con-sql-server-utilizando-el-microsoft-odbc-driver-11-for-linux","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/nemo\/2014\/07\/18\/coneccion-odbc-entre-ubuntu-14-04-trusty-tahr-con-sql-server-utilizando-el-microsoft-odbc-driver-11-for-linux\/","title":{"rendered":"Conexi\u00f3n ODBC entre Ubuntu 14.04 (Trusty Tahr) con SQL Server utilizando el Microsoft\u00ae ODBC Driver 11 for Linux"},"content":{"rendered":"<p style=\"text-align: justify\">Tuve la necesidad de conectarme a un MS SQL Server (2003 en adelante) desde linux, pues bien si el linux fuese RedHat o derivadas de 64bit la mejor opci\u00f3n, <em>al parecer<\/em>, es utilizar el <a title=\"Microsoft\u00ae ODBC Driver 11 for SQL Server\u00ae - RedHat Linux\" href=\"http:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=36437\" target=\"_blank\">driver oficial<\/a> pero si la distribuci\u00f3n linux es otra, en particular <a title=\"Download Ubuntu Server | Download | Ubuntu\" href=\"http:\/\/www.ubuntu.com\/download\/server\" target=\"_blank\">Ubuntu 14.04 server 64 bit<\/a> toca compilar por cuenta propia el driver pues el mismo no est\u00e1 desarrolado oficialmente para Ubuntu; buscando en la web la mejor gu\u00eda (en ingl\u00e9s) que encontr\u00e9 para Debian y Ubuntu es <a title=\"Install and Configure the MS ODBC Driver on Debian\" href=\"https:\/\/blog.afoolishmanifesto.com\/posts\/install-and-configure-the-ms-odbc-driver-on-debian\/\" target=\"_blank\">esta<\/a> pero tambi\u00e9n tienen buena informaci\u00f3n <a title=\"Microsoft SQL Server ODBC driver for Linux\" href=\"http:\/\/codesynthesis.com\/~boris\/blog\/2011\/12\/02\/microsoft-sql-server-odbc-driver-linux\/\" target=\"_blank\">aqu\u00ed<\/a> y <a title=\"How To Install Microsoft SQL Server ODBC Driver for Linux on Ubuntu Server\" href=\"http:\/\/onefinepub.com\/2013\/03\/ms-sql-odbc-ubuntu\/\" target=\"_blank\">aqu\u00ed<\/a>; as\u00ed que con este post pretendo aplicar lo escrito a Ubuntu 14.04 y tenerlo a su vez una especie de recorderis para cuando deba repetir la acci\u00f3n.<\/p>\n<h4>Preeliminares<\/h4>\n<ul>\n<li>Ir al directorio base<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\">\u00a0 <code># cd <\/code><\/p>\n<ul>\n<li>\u00a0Descargar los paquetes<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># wget http:\/\/download.microsoft.com\/download\/6\/A\/B\/6AB27E13-46AE-4CE9-AFFD-406367CADC1D\/Linux6\/sqlncli-11.0.1790.0.tar.gz<br \/>\n# wget ftp:\/\/ftp.unixodbc.org\/pub\/unixODBC\/unixODBC-2.3.2.tar.gz <\/code><\/p>\n<h4>Instalaci\u00f3n de unixODBC 2.3.2<\/h4>\n<ul>\n<li>\u00a0Desempaquetar unixODBC<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># tar xf unixODBC-2.3.2.tar.gz <\/code><\/p>\n<ul>\n<li>Entramos en la carpeta creada al desempaquetar<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># cd unixODBC-2.3.2 <\/code><\/p>\n<ul>\n<li>Vamos a modificar el script configure<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code><\/code><code># nano configure<\/code><\/p>\n<p style=\"padding-left: 60px\">Buscamos (con CTRL + W) la l\u00ednea<\/p>\n<p style=\"padding-left: 60px\"><code>LIB_VERSION=\"2:0:0\"<\/code><\/p>\n<p style=\"padding-left: 60px\">y la remplazamos por<\/p>\n<p style=\"padding-left: 60px\"><code>LIB_VERSION=\"1:0:0\" <\/code><\/p>\n<ul>\n<li>Ahora se procede a la instalaci\u00f3n de unixODBC<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># .\/configure --disable-gui --disable-drivers --enable-stats=no --enable-iconv --with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16LE<br \/>\n# make<br \/>\n# sudo make install<\/code><\/p>\n<h4>Preparar el sistema para la instalaci\u00f3n del Microsoft\u00ae ODBC Driver 11 for Linux<\/h4>\n<p>unixODBC se instala en <code>\/usr\/local\/lib<\/code> (pueden probarlo haciendo ls <code>\/usr\/local\/lib<\/code>y ver\u00e1n una serie de archivos con nombre <code>libodbc*<\/code>) sin embargo el driver de MS va a intentar buscarlo en <code>\/usr\/lib<\/code>, por lo que hay que agregar la ruta al <code>\/etc\/ld.so.conf<\/code> para que el sistema sepa que debe buscar all\u00e1<\/p>\n<ul>\n<li>Abrir archivo <code>\/etc\/ld.so.conf<\/code><\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># sudo nano \/etc\/ld.so.conf<\/code><\/p>\n<p style=\"padding-left: 60px\">agregar la linea <code>\/usr\/local\/lib<\/code> al final (ojo, si es un ubuntu recien instalado el archivo estar\u00e1 vac\u00edo)<\/p>\n<ul>\n<li>Ejecutar ldconfig<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># sudo ldconfig<\/code><\/p>\n<h4>Instalaci\u00f3n de Microsoft\u00ae ODBC Driver 11 for Linux<\/h4>\n<p>Vamos a resolver las dependencias del driver, para eso hacemos lo siguiente (recordar que estamos en la raiz donde descargamos los paquetes al inicio del post, sino hacer un <code>cd<\/code> y listo):<\/p>\n<ul>\n<li>\u00a0Desempaquetar el Driver de MS<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># tar xf sqlncli-11.0.1790.0.tar.gz <\/code><\/p>\n<ul>\n<li>Entramos en la carpeta creada al desempaquetar<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># cd sqlncli-11.0.1790.0<\/code><\/p>\n<ul>\n<li>Listar las dependencias del driver<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># ldd lib64\/libsqlncli-11.0.so.1790.0<\/code><\/p>\n<p style=\"padding-left: 60px\">la salida debe ser como esta:<\/p>\n<p style=\"padding-left: 60px\"><code>libcrypto.so.10 =&gt; not found<br \/>\nlibdl.so.2 =&gt; \/lib\/x86_64-linux-gnu\/libdl.so.2 (0x00007fbda1d1c000)<br \/>\nlibrt.so.1 =&gt; \/lib\/x86_64-linux-gnu\/librt.so.1 (0x00007fbda1b13000)<br \/>\nlibssl.so.10 =&gt; not found<br \/>\nlibuuid.so.1 =&gt; \/lib\/x86_64-linux-gnu\/libuuid.so.1 (0x00007fbda16b0000)<br \/>\nlibodbcinst.so.1 =&gt; \/usr\/local\/lib\/libodbcinst.so.1 (0x00007fbda1497000)<br \/>\n... en resumen 13 dependencias pero s\u00f3lo 2 not found en total...<\/code><\/p>\n<ul>\n<li>Lo que nos indica el sistema es que faltan dos librerias, busquemos la primera<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># find \/ -name \"libss*\"<\/code><\/p>\n<ul>\n<li>La salida debe tener una l\u00ednea como: <code>\/usr\/lib\/x86_64-linux-gnu\/libssl.so.1.0.0<\/code> , si les muestra eso pasen al paso de crear un symbolic link, de lo contrario se debe instalar lo siguiente:<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># sudo apt-get install libssl1.0.0 libssl-dev libssl1.0.0-dbg <\/code><\/p>\n<ul>\n<li>Si busquemos nuevamente las librer\u00edas deber\u00edan salir<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># find \/ -name \"libss*\"<br \/>\n# find \/ -name \"libcry*\"<\/code><\/p>\n<p style=\"padding-left: 60px\">les detallo mi salida pero recuerden que puede tener numeros despu\u00e9s del so:<\/p>\n<p style=\"padding-left: 60px\"><code>\/usr\/lib\/x86_64-linux-gnu\/libssl.so<br \/>\n\/usr\/lib\/x86_64-linux-gnu\/libcrypto.so <\/code><\/p>\n<ul>\n<li>Ir al directorio <code>\/usr\/lib\/<\/code><\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># cd \/usr\/lib\/<\/code><\/p>\n<ul>\n<li>Crear dos symbolic link entre los archivos reportados en\u00a0<code>x86_64-linux-gnu\/<\/code> y lo que resutaba en\u00a0<code>not found anteriormente<\/code><\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># sudo ln -s x86_64-linux-gnu\/libssl.so libssl.so.10<br \/>\n# sudo ln -s x86_64-linux-gnu\/libcrypto.so libcrypto.so.10 <\/code><\/p>\n<ul>\n<li>Listar nuevamente las dependencias del driver y ya no deber\u00edan presentarse lineas con\u00a0 <code>not found<\/code><\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># ldd lib64\/libsqlncli-11.0.so.1790.0<\/code><\/p>\n<ul>\n<li>Regresar al directorio del driver<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># cd sqlncli-11.0.1790.0\/ <\/code><\/p>\n<ul>\n<li>Instalar el driver (primero muestra texto y luego pide ingresar YES)<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><code># sudo bash .\/install.sh install --force <\/code><\/p>\n<p style=\"padding-left: 60px\">Mi salida fue la siguiente<\/p>\n<p style=\"padding-left: 60px\"><code>.\/install.sh: line 233: rpm: command not found<br \/>\nChecking for 64 bit Linux compatible OS ..................................... OK<br \/>\nChecking required libs are installed ................................. NOT FOUND<br \/>\nunixODBC utilities (odbc_config and odbcinst) installed ............ NOT CHECKED<br \/>\nunixODBC Driver Manager version 2.3.0 installed .................... NOT CHECKED<br \/>\nunixODBC Driver Manager configuration correct ...................... NOT CHECKED<br \/>\nMicrosoft SQL Server ODBC Driver V1.0 for Linux already installed .. NOT CHECKED<br \/>\nMicrosoft SQL Server ODBC Driver V1.0 for Linux files copied ................ OK<br \/>\nSymbolic links for bcp and sqlcmd created ................................... OK<br \/>\nMicrosoft SQL Server ODBC Driver V1.0 for Linux registered ........... INSTALLED<\/code><\/p>\n<ul>\n<li>Finalmente, probar la instalacion conectandose a un servidor<\/li>\n<\/ul>\n<p style=\"padding-left: 60px\"><code># sqlcmd -S <em>192.168.99.999<\/em> -U <em>usuario<\/em> -P <em>password<\/em> <\/code><\/p>\n<p>&nbsp;<\/p>\n<p>Yo lo he probado con MS SQL 2005, pero deber\u00eda funcionar con cualquier MS SQL 2003 o superior. Para MS SQL 2000 hay que utilizar <a title=\"Conexi\u00f3n ODBC entre Ubuntu 14.04 (Trusty Tahr) con SQL Server utilizando FreeTDS\" href=\"http:\/\/blog.espol.edu.ec\/nemo\/2014\/07\/30\/conexion-odbc-entre-ubuntu-14-04-trusty-tahr-con-sql-server-utilizando-freetds\/\" target=\"_blank\">FreeTDS cuya instalacion se detalla en el siguiente post.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p style=\"text-align: justify\">Tuve la necesidad de conectarme a un MS SQL Server (2003 en adelante) desde linux, pues bien si el linux fuese RedHat o derivadas de 64bit la mejor opci\u00f3n, al parecer, es utilizar el driver oficial pero si la distribuci\u00f3n linux es otra, en particular Ubuntu 14.04 server 64 bit toca compilar por &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/blog.espol.edu.ec\/nemo\/2014\/07\/18\/coneccion-odbc-entre-ubuntu-14-04-trusty-tahr-con-sql-server-utilizando-el-microsoft-odbc-driver-11-for-linux\/\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":3803,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[866],"tags":[1171605,1171610,1171607,1171606,1171625,822,325,1171608,1171609],"class_list":["post-458","post","type-post","status-publish","format-standard","hentry","category-linux","tag-conectarse-a-ms-sql-server-desde-ubuntu-14-04","tag-conexion-odbc-desde-ubuntu-a-microsof-sql-server","tag-instalar-microsoft-odbc-driver-11-for-sql-server","tag-instalar-unixodbc","tag-linux","tag-open-source","tag-software-libre","tag-ubuntu-14-04","tag-ubuntu-trusty-tahr","item-wrap"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/users\/3803"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/comments?post=458"}],"version-history":[{"count":38,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts\/458\/revisions"}],"predecessor-version":[{"id":556,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/posts\/458\/revisions\/556"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/media?parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/categories?post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/nemo\/wp-json\/wp\/v2\/tags?post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}