Installation des Microsoft ODBC-Treibers unter Debian

1

So mein apt-get install kehrt zurück mit E: Unable to locate package msodbcsql (Fehlercode 100). Ich versuche, mit meinem System auf eine SQL Server-Datenbank zuzugreifen, und folge daher Anweisungen von Microsoft um ihren Treiber für Linux zu installieren.

Ich habe versucht, die Paketversion anzugeben: apt-get install -y msodbcsql17 Ich habe versucht, die Systemversion zu bestätigen, da ich tatsächlich einen Docker-Container aus baue Debian:stretch-slim -> Python:3.6-slim, und ich neige zu Debian 8, weil die Versionsnummer in anderen Bildern ausdrücklich 9 ist.

Welche Möglichkeiten habe ich, um das Paket zu installieren? Andere Möglichkeiten oder Schritte zur Fehlerbehebung?

Vielen Dank im Voraus. Ich bin generell neu in Linux, daher sind alle Hinweise sehr willkommen!

Bearbeiten

Laut Bash: cat /etc/debian_version meine version ist eigentlich 9.5.

Felix
quelle

Antworten:

0

Das ist eher so, als würde man das Problem vermeiden, als es tatsächlich beheben, aber es funktioniert erstmal. Das Problem beim Ändern der Version besteht darin, dass die neue Datei manuell abgelegt werden muss. Dies ist nicht ideal, aber möglicherweise wird die Arbeit zu einem späteren Zeitpunkt reibungsloser.

Ich habe die Rohpaketdatei über die Links in der Dokumentation gefunden, die ich in der Frage erwähnt habe. Für mich war die URL https://packages.microsoft.com/debian/9/prod/pool/main/m/msodbcsql17/ und das neueste paket war msodbcsql17_17.2.0.1-1_amd64.deb. Verwenden wget und dpgk Ich konnte das Paket installieren.

Die Dockerfile-Befehle, die zu den üblichen hinzugefügt wurden, waren:

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"
Felix
quelle
0

Ich befolgte die Anweisungen in der Microsoft-Dokumentation mit Python: 3.6-slim und es schien sich mit ein paar Einschränkungen korrekt zu installieren

Sie benötigen diese Pakete, um den Anweisungen zu folgen

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

Das Docker-Image hat keine Kräuselung, apt-transport-https ist erforderlich, um das Microsoft-Repository mit dem https-Protokoll zu verwenden, und gnupg2 ist für den Befehl apt-key erforderlich

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

und es sieht so aus, als würde hier eine /etc/odbcinst.ini hinzugefügt, die auf den Treiber verweist

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

Sie sollten also in der Lage sein, über den ODBC-Treiber "ODBC Driver 17 for SQL Server" eine Verbindung herzustellen

nijave
quelle