Как я могу установить драйвер ODBC 13 для SQL Server на Travis CI? - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь настроить непрерывную интеграцию в частном репозитории github, используя Travis CI для поддержки пакета R. Есть модульные тесты, которые подключаются к SQL, поэтому мне нужно установить ODBC Driver 13 for SQL Server. Я пробовал несколько подходов со всего Интернета, но безрезультатно. Проблема, которую я получаю, заключается в том, что в какой-то момент Трэвис пытается вызвать сервер ODBC, который возвращает:

[unixODBC][Driver Manager]Data source name not found, and no default driver specified

Итак, вот некоторые решения, которые я пытался не использовать:

  - wget https://download.microsoft.com/download/2/E/5/2E58F097-805C-4AB8-9FC6-71288AB4409D/msodbcsql-13.0.0.0.tar.gz -P ..
  - tar xvzf ../msodbcsql-13.0.0.0.tar.gz -C ..
  - sed -i '14d' ../msodbcsql-13.0.0.0/build_dm.sh
  - sed -i '/tmp=/ctmp=/tmp/odbcbuilds'  ../msodbcsql-13.0.0.0/build_dm.sh  
  - ../msodbcsql-13.0.0.0/build_dm.sh --accept-warning

дает:

[0K$ wget https://download.microsoft.com/download/2/E/5/2E58F097-805C-4AB8-9FC6-71288AB4409D/msodbcsql-13.0.0.0.tar.gz -P ..
--2019-03-14 16:28:05--  https://download.microsoft.com/download/2/E/5/2E58F097-805C-4AB8-9FC6-71288AB4409D/msodbcsql-13.0.0.0.tar.gz
Resolving download.microsoft.com (download.microsoft.com)... 23.35.205.15, 2600:1404:27:783::e59, 2600:1404:27:78d::e59
Connecting to download.microsoft.com (download.microsoft.com)|23.35.205.15|:443... connected.
HTTP request sent, awaiting response... 404 Not Found

достаточно честно ... ссылка не работает. Следующий подход:

 - sudo su
 -  sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-xenial-release/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list'
 - sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893

^ не может претендовать на sudo таким образом, и очевидно, что без sudo ничего не работает. Следующий подход:

addons:
  apt:
    packages:
      - libudunits2-dev

script:
  - docker run --net=host -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Passw0rd' -d microsoft/mssql-server-linux:2017-latest
  - echo "Running docker for commit $TRAVIS_COMMIT"

Кажется, это тоже не работает. Также пробовал случайные версии докера:

- docker pull microsoft/mssql-server-linux:2017-latest

На данный момент я в основном пытаюсь получить все, что смогу. Любые другие предложения?

РЕДАКТИРОВАТЬ: Вот результат ответа Яна:

enter image description here

1 Ответ

0 голосов
/ 16 марта 2019

Попробуйте эти команды для установки последней версии:

apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y curl add-apt-key apt-transport-https
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssqlrelease.list
apt-get update
ACCEPT_EULA=Y DEBIAN_FRONTEND=noninteractive apt-get install -y msodbcsql mssql-tools

Установлено msodbcsql пакетов после этих команд:

$ apt list --installed | grep msodbcsql

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

msodbcsql/xenial,now 13.1.9.2-1 amd64 [installed]
msodbcsql17/xenial,now 17.3.1.1-1 amd64 [installed,automatic]

Если вам нужна точная версия 13.0.0.0, то вы будетенеобходимо настроить версии установленных пакетов.

...