Hi, I am Yashwanth, an intern working with Bill at Twitter. I set up mesos on my computer, running Ubuntu 13.04, from scratch using the instruction on the website http://mesos.apache.org/gettingstarted/ and I found a few errors in the instructions. I will be submitting a review for things in the repository, but couldn’t find the sources for the website to modify them directly.
The Errors with the Initial Build:Building mesos from Ubuntu 13.04 Following http://mesos.apache.org/gettingstarted/ Nice-to-have: instructions for Debian-based distributions (apt-get rather than yum). Satisfying prerequisites in Ubuntupython26-devel $ sudo apt-get python2.6-dev libz for libcurl Error: We need libz for libcurl; you can avoid this with --without-curl, but it will mean executor and task resources cannot be downloaded over http. Fix: $ sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev libcppunit $ sudo apt-get install libcppunit-dev Downloading MesosCloning from repository Error: The git clone command returns: Fatal: Could not read from remote repository. Please make sure you have the correct access rights Fix: $ git clone git://git.apache.org/mesos.git Running tar.gz http://apache.mirrors.pair.com/incubator/mesos/mesos-0.12.0-incubating/ Running make Error: src/base/linuxthreads.cc: In function ‘void ListerThread(ListerParams*)’: src/base/linuxthreads.cc:312:24: error: invalid conversion from ‘void (*)(int, siginfo_t*, void*)’ to ‘void (*)(int, siginfo*, void*)’ [-fpermissive] No Fix Running From git repository git://git.apache.org/mesos.gitRunning ./bootstrap Error: Autoreconf may not be installed. Fix: $ sudo apt-get install autoconf Error: Makefile.am:27: Libtool library used but `LIBTOOL' is undefined Makefile.am:27: The usual way to define `LIBTOOL' is to add `LT_INIT' Makefile.am:27: to `configure.ac' and run `aclocal' and `autoconf' again. Makefile.am:27: If `LT_INIT' is in `configure.ac', make sure Makefile.am:27: its definition is in aclocal's search path. autoreconf: automake failed with exit status: 1 Fix $ sudo apt-get update && sudo apt-get install autotools-dev libltdl-dev libtool autoconf autopoint Fix found at https://answers.launchpad.net/ubuntu/+source/autoconf/+question/213854 Running Example Frameworks and Testing BuildLaunching a slave Suggestion: $ bin/mesos-slave.sh --master=192.168.0.1:5050 The above command assumes the local IP is 191.168.0.1. ‘localhost’ is more generally-applicable. Running C++ Test Framework Error: Command $ src/test-framework 192.168.0.1:5050 doesn’t work *** Error only for C++ example. Java and Python examples work fine. Fix: Change command to $ src/test-framework --master=localhost:5050 Bill also had me create a framework from scratch using the documentation provided and I have a few suggestions that would help make understanding mesos easier. Suggestions: Suggestion 1 As I was going through the API and the examples none of the Objects were clearly explained. A link or a path to the meso.proto file and an explanation detailing how it works would make understanding the mesos code a lot easier. Suggestion 2 Understanding the examples was difficult at first, since it was the first time I was looking at how mesos worked. An explanation after every few chunks of code would make the learning process a lot easier. Other than that I felt like the documentation was really well done, and I learned a lot from it. Finally I have some suggestions for the website. Website SuggestionsSuggestion 1 The contribution guidelines link on http://mesos.apache.org/community/points to the guidelines markdown page in the incubator repository, and at a specific SHA. It would be best to use the non-incubator page at master: https://github.com/apache/mesos/blob/master/docs/Mesos-developers-guide.md Suggestion 2 The contribution guidelines describe a manual ReviewBoard creation, but the developers actually use support/post-reviews.py. Updating the guidelines to match the developer workflow would be nice. Overall it was a nice experience learning about mesos. Thank You. ~Yashwanth Nannapaneni
