Step by Step Process to Install SQL Tools on Ubuntu Server running without Internet – Offline Installation

I have described step by step process to install Ubuntu 16.04 Server and Offline installation of SQL Server 2017 on Ubuntu server in my last articles. Here I will explain step by step process to install SQL Server tools (sqlcmd and bcp) on Ubuntu server where you had already installed SQL Server 2017. This article will describe the offline method to install SQL tools. The mssql-tools package which we will install contains two utilities:

  • sqlcmd: Command-line query utility.
  • bcp: Bulk import-export utility.

Before going ahead, we need a Ubuntu server and SQL Server 2017 running on that instance. If you have no idea about installing Ubuntu server or SQL Server 2017 or creating a virtual machine where you can install Ubuntu and SQL Server then i would recommend you to read below articles.

SQL Tools Installation on Ubuntu – Offline/Without Internet

Installing any package on Ubuntu Linux is straight forward method if your server has internet connection and able to access online repositories. But it becomes painful if your Ubuntu server has no access of internet. We generally call such installations as offline installation. Microsoft suggests below steps for offline installation of SQL Server Tools on Ubuntu server.

  • Download all sql tools related packages. i.e msodbc & mssql-tools
  • Move these downloaded packages to your Ubuntu Server.
  • Install the copied debian packages on the server.
  • Resolve Missing Dependencies, if you get any.
  • Set the Path environment Variables for this package.

Now we will follow step by step process with the screenshots that will help readers to understand this process.

Download & Copy SQL Tools Packages to Ubuntu Server

Before moving ahead let’s check whether SQL Server is installed or not on this machine. Run below command to check the SQL Server service.

#Check SQL Server Service
systemctl status mssql-server

check SQL Server Service on Ubuntu

We can see SQL Server is installed and running fine on this server. Now you can just type sqlcmd to check sql tool is installed or not. We can see it is not installed yet. As we can see SQL Tools are not installed so next step will package download and installation of that package.

Check sqlcmd

Let’s start with downloading the debian package for SQL Tools. You can download the required SQL Tools debian packages for Ubuntu from the attached link or from Microsoft Repositories. You can download these packages on a machine or PC that is connected to the internet. Below are the list of debian packages which needs to be downloaded to install sql tools.

  • msodbcsql_13.1.6.0-1_amd64.deb
  • mssql-tools_14.0.5.0-1_amd64.deb

SQL Tools package installation depends on msodbcsql package that must be installed first to avoid any dependency issue. Once package will be downloaded on your local PC, next step is to copy above downloaded packages to the Ubuntu server that are running without internet connection.

You can use any tool, application or method to copy this file from localhost to Ubuntu Linux server. I used WinSCP tool to copy this file from machine where i have downloaded the package to the Ubuntu Linux server. Make sure that there should be connectivity between both machine.

If you have not installed WinSCP yet, download and install it on your PC. Launch WinSCP tool and make a connection to Ubuntu server. I have explained about WinSCP in my last articles, you can follow it to get more details. Once you established the connection, WinSCP will look like below image.

Download SQL Tools Package

Now we just need to drag the downloaded debian packages from left side pane and drop it to right side pane to copy it to Ubuntu Linux server. Files are copied now and we can see them in both side panes.

move sql tool package to Ubuntu

You can see SQL Tools packages are copied to location \home\techyaz\ in above screenshot. Now we can connect to Ubuntu server and validate whether files are copied there or not.

Connect to Ubuntu server and check the files. You can run ls -lrt to check the files. Once packages will be copied to ubuntu server, next step is to first install msodbcsql package. Run below command to start the installation.

#Install msodbcsql package
sudo dpkg -i msodbcsql_13.1.6.0-1_amd64.deb

Here we will use dpkg package management system for installation because SQL Tools are debian packages for Ubuntu servers. We can see below dependencies error while executing msodbc package. Now our next step is to fix these dependency issues and then kick off the installation again.

install msodbc

Resolve Dependencies

We can see msodbcsql package depends on unixODBC package so first we need to download, move and install unixODBC package on Ubuntu server.

