4 Installation

In this section we discuss how to install and setup the MOSEK Rmosek package.

Important

Before running this MOSEK interface please make sure that you:

  • Installed MOSEK correctly. Some operating systems require extra steps. See the Installation guide for instructions and common troubleshooting tips.

  • Set up a license. See the Licensing guide for instructions.

Compatibility

The Rmosek package can be used with R version at least 3.6.

Locating files in the MOSEK Optimization Suite

The relevant files for the Rmosek package are organized as reported in Table 4.1.

Table 4.1 Relevant files for the Rmosek package.

Relative Path

Description

Label

<MSKHOME>/mosek/10.1/tools/platform/<PLATFORM>/rmosek

Rmosek install files

<RMOSEKDIR>

<MSKHOME>/mosek/10.1/tools/examples/rmosek

Examples

<EXDIR>

<MSKHOME>/mosek/10.1/tools/examples/data

Additional data

<MISCDIR>

where

  • <MSKHOME> is the folder in which the MOSEK Optimization Suite has been installed,

  • <PLATFORM> is the actual platform among those supported by MOSEK, i.e. win32x86, win64x86, linux64x86 or osx64x86.

4.1 System requirements

There are no pre-compiled binary versions of the Rmosek package available, so the system must be able compile C++ source code and have access to a few command line tools. The summary of relevance to the Rmosek package given below is based on the official guide, R Installation and Administration, for installing packages in source form.

Windows

  • Download Rtools (not an R package). You will need to install the R toolset, the Cygwin DLLs, and the toolchain.

  • Make sure you have mosek and the executables of Rtools on the PATH environment variable.

MacOS

  • Make sure you have Xcode installed.

Linux

  • On Ubuntu (and Debian) you may install the r-base-dev package.

4.2 Installation

To install the Rmosek package you may run the install.rmosek function of the script <RMOSEKDIR>/builder.R. This is a wrapper around the install.packages function with recommended default argument values (e.g., to a compatible MOSEK repository), cross-platform support of configurations variables, and helpers to resolve Rtools on Windows. As example, if called with no arguments, it will attempt an autoconfigured installation:

source("<RMOSEKDIR>/builder.R")
attachbuilder()
install.rmosek()

You can inspect the autoconfigured defaults by typing show(install.rmosek). Apart from the typical arguments of install.packages, a user might want to change:

  • MSK_BINDIR: The location of the MOSEK library to compile against; e.g., mosek/<MSKVER>/tools/platform/<PLATFORM>/bin.

  • using_pkgbuild: Whether to run the installation in the build-friendly environment of package pkgbuild (helps, e.g., to resolve Rtools on Windows).

  • using_sysenv: Whether to transmit configuration variables via Sys.setenv() as opposed to configure.vars (depends on platform support).

4.3 Testing the Installation

First of all, to check that the Rmosek package was properly installed, start R and try

require("Rmosek")

The installation can further be tested by running some of the enclosed examples. Open a terminal, change folder to <EXDIR> and use R to run a selected example, for instance:

R -f lo1.R

4.4 Troubleshooting

Compilation errors caused by symbols from the Matrix package

Compilation errors such as

rmsk_obj_matrices.cc:50:9: error: use of undeclared identifier 'Matrix_isclass_Csparse'
    if (Matrix_isclass_Csparse(val)) {
                   ^
rmsk_obj_matrices.cc:171:9: error: use of undeclared identifier 'Matrix_isclass_triplet'
   if (Matrix_isclass_triplet(val)) {
                   ^

are caused by a temporary incompatibility that existed between Rmosek and the Matrix package in versions 1.6.2 and 1.6.3.

The solution is to upgrade the Matrix package to at least version 1.6.4 and use Rmosek version at least 10.1.23.

An alternative solution for users of older Rmosek versions is to downgrade the Matrix package to version at most 1.6.1.