Installation des Microsoft ODBC-Treibers unter Debian

598
Felix

Also meine apt-get installRückgabe mit E: Unable to locate package msodbcsql(Fehlercode 100). Ich versuche, mit meinem System auf eine SQL Server-Datenbank zuzugreifen, und folge daher den Anweisungen von Microsoft, um deren Treiber für Linux zu installieren.

Ich habe versucht, die Paketversion anzugeben: apt-get install -y msodbcsql17und das Paket für Debian 8 und 9 zu verwenden. Ich habe versucht, die Systemversion zu bestätigen, da ich tatsächlich einen Docker-Container aus baue Debian:stretch-slim -> Python:3.6-slimund ich mich auf Debian 8 neige. weil die Versionsnummer in anderen Bildern explizit 9 ist.

Welche Optionen könnte ich bei der Installation des Pakets haben? Andere Möglichkeiten oder Schritte zur Fehlerbehebung?

Vielen Dank im Voraus. Ich bin neu in Linux im Allgemeinen, daher werden alle Hinweise sehr geschätzt!

Bearbeiten

Laut bash: cat /etc/debian_versionmeine version ist eigentlich 9.5.

1

2 Antworten auf die Frage

0
Felix

Dies ist mehr wie das Vermeiden des Problems als das Beheben des Problems, aber es funktioniert im Moment. Das Problem ist, die Version zu ändern, erfordert den manuellen Speicherort der neuen Datei, was nicht ideal ist, aber vielleicht werde ich die Dinge zu einem anderen Zeitpunkt reibungsloser funktionieren lassen.

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 msodbcsql17_17.2.0.1-1_amd64.deb. Mit wgetund habedpgk ich dieses Paket installiert.

Die Dockerfile-Befehle fügten das Übliche hinzu:

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" 
0
nijave

Ich folgte den Anweisungen in der Microsoft-Dokumentation unter Verwendung von Python: 3.6-slim und schien sich mit einigen Vorbehalten 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 kein curl, apt-transport-https ist erforderlich, um das Repo von Microsoft 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 füge eine /etc/odbcinst.ini hinzu, die auf den Treiber zeigt

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 daher über den ODBC-Treiber "ODBC-Treiber 17 für SQL Server" eine Verbindung herstellen können