--- title: Install on SQL Server 2022 for Linux titleSuffix: SQL Server Machine Learning Services description: "Learn how to install SQL Server 2022 Machine Learning Services on Linux: Red Hat, Ubuntu, and SUSE." author: WilliamDAssafMSFT ms.author: wiassaf manager: rothja ms.date: 05/24/2022 ms.topic: how-to ms.prod: sql ms.technology: machine-learning-services monikerRange: ">=sql-server-ver16||>=sql-server-linux-ver16" ms.custom: - intro-installation --- # Install SQL Server 2022 Machine Learning Services (Python and R) on Linux [!INCLUDE [SQL Server 2022 - Linux](../includes/applies-to-version/sqlserver2022-linux.md)] This article guides you in the installation of [SQL Server Machine Learning Services](../machine-learning//sql-server-machine-learning-services.md) on Linux. Python and R scripts can be executed in-database using Machine Learning Services. You can install Machine Learning Services on Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), and Ubuntu. For more information, see [the Supported platforms section in the Installation guidance for SQL Server on Linux](sql-server-linux-setup.md#supportedplatforms). ::: moniker range="<=sql-server-linux-ver15" > [!IMPORTANT] > This article refers to [!INCLUDE[sssql22-md](../includes/sssql22-md.md)]. For SQL Server 2019 on Linux, see to [Install SQL Server 2019 Machine Learning Services (Python and R) on Linux](sql-server-linux-setup-machine-learning.md). ::: moniker-end ## Pre-install checklist * [Install SQL Server on Linux](sql-server-linux-setup.md) and verify the installation. * Check the SQL Server Linux repositories for the Python and R extensions. If you already configured source repositories for the database engine install, you can run the **mssql-mlservices** package install commands using the same repo registration. * You should have a tool for running T-SQL commands. * You can use [Azure Data Studio](../azure-data-studio/download-azure-data-studio.md), a free database tool that runs on Linux, Windows, and macOS. ## Package list On an internet-connected device, packages are downloaded and installed independently of the database engine using the package installer for each operating system. The following table describes all available packages, but for R and Python, you specify packages that provide either the full feature installation or the minimum feature installation. Available installation packages for SQL Server 2022 on Linux: | Package name | Applies-to | Description | |--------------|----------|-------------| |mssql-server-extensibility | All | Extensibility framework used to run Python and R. | ## Install on RHEL TODO ```bash sudo yum install mssql-server-extensibility ``` TODO ## Install on Ubuntu Refer to [Quickstart: Install SQL Server and create a database on Ubuntu](quickstart-install-connect-ubuntu.md) for SQL Server 2022 on Linux installation. Then, use the following steps to install SQL Server Machine Learning Services on Ubuntu: - [Install R on Ubuntu](#install-r-on-ubuntu) - [Install Python on Ubuntu](#install-python-on-ubuntu) ### Install R on Ubuntu The following commands register the repository providing the R language platform. > [!Tip] > If possible, run `apt-get update` to refresh packages on the system prior to installation. 1. Begin installation as root. ```bash sudo su ``` 2. Optionally, if your system does not have the `https apt transport` option: ```bash apt-get install apt-transport-https ``` 3. Set the location of the package repo the "prod" directory containing the distribution. This example specifies 20.04. Replace with 16.04 or 14.04 if you want those versions. ```bash wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb ``` 4. Register the repository. ```bash dpkg -i packages-microsoft-prod.deb ``` 5. Update packages on your system (required). ```bash apt-get update ``` 6. Install the SQL Server extensibility feature. ```bash apt-get install mssql-server-extensibility ``` 7. Download and install the version of R that is desired. Choose a version of R 4.2 or higher, [available for download directly from cran.r-project.org](https://cran.r-project.org/). Follow the instructions for the desired runtime. 8. Install CompatibilityAPI and RevoScale R dependencies. There are two options to perform this, from the R terminal of the version you have installed. ```r # R Terminal install.packages("iterators") install.packages("foreach") install.packages("R6") install.packages("jsonlite") ``` 11. Download the [CompatibilityAPI for Linux](https://go.microsoft.com/fwlink/?LinkID=2193925). 12. Install the CompatibilityAPI for Linux, using the following shell script. ```r install.packages('CompatibilityAPI.tar.gz', repos = NULL) ``` 13. Download [RevoScaleR Linux](https://go.microsoft.com/fwlink/?LinkID=2193829). 14. Install RevoScaleR Linux. ```r install.packages('RevoScaleR.tar.gz', repos = NULL) ``` 15. Verify RevoScaleR installation from the R terminal. ```r library("RevoScaleR") ``` 16. Configure the installed R runtime with SQL Server for Linux. ```bash sudo /opt/mssql/bin/mssql-conf set extensibility rbinpath /path/to/RHOME/lib/R/bin/R sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /path/to/RHOME/ systemctl restart mssql-launchpadd.service ``` 17. Configure SQL Server for Linux to allow external scripts using the `sp_configure` system stored procedure. ```sql EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE GO ``` 19. Verify the installation by executing a simple T-SQL command to return the version of R: ```sql EXEC sp_execute_external_script @script=N'print(R.version)',@language=N'R'; GO ``` ### Install Python on Ubuntu 1. Begin installation as root. ```bash sudo su ``` 2. Update packages on your system (required). ```bash apt-get update ``` 3. Install the SQL Server extensibility feature. ```bash apt-get install mssql-server-extensibility ``` 4. Download and install the version of Python that is desired. Choose a version of Python 3.10 or higher, [available for download directly from python.org](https://docs.python.org/3/using/unix.html). Follow the instructions for the desired runtime. 5. Download [revoscalepy for Linux](https://go.microsoft.com/fwlink/?LinkID=2193830). 6. Install revoscalepy for the root user. ```bash sudo -H pip install revoscalepy.whl ``` 7. Verify the revoscalepy installation from the python terminal. Verify the library can be imported. ```python import revoscalepy ``` 8. Configure the installed python runtime with SQL Server. This step will differ based on what option you chose in step 2. To verify the installation from source: ```bash sudo /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/local/bin/python3.10 sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/local/ ``` To verify the installation from `apt install`: ```bash sudo /opt/mssql/bin/mssql-conf set extensibility pythonbinpath /usr/bin/python3.10 sudo /opt/mssql/bin/mssql-conf set extensibility datadirectories /usr/local/:/usr/local/lib/python3.10/dist-packages ``` 9. Restart the Launchpad service. ```bash systemctl restart mssql-launchpadd.service ``` 10. Configure SQL Server for Linux to allow external scripts using the `sp_configure` system stored procedure. ```sql EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE GO ``` 11. Verify the installation by executing a simple T-SQL command to return the version of python: ```sql EXEC sp_execute_external_script @script=N'import sys;print(sys.version)',@language=N'Python'; GO ``` ## Install on SUSE Linux Installation for SQL Server 2022 (Preview) Machine Learning Services for SUSE Linux Enterprise Server (SLES) v15 is currently not supported. ## Install Java To install the Java language extension, see [Install SQL Server Java Language Extension on Linux](sql-server-linux-setup-language-extensions-java.md). ## Verify installation To validate installation: * Run a T-SQL script that executes a system stored procedure invoking Python or R using a query tool. * Execute the following SQL command to test R execution in SQL Server. Errors? Try a service restart, `sudo systemctl restart mssql-server.service`. ```sql EXEC sp_execute_external_script @language =N'R', @script=N' OutputDataSet <- InputDataSet', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO ``` * Execute the following SQL command to test Python execution in SQL Server. ```sql EXEC sp_execute_external_script @language =N'Python', @script=N' OutputDataSet = InputDataSet; ', @input_data_1 =N'SELECT 1 AS hello' WITH RESULT SETS (([hello] int not null)); GO ``` ## Unattended installation Using the [unattended install](sql-server-linux-setup.md#unattended) for the Database Engine, add the packages for mssql-mlservices and EULAs. Use one of the mlservices-specific EULA parameters for the open-source R and Python distributions: ```bash sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml ``` The complete EULA is documented at [Configure SQL Server on Linux with the mssql-conf tool](sql-server-linux-configure-mssql-conf.md#mlservices-eula). ## Offline installation Follow the [Offline installation](sql-server-linux-setup.md#offline) instructions for steps on installing the packages. Find your download site, and then download specific packages using the package list below. > [!Tip] > Several of the package management tools provide commands that can help you determine package dependencies. For yum, use `sudo yum deplist [package]`. For Ubuntu, use `sudo apt-get install --reinstall --download-only [package name]` followed by `dpkg -I [package name].deb`. ### Download site TODO Download packages from [https://packages.microsoft.com/](https://packages.microsoft.com/). All of the mlservices packages for Python and R are colocated with database engine package. Base version for the mlservices packages is 9.4.6. ### RHEL/8 paths |Package|Download location| |--|----| | mssql/mlservices packages | [https://packages.microsoft.com/rhel/8/mssql-server-2019/](https://packages.microsoft.com/rhel/8/mssql-server-2019/) | ### Ubuntu/20.04 paths |Package|Download location| |--|----| | mssql/mlservices packages | [https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/](https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/) | Select extensions you want to use and download the packages necessary for a specific language. The filenames include platform information in the suffix. ## Next steps Python developers can learn how to use Python with SQL Server by following these tutorials: + [Python tutorial: Predict ski rental with linear regression in SQL Server Machine Learning Services](../machine-learning/tutorials/python-ski-rental-linear-regression-deploy-model.md) + [Python tutorial: Categorizing customers using k-means clustering with SQL Server Machine Learning Services](../machine-learning/tutorials/python-clustering-model.md) R developers can get started with some simple examples, and learn the basics of how R works with SQL Server. For your next step, see the following links: + [Quickstart: Run R in T-SQL](../machine-learning/tutorials/quickstart-r-create-script.md) + [Tutorial: In-database analytics for R developers](../machine-learning/tutorials/r-taxi-classification-introduction.md)