Instalowanie sterownika Microsoft ODBC w Debianie

1

Więc moja apt-get install wraca z E: Unable to locate package msodbcsql (kod błędu 100). Próbuję uzyskać dostęp do bazy danych SQL Server za pomocą mojego systemu, a więc śledzę Instrukcje Microsoftu zainstalować sterownik dla systemu Linux.

Próbowałem określić wersję pakietu: apt-get install -y msodbcsql17 i używając pakietu dla Debiana 8 i 9. Próbowałem potwierdzić wersję systemu, ponieważ faktycznie buduję kontener Docker z Debian:stretch-slim -> Python:3.6-slimi skłaniam się ku Debianowi 8, ponieważ numer wersji w innych obrazkach jest wyraźnie 9.

Jakie mogą być moje opcje próbujące zainstalować pakiet? Inne sposoby lub kroki rozwiązywania problemów?

Z góry bardzo dziękuję. Jestem nowym użytkownikiem Linuksa w ogóle, więc wszelkie wskazówki są bardzo mile widziane!

Edytować

Według basha: cat /etc/debian_version moja wersja jest w rzeczywistości 9.5.

Felix
źródło

Odpowiedzi:

0

Jest to bardziej jak unikanie problemu niż naprawianie go, ale na razie działa. Problem polega na tym, że wersja wymaga ręcznego umiejscowienia nowego pliku, co nie jest idealne, ale może sprawię, że inne rzeczy będą działać płynniej.

Znalazłem plik pakietu surowego za pomocą linków podanych w dokumentacji, o której wspomniałem w pytaniu. Dla mnie adres URL był https://packages.microsoft.com/debian/9/prod/pool/main/m/msodbcsql17/ a najnowszy pakiet był msodbcsql17_17.2.0.1-1_amd64.deb. Za pomocą wget i dpgk Udało mi się zainstalować ten pakiet.

Polecenia pliku dokera, które dodawały się do zwykłych plików, były następujące:

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
źródło
0

Postępowałem zgodnie ze wskazówkami zawartymi w dokumentacji Microsoft, używając python: 3.6-slim i wyglądało na to, że poprawnie zainstalowałem się z kilkoma zastrzeżeniami

Te pakiety będą potrzebne, aby postępować zgodnie ze wskazówkami

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

Obraz Docker nie ma curl, apt-transport-https jest wymagany do korzystania z repo firmy Microsoft z protokołem https, a polecenie gnupg2 jest potrzebne do polecenia 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

wygląda na to, że dodaje /etc/odbcinst.ini, który wskazuje na sterownik

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

więc powinieneś być w stanie połączyć się przez sterownik ODBC „ODBC Driver 17 for SQL Server”

nijave
źródło