Resolving dependencies are painful job because every package has some dependencies and you need to download and install all such packages manually if you don’t have internet connection on Ubuntu server. If your Ubuntu server has internet connection, all dependencies will be installed using online repository.

Now let’s download and move unixODBC package to Ubuntu server. We can download all required debian packages from attached link.  We can see unixODBC package has been copied to the server now in below image.

Copy UnixODBC

Install this package now.

#Install unixODBC Package.
sudo dpkg -i unixodbc_2.3.1-4.1_amd64.deb

We can see this package has another dependency error. That means UnixODBC package is dependent on given packages i.e. libodbc1 & odbcinst1debian2.

unixodbc install error

When i downloaded libodbc1 and tried to install it, this package failed because of another dependency.

Libodbc1

We can see the dependent package in above image. I downloaded package libltdl7 and installed on Ubuntu server. libltdl7 package got installed successfully without any dependency error.

lbltdl7 installation

Once libltdl7 package will be installed, next step is to install all dependencies in reverse order. Here we will install libodbc1 then unixodbc followed by msodbcsql package.

libodbc1 install

We have seen, there were two dependencies to install unixODBC package. One libodbc1 has been installed. Please perform similar exercise to install another dependency odbcinst1debian2. Once both packages will be installed, go ahead and install unixodbc in order to install msodbcsql package.

If you want to check all dependencies for these packages, you can get it by running below command.

#Check dependencies of both packages.
dpkg -I msodbcsql_13.1.6.0-1_amd64.deb | grep "Depends:"
dpkg -I mssql-tools_14.0.5.0-1_amd64.deb | grep "Depends:"

If you have internet connection on your Ubuntu server then this task will be very easy to perform. You just need to execute below command to install unixodbc package.

#Install unixodbc on Ubuntu if server is connected to Internet.
sudo apt-get -f install unixodbc

unixodbc installation using internet

SQL Tools Installation

We have resolved all dependencies errors in above section. Now we will install SQL Tools to establish database connection to SQL Server instance from ubuntu server. Run below command to install the msodbcsql package again post resolving dependencies.

#Install msodbcsql Package
sudo dpkg -i msodbcsql_13.1.6.0-1_amd64.deb

Once you will execute above command, you will get below screen to accept the license terms. Choose Yes and press enter button to proceed.

msodbc installation

Once you press enter, package execution will start. You can see msodbcsql package is installed successfully now.

msodbc installation

Next we will install another package mssql-tools now. Run below command to start the installation.

#Install mssql-tools Package
sudo dpkg -i mssql-tools_14.0.5.0-1_amd64.deb

Again this package will ask you to accept the license terms just like msodbcsql package. Choose yes and press enter to proceed.

Install mssql tools

You cans see mssql-tools package is installed in below image.

install mssql tools

Final step is to set the path environment variables. Run below command to set the path environment variables. Ubuntu will not be able to recognize sqlcmd utility unless you set the path environment variable. You can see that in below screenshot. Ubuntu is able to recognize sqlcmd utility once we set the path environment variables.

#To make sqlcmd/bcp accessible from the bash shell for login sessions, modify your PATH in the ~/.bash_profile file
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

#To make sqlcmd/bcp accessible from the bash shell for interactive/non-login sessions, modify the PATH in the ~/.bashrc file
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

Patch variables

Now connect to SQL Server instance using sqlcmd and run a command to validate this installation. I have checked the SQL Server version installed on ubuntu server.

We get above details that SQL Server 2017 is installed on this Ubuntu server by executing sqlcmd utility. Now we have done with SQL Tools installation on Ubuntu server. Go ahead and connect to your Ubuntu server using SQL Tools.

Read more about SQL Server on RedHat Linux:

I hope you like this article. Please follow us on our facebook page and on Twitter handle to get latest updates.

Follow me:

Manvendra Deo Singh

I am working as a Technical Architect in one of the top IT consulting firm. I have expertise on all versions of SQL Server since SQL Server 2000. I have lead multiple SQL Server projects like consolidation, upgrades, migrations, HA & DR. I love to share my knowledge. You can contact me on my social accounts for any consulting work.
Manvendra Deo Singh
Follow me:

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *