Project: Apache Mesos (Orchestration & Management / Scheduling & Orchestration)
File: windows.md

title: Apache Mesos - Windows layout: documentation Mesos 1.0.0 introduced experimental support for Windows. Install the latest : The "Community" edition is sufficient (and free of charge). During installation, choose the "Desktop development with C++" workload. Install or later. During installation, choose to "Add CMake to the system PATH for all users". Install . If building from source, install . Make sure there are no spaces in your build directory. For example, `C:/Program Files (x86)/mesos` is an invalid build directory. If developing Mesos, install (not Python 2), in order to use our `support` scripts (e.g. to post and apply patches, or lint source code). Following are the instructions for Windows 10. git clone https://gitbox.apache.org/repos/asf/mesos.git cd mesos mkdir build cd build cmake .. -G "Visual Studio 15 2017 Win64" -T "host=x64" cmake --build . .\src\mesos-agent.exe --master=<master> --workdir=<work folder> --launcherdir=<repository>\build\src If you deploy the executables to another machine, you must also install the . The current implementation is known to have the following limitations: Only the agent should be run on Windows. The Mesos master can be launched, but only for testing as the master does not support high-availability setups on Windows. While Mesos supports NTFS long paths internally, tasks which do not support long paths must be run on agent whose `--work_dir` is a short path. The minimum versions of Windows supported are: Windows 10 Creators Update (AKA version 1703, build number 15063), and . It is likely that this will increase, due to evolving Windows container support and developer features which ease porting. The ability to as a non-admin user requires Developer Mode to be enabled. Otherwise the agent will need to be run under an administrator. Instead of using MSBuild, it is also possible to build Mesos on Windows using , which can result in significantly faster builds. To use Ninja, you need to download it and ensure `ninja.exe` is in your `PATH`. Download the . Unzip it and place `ninja.exe` in your `PATH`. Open an "x64 Native Tools Command Prompt for VS 2017" to set your environment. In that command prompt, type `powershell` to use a better shell. Similar to above, configure CMake with `cmake .. -G Ninja`. Now you can use `ninja` to build the various

You may want to use `ninja -v` to make it verbose, as it's otherwise very quiet. Note that with Ninja it is imperative to open the correct developer command prompt so that the 64-bit build tools are used, as Ninja does not otherwise know how to find them. This enables more unit tests, but we do not yet officially produce `mesos-master`. When building with Java on Windows, you must add the build tool to your path. The `JAVA_HOME` environment variable must also be manually set. An installation of the Java SDK can be found form . As of this writing, Java 9 is not yet supported, but Java 8 has been tested. The Java build defaults to `OFF` because it is slow. To build the Java components on Windows, turn it `ON`: ```powershell mkdir build; cd build $env:PATH += ";C:\...\apache-maven-3.3.9\bin\" $env:JAVAHOME = "C:\Program Files\Java\jdk1.8.0144" cmake .. -DENABLE_JAVA=ON -G "Visual Studio 15 2017 Win64" -T "host=x64" cmake --build . --target mesos-java ``` Note that the `mesos-java` library does not have to be manually built; as `libmesos` will link it when Java is enabled. Unfortunately, on Windows the `FindJNI` CMake module will populate `JAVAJVMLIBRARY` with the path to the static `jvm.lib`, but this variable must point to the shared library, `jvm.dll`, as it is loaded at runtime. Set it correctly like this: ``` $env:JAVAJVMLIBRARY = "C:\Program Files\Java\jdk1.8.0_144\jre\bin\server\jvm.dll" ``` The library may still fail to load at runtime with the following error: "The specified module could not be found." If this is the case, and the path to `jvm.dll` is verified to be correct, then the error message actually indicates that the dependencies of `jvm.dll` could not be found. On Windows, the DLL search path includes the environment variable `PATH`, so add the `bin` folder which contains `server\jvm.dll` to `PATH`: ``` $env:PATH += ";C:\Program Files\Java\jdk1.8.0_144\jre\bin" ``` When building with OpenSSL on Windows, you must build or install a distribution of OpenSSL for Windows. A commonly chosen distribution is . As of this writing, OpenSSL 1.1.x is supported. Use `-DENABLE_SSL=ON` to build with OpenSSL. Note that it will link to OpenSSL dynamically, so if the built executables are deployed elsewhere, that machine also needs OpenSSL installed. Beware that the OpenSSL installation, nor Mesos itself, comes with a certificate bundle, and so it is likely that certificate verification will fail.