web-dev-qa-db-ja.com

MicrosoftのインストールODBCドライバをDebianに

したがって、私のapt-get installE: Unable to locate package msodbcsql(エラーコード100)を返します。私は自分のシステムでSQL Serverデータベースにアクセスしようとしているので、Linux用のドライバーをインストールするには Microsoftの指示 に従います。

パッケージバージョンを指定してみました:apt-get install -y msodbcsql17とDebian 8と9の両方のパッケージを使用してみました。実際にDebian:stretch-slim -> Python:3.6-slimからDockerコンテナーを構築しているので、システムバージョンを確認しようとしました。 、そして他のイメージのバージョン番号が明示的に9であるため、私はDebian 8に傾いています。

パッケージをインストールしようとする私のオプションは何でしょうか?トラブルシューティングの他の方法または手順?

よろしくお願いします。私はLinuxを初めて使うので、どんなポインタでも大歓迎です!

編集する

Bashによると:cat /etc/debian_version私のバージョンは実際には9.5です。

4
Felix

これは実際に問題を修正するというよりは問題を回避することに似ていますが、今のところ問題はありません。問題は、バージョンの変更で新しいファイルの手動での場所が必要になることです。これは理想的ではありませんが、おそらくよりスムーズに機能するようになります。

質問で述べたドキュメントに記載されているリンクを使用して、未加工のパッケージファイルを見つけました。私にとってのURLはhttps://packages.Microsoft.com/debian/9/prod/pool/main/m/msodbcsql17/、最新のパッケージはmsodbcsql17_17.2.0.1-1_AMD64.debwgetおよびdpgkを使用 私はなんとかそのパッケージをインストールできました。

通常に追加されるdockerfileコマンドは次のとおりです。

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
Felix

私はpython:3.6-slimを使用してMicrosoftのドキュメントの指示に従いましたが、いくつかの警告があり、正しくインストールされているように見えました

指示に従うには、これらのパッケージが必要です

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

Dockerイメージにはカールがなく、httpsプロトコルでMicrosoftのリポジトリを使用するにはapt-transport-httpsが必要で、apt-keyコマンドにはgnupg2が必要です

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

これは、ドライバーを指す/etc/odbcinst.iniを追加するように見えます

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

「ODBC Driver 17 for SQL Server」経由で接続できるはずですODBC driver

3
nijave