Nano Hash - криптовалюты, майнинг, программирование

Драйвер ODBC Microsoft SQL Server в Linux Ubuntu 14.04: неправильная версия библиотеки

Мне не удалось подключиться к серверу MS-SQL через драйвер Microsoft ODBC для Linux. Сообщения об ошибках ниже:

isql mydsn myuser mypw -v

[01000][unixODBC][Driver Manager]Can't open lib '/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0' : file not found

Однако сообщение выше не рассказывает всю историю. Посмотрим, что нам может сказать ldd:

ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0)
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0)
        [...]

(Я устанавливаю это на образ Docker, чтобы Caravel могла подключаться к базам данных MS-SQL — см. файл Docker, образ Docker для Caravel)


Ответы:


1

Приведенные ниже команды установят правильную версию libstdc++.so.6 (на основе этот ответ):

echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' > \
/etc/apt/sources.list.d/ubuntu-toolchain-r-test-trusty.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F
apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y

Поэтому, если вы начинаете с нуля на Ubuntu 14.04, эти команды установят UnixODBC, драйвер ODBC Microsoft SQL Server для Linux и все необходимые зависимости:

echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' > \
    /etc/apt/sources.list.d/ubuntu-toolchain-r-test-trusty.list && \
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F && \
    apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y && \
    apt-get install -y build-essential libssl-dev libffi-dev \
    curl ca-certificates libgss3 && \
    locale-gen en_US.utf8 && dpkg-reconfigure locales

mkdir -p /tmp/ms-sql && (cd /tmp/ms-sql && curl 'https://download.microsoft.com/download/2/E/5/2E58F097-805C-4AB8-9FC6-71288AB4409D/msodbcsql-13.0.0.0.tar.gz' \
  -H 'Referer: https://www.microsoft.com/en-us/download/confirmation.aspx?id=50419' --compressed | \
  tar --strip-components=1 -xzv && \
  sed -ri -e 's/wget/curl/g' -e's/(\s*)\$\(curl[^)]+\)/\1curl -fsSL "$dm_url" -o "$dm_package_path"/' \
  -e '/make install/,$ d' build_dm.sh && echo '(cd $tmp/$dm_dir && make install)' >> build_dm.sh && \
  echo YES | ./build_dm.sh --accept-warning --libdir=/usr/lib/x86_64-linux-gnu && \
  ./install.sh install --accept-license) && \
  sed -rie 's/\[.+SQL Server\]/[MS-SQL]/' /etc/odbcinst.ini
16.05.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..