Jay Taylor's notes

back to listing index

deric/mesos-deb-packaging

[web search]
Original source (github.com)
Tags: mesos github.com
Clipped on: 2015-10-07

Skip to content

HTTPS clone URL

You can clone with
Mesos package for Debian, Ubuntu
Shell Makefile
Quickly jump between files Compare, review, create a pull request
Branch: master
centos New post* scripts for EL7 to handle systemd a year ago
debian removed service auto-restart logic 10 months ago
default ulimit for max processes, pending signals and opened files - these op… 10 months ago
fedora added systemd init scripts 10 months ago
init add executable flag 5 months ago
redhat added systemd init scripts 10 months ago
runit fixed runit master's log redirection 9 months ago
systemd set KillMode to process instead of cgroup, remove redundant Restart 7 months ago
ubuntu added post scripts for ubuntu 5 months ago
upstart fix path to mesos-master 5 months ago
.gitignore Merge remote-tracking branch 'mesosphere/master' 5 months ago
LICENSE.txt added license, updated readme 2 years ago
Makefile Let there be Make. 2 years ago
README.md revert build-version 3 months ago
build_mesos remove unnecessary dependency 2 months ago
copyright initial commit 3 years ago
mesos-init-wrapper Merge remote-tracking branch 'mesosphere/master' 5 months ago
mvn_install_jar removing toor dir 2 years ago

README.md

Mesos packaging

Mesos is a cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks. See Mesos website for more details.

NOTE: if you build Mesos on system with e.g.  libcurl4-nss-dev  it will be hardlinked to this implementation library. On Debian  libcurl-dev  is the virtual package for:

  •  libcurl-dev 
  •  libcurl4-nss-dev 
  •  libcurl4-openssl-dev 

GCC compatibility

Mesos version \ GCC gcc 4.4 gcc 4.6 gcc 4.7 gcc 4.8 gcc 4.9
0.20
0.21
0.22

Mesos is compiled with C++11 support.

Mesos configuration

Mesos arguments could be specified by creating files structure in  /etc/mesos-slave  or in  /etc/mesos-master .

For specifing e.g.  --isolation=cgroups  you would create

normal  /etc
    /mesos-slave
      isolation       # with contents 'cgroups'
normal

In similar manner you can restrict hardware resources used by mesos-slave:

normal  /etc
    /mesos-slave
      /resources
        cpu          # with contents e.g. '5'
normal

Building package

Build deb package for Debian/Ubuntu with following:

normal./build_mesos --repo https://git-wip-us.apache.org/repos/asf/mesos.git?ref=0.15.0 --version 0.15.0
normal

or supply just  ref  to tag in the (default) repo:

normal./build_mesos --ref 0.22.1 --build-version p1
normal

Debian Wheezy

Default gcc on Wheezy is 4.7 which isn't compatible with Mesos >= 0.21. A workaround is using gcc 4.6 which could be used along with 4.7:

normalapt-get install gcc-4.6 g++-4.6
normal

just specify  cxx  and  cc  flags:

normal./build_mesos --ref 0.21.1-rc2 --build-version 1 --cxx "g++-4.6" --cc "gcc-4.6"
normal

Compiled gcc from source

See gcc instructions.

normalexport LD_LIBRARY_PATH="/root/gcc-4.8.4/lib64"
export LD_RUN_PATH="/root/gcc-4.8.4/lib64"
export PATH="/root/gcc-4.8.4/bin:$PATH"
normal

Requirements

Debian Jessie

  • install following packages

    normal$ sudo apt-get install build-essential ruby2.1 ruby2.1-dev rubygems
    $ gem install fpm
    $ sudo apt-get install build-essential python-dev autoconf automake git make libssl-dev libtool libsasl2-dev
    normal
  • some version of  libcurl-dev  (provided by multiple packages)
  • Mesos >= 0.21
    • Debian:  libapr1-dev libsvn-dev 

Debian Wheezy

normal```
$ sudo apt-get install ruby1.9.1 ruby1.9.1-dev build-essential
$ gem install fpm
$ sudo apt-get install build-essential python-dev autoconf automake git make libssl-dev libtool libsasl2-dev
```
normal
  • Java support
    • e.g.  openjdk-7-jre-headless ,  openjdk-7-jdk  , maven 
  • Python packages

    • Debian:  python-setuptools 
  • Mesos >= 0.14

    • Debian:  libsasl2-dev 
  • Mesos >= 0.21
    • Debian:  libapr1-dev libsvn-dev 

Puppet

Package could be automatically configured by a Puppet module

Authors

  • Tomas Barton
  • Jason Dusek
  • Jeremy Lingmann
  • Chris Buben