Ответ
Astra Linux основана на Debian, поэтому установка драйвера ODBC от Microsoft (msodbcsql) выполняется через официальный репозиторий Microsoft. Я делаю это так:
-
Импортирую ключ репозитория и добавляю сам репозиторий. Важно определить мажорную версию Debian (например, 11 для "Bullseye").
# Узнаем кодовое имя дистрибутива (например, 'orel' для Astra Linux SE 1.7) # Или определяем базовую версию Debian DEB_VERSION=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2) # Если не определяется, можно задать вручную, например, для Astra 1.7 это 'bullseye' # DEB_VERSION="bullseye" curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/$DEB_VERSION/prod $DEB_VERSION main" | sudo tee /etc/apt/sources.list.d/mssql-release.list -
Обновляю индекс пакетов и устанавливаю драйвер. Переменная окружения
ACCEPT_EULA=Yавтоматически принимает лицензионное соглашение.sudo apt-get update sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 # Для старых приложений может потребоваться также версия 17 # sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17 -
Проверяю установку, запрашивая список зарегистрированных драйверов ODBC:
odbcinst -q -d
На практике часто возникают нюансы:
- На Astra Linux может потребоваться предварительная установка пакетов
unixodbcиunixodbc-dev. - Если приложение требует специфичную версию драйвера, в команде установки нужно указать
msodbcsql17илиmsodbcsql13. - Для работы в изолированном контуре (без интернета) я заранее скачиваю
.deb-пакеты драйвера и его зависимостей на машину с доступом и переношу их для офлайн-установки черезdpkg -i.