momh

Installer Microsoft SQL Server sur Ubuntu 22.04

Dans le cadre de ma formation de Concepteur développeur d’application auprès de ENI École, je vais ête amené à étudier le SQL et à le mettre en pratique sous Microsoft SQL Server.

Microsoft fournit un paquet mssql-server pour Ubuntu 20.04 ainsi qu’une documentation bien faite concernant son installation et les premiers pas sous SQL Server. Cependant, l’installation sous Ubuntu 22.04 se heurte à différents soucis...

Signature du dépôt

Pour éviter d’avoir un avertissement concernant l’utilisation de apt-key, il convient de procéder différemment pour importer la clé du dépôt. On commence par télécharger la clé fournie, avant de la convertir et de la conserver dans le répertoire /usr/share/keyrings/ :

wget https://packages.microsoft.com/keys/microsoft.asc
gpg --dearmor microsoft.asc
mv microsoft.asc.gpg /usr/share/keyrings/microsoft.gpg
rm microsoft.asc 

Ensuite, la déclaration du dépôt diffère quelque peu ; dans un fichier /etc/apt/sources.list.d/mssql-20_04.list, il convient de lui préciser la clé à utiliser :

deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-mssql.gpg] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019 focal main

libldap

Le premier souci provient d’une dépendance à libldap dans sa version 2.4, alors qu’Ubuntu 22.04 ne propose plus que la version 2.5.

La solution est alors de télécharger le paquet d’une version d’Ubuntu précédente depuis le site ubuntu packages puis de l’installer (la commande ci-dessous peut être différente, notamment en cas d’architecture autre que amd64) :

sudo apt install ./Téléchargements/libldap-2.4-2_2.4.49+dfsg-2ubuntu1.9_amd64.deb

Le paquet mssql-server devrait désormais s’installer sans autre problème.

libcrypto.so & libssl.so

Lors de l’installation à proprement parler de SQL Server avec la commande

sudo /opt/mssql/bin/mssql-conf setup

​on se heurte à une erreur puisqu’il ne trouve pas ces deux bibliothèques libcrypto.so et libssl.so dans le répertoire /opt/mssql/lib/.

La solution que j’ai retenue dans mon cas, parmi celles proposées sur ce sujet du forum de learn.microsoft.com, est d’utiliser celles fournies par les Snap core20 et de créer des liens symboliques ; dans mon cas :

sudo ln -s /snap/core20/1587/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 libcrypto.so
sudo ln -s /snap/core20/1587/usr/lib/x86_64-linux-gnu/libssl.so.1.1 libssl.so

Il suffit de relancer alors l’installation

sudo /opt/mssql/bin/mssql-conf setup

et ce devrait être bon !

Outils en ligne de commande

Microsoft propose deux outils en ligne de commande pour interagir avec SQL Server : sqlcmd et bcp.

Pour les installer, il convient de définir un nouveau dépôt, mettons dans le fichier /etc/apt/sources.list.d/msprod.list :

deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-mssql.gpg] https://packages.microsoft.com/ubuntu/20.04/prod focal main

Ensuite :

sudo apt update
sudo apt install mssql-tools unixodbc-dev

Plutôt que d’ajouter le répertoire /opt/mssql-tools/bin à mon $PATH, j’ai choisi de me créer deux alias.

Mais l’on peut aussi utiliser l’outil Azure Data Studio disponible également sous Ubuntu.