During the past couple of weeks I have set out to learn more about Docker and how I can incorporate it more into development processes to automate and standardize workflows. I have been using a small AWS Linux EC2 instance based on a Amazon Linux AMI. I wanted to use
mssql-tools to connect to a SQL Server instance running inside a container. It did not appear that
mssql-tools were installed on the machine at the time (In retrospect, it may just have been that I did not have the bin directory set up properly in my
The steps below were a result of figuring out how to install mssql-tools on the Linux instance. Along the way I learned a little about
yum and repository priorities. Let’s dig in…
My first step when trying to use
sqlcmd was to check the verion
sqlcmd | grep Version
It appeared to be not installed, which is what led me to figuring out how to install it.
As I mentioned before, I should have verified for sure that it was not installed and just not in my
PATH yet. Lesson learned!
Uninstall previous version
Although I didn’t think there was a previous version to uninstall, I decided to continue to follow the full installation instructions from Microsoft, which included uninstalling of
sudo yum remove mssql-tools unixODBC-utf16-devel
Install current version
The next step for me was to install
Download the repository configuration file from Microsoft
sudo su curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo exit
sudo yum install mssql-tools unixODBC-devel
Most interesting was the message:
2 packages excluded due to repository priority protections
Time to do some digging.
yum repository priorities
Given my very limited experience with
yum, I did a quick search and found the documentation for yum priorities. The usage sections stated “Packages from repositories with a lower priority will never be used to upgrade packages that were installed from a repository with a higher priority.”. This seemed to be the first indication I was on the right path.
Given that the plugin appeared to be installed and active on this install of Linux, I located the location of the configuration file (/etc/yum/pluginconf.d/priorities.conf) and updated the following line from
Side note: While writing this post I came across some documentation from Amazon explains why this is on by default for Amazon Linux AMI’s and suggests there is an alternate way around this problem to allow for other repositories. See AWS documentation.
Side note #2: There is an old Centos thread related to
yum-priorities that is also worth reading.
With the plugin now disabled, I was successfully able to install
unixODBC-devel and accepts the licensce terms.
Lastly, I added the bin directory for sqlcmd to my
bash PATH in the
…and confirmed the install.
During my search, I came across a post by Kagarlickij Dmitriy. He provides a nice shell script to check your version, turn off yum priorities, and install mssql-tools. Github repository
Featured image by Cesar Carlevarino Aragon @ unsplash.com