Instalando o driver ODBC da Microsoft para o Debian

1

Então, meu apt-get install retorna com E: Unable to locate package msodbcsql (código de erro 100). Eu estou tentando acessar um banco de dados do SQL Server com o meu sistema e por isso estou seguindo instruções da Microsoft para instalar seu driver para Linux.

Eu tentei especificar a versão do pacote: apt-get install -y msodbcsql17 e usar o pacote para os dois Debian 8 e 9. Eu tentei confirmar a versão do sistema, já que estou construindo um container Docker de Debian:stretch-slim -> Python:3.6-slim , e eu estou inclinado para o Debian 8, porque o número da versão em outras imagens é explicitamente 9.

Quais poderiam ser minhas opções tentando instalar o pacote? Outras formas ou etapas de solução de problemas?

Muito obrigado antecipadamente. Eu sou novo no Linux em geral, então qualquer ponteiro é muito apreciado!

Editar

De acordo com o bash: cat /etc/debian_version minha versão é na verdade 9.5.

    
por Felix 06.09.2018 / 08:51

2 respostas

0

Isso é mais como evitar o problema do que consertá-lo, mas funciona por enquanto. O problema é que mudar a versão requer a localização manual do novo arquivo, o que não é o ideal, mas talvez eu consiga que as coisas funcionem com mais facilidade em algum outro momento.

Eu encontrei o arquivo de pacote bruto usando os links fornecidos na documentação que mencionei na pergunta. Para mim, o URL era https://packages.microsoft.com/debian/9/prod/pool/main/m/msodbcsql17/ e o pacote mais recente era msodbcsql17_17.2.0.1-1_amd64.deb . Usando wget e dpgk Eu consegui instalar esse pacote.

Os comandos dockerfile adicionados ao normal foram:

RUN apt-get install -y curl wget gnupg
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

RUN TEMP_DEB="$(mktemp)" \
 && wget -O "$TEMP_DEB" 'https://packages.microsoft.com/debian/9/prod/pool/main/m/msodbcsql17/msodbcsql17_17.2.0.1-1_amd64.deb' \
 && yes | dpkg --skip-same-version -i "$TEMP_DEB" \
 && rm -f "$TEMP_DEB"
    
por 06.09.2018 / 11:42
0

Eu segui as instruções da documentação da Microsoft usando python: 3.6-slim e ele pareceu ser instalado corretamente com algumas advertências

Você precisará desses pacotes para seguir as instruções

apt-get update && apt-get install -y curl apt-transport-https gnupg2

A imagem do Docker não tem curvatura, o apt-transport-https é necessário para usar o repositório da Microsoft com o protocolo https, e o gnupg2 é necessário para o comando apt-key

FROM python:3.6-slim

RUN apt-get update \
        && apt-get install -y curl apt-transport-https gnupg2 \
        && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
        && curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
        && apt-get update \
        && ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools

e parece que isso adiciona um /etc/odbcinst.ini que aponta para o driver

cat /etc/odbcinst.ini
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1
UsageCount=1

para que você possa se conectar através do driver ODBC "ODBC Driver 17 for SQL Server"

    
por 12.09.2018 / 01:38