mesos-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From CCAAT <>
Subject Re: Building portable binaries
Date Sun, 20 Sep 2015 17:42:45 GMT
On 09/19/2015 07:06 PM, F21 wrote:
> Hey James,
> Thanks for sharing the ebuild! I spun up gentoo as a docker container
> and copied the ebuild to
> /usr/local/portage/clustering/mesos/mesos-0.22.0.ebuild.

Hello F21,

First, apologies for not setting up a more appropriate repo. Github
is on my 'todo' list. I code command line and work mostly on
isolated systems, as an old school coder.

I'm no VM nor container concierge  so for those types of setups, you are 
going to have to find expertise, documents and such elsewhere. You would 
be best advise to join the gentoo-user community to access a very deep 
and wide bench of experts, all centric to gentoo. There are numerous 
forums and irc channels too.

Traditionally, Gentoo puts the portage tree into /usr/portage. The 
ebuilds tarballs are downloaded to /usr/portage/distfiles for raw 
storage by the ebuild. Some are now using /var/portage/.

I use /usr/local/portage to hack new ebuilds before allowing others
to test. With gentoo you can put things where you like, but some 
adjustments need to be made. When I roll all of this out it will be
much easier to just point to an overlay and install from there. But,
I have yet to put an overlay up. Here is one for zookeeper::

[U] sys-cluster/zookeeper
      Available versions:  (~)3.4.6^mb[3] (~)3.4.6[2] (~)3.4.6^mb[5] 
(~)3.4.6-r1^mb[1] {ELIBC="FreeBSD" PYTHON_TARGETS="python2_7"}
      Installed versions:  3.4.6^mb[2](02:35:35 PM 
09/19/2015)(ELIBC="-FreeBSD" PYTHON_TARGETS="python2_7")
      Description:         ZooKeeper is a high-performance coordination 
service for distributed applications.

* sys-cluster/apache-zookeeper [4]
      Available versions:  ~3.3.6^mb {ELIBC="FreeBSD"}
      Description:         ZooKeeper is a high-performance coordination 
service for distributed applications.

[1] "jackslap" /usr/local/portage
[2] "ultrabug" /var/lib/layman/ultrabug
[3] "fw-overlay" layman/fw-overlay
[4] "gentoo-zh" layman/gentoo-zh
[5] "ultrabug" layman/ultrabug

You can see others are hacking on creating a 100% build from source 
solution for clustering. 'jackslap' is my local repo, which I just email 
to you.    I also subscribe to ultrabug's overlay repo, using the layman 
tools to installation. Overlays have their own tree locations that can 
vary from actual gentoo maintained servers, to github, to private 
machines for developers, hackers and any other folks that code.
Gentoo has many derivative distros, some roll binaries, others are on a 
rolling release, just like gentoo. Since the 'systemd wars', the fact 
that gentoo has a robust "openrc" alternative to systemd means that
part of our developer community is growing very fast with new talent
and old coders alike. As more folks roll out clusters, kernel tuning,
a lost art for regular users at all major distros, is going to become 
quintessentially important to get the best performance out of your 
cluster/cloud. The way gentoo is set up, you can use an endless variety 
of boot/kernel semantics to fit your needs. We have very robust tools
for kernel performance studies available with gentoo.

I work strictly on real hardware. I'm a 'bare metal' kind of EE hack.
That said, if you are serious about gentoo, my recommendation' would
be to use older hardware until you get everything working and figured
out what you want to do. Then VM, Container, Cloud or get new/cheap 
cluster gear like aarch64 (arm64). YMMV depending on your goals.

> However, when I run ebuild mesos-0.22.0.ebuild manifest, it throws an
> error about the metadata:
> Appending /usr/local/portage to PORTDIR_OVERLAY...
> Error(s) in metadata for 'clustering/mesos-0.22.0':
>    DEPEND: Invalid atom (.keep), token 12
>    RDEPEND: Invalid atom (.keep), token 7

Make sure you do not have simple errors do to command line mistakes
in your copy process. Those errors are explained  more fully in the 
gentoo Devmanual. Depends are codes that are needed to compile your 
mesos. RDEPENDS are runtime dependencies. Some codes are both.

> Any ideas why this might be happening?

Gentoo is not for the faint of heart. It is for those robust users
or for folks that really want to learn deeply how things work. The
great news about gentoo, although many will argue negatively, is that
in clusters, you can get 2-10% performance increase by minimizing codes,
particularly stripped and optimized kernels. Over hundreds of CPUs
that's going to be a huge performance difference. Gentoo had a very rich
echo system of distributed processing years ago. Most of those folks 
took there expertise to corporations for exploit and let gentoo's
position in clustering languish. What gentoo needs now more than ever
are java coders, as the team is excellent, but under staffed, atm.

Now there is a very robust team of arm64 devs, a veritable who's who,
working bring gentoo to arm64. Others like myself are more focused on 
the bare metal approach that works well for clusters, distributed 
embedded systems, rock  solid security and superior performance per watt 
of power consumed.

You are most welcome to join us. Have you ever installed gentoo, on a 
actual system?  Right now, the pedantic approach dominants at Gentoo
via the arduous 'gentoo handbook'. I'd strongly suggest you endure
that pain, to become functionally literate with Gentoo. Several folks 
are working on rapid install semantics for Gentoo on a myriad for 
hardware architectures.


> Cheers!
> On 20/09/2015 4:35 AM, CCAAT wrote:
>> Hey F21,
>> The ebuild is attached. Hopefully I'll be setting up github for this
>> and other ebuilds I have been hacking on. I'm not a dev, but debugging
>> these ebuilds in not difficult [1].
>> Please let me know how this ebuild works for you. I never tested it
>> extensively....
>> James
>> On 09/17/2015 11:09 PM, F21 wrote:
>>> That sounds really interesting! I am just in the process of spinning up
>>> a gentoo vm.
>>> Would you mind sharing your ebuild for mesos-0.22.0 via a gist on
>>> Github?
>>> On 18/09/2015 12:58 PM, CCAAT wrote:
>>>> On 09/17/2015 06:33 PM, F21 wrote:
>>>>> Is there anyway to build portable binaries for mesos?
>>>> You should try out gentoo linux, everything is built from sources.
>>>> Ebuilds guide the process. My (hack) ebuild for mesos-0.22.0 was
>>>> 61 lines. That's it. I will roll out a 0.24 ebuild, in a few weeks
>>>> or less.
>>>> Gentoo is designed from the ground up to build form sources. We have
>>>> a rich 'cross-compile' environment for things like aarch64; so building
>>>> mesos for arm64 is mostly trivial, once the 0.24 ebuild is rolled out.
>>>> There a bit of reading, but the gentoo 'devmanual' pretty much guides
>>>> you through the process [1]. Gentoo also has a great package manager.
>>>> Here is a (very profane) rant/comparison of some common package
>>>> managers
>>>> and their inherent weaknesses [2]. If you want to see how simple the
>>>> gentoo ebuild for mesos-0.22 is just ask. It fetches, unpacks, compiles
>>>> and installs the package, very neatly. And there is lots of help and
>>>> encouragement from a long list of talented devs.
>>>> Gentoo is not for the weak minded or folks that do not wish to master
>>>> the deep details of linux. caveat emptor. CoreOS uses much of gentoo
>>>> in it's build/management, if that option helps.
>>>> hth,
>>>> James
>>>> [1]
>>>> [2]

View raw message