From: Francois Berenger <berenger@riken.jp>
To: caml-list@inria.fr
Subject: Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)
Date: Thu, 30 May 2013 14:11:51 +0900 [thread overview]
Message-ID: <51A6DF97.5010602@riken.jp> (raw)
In-Reply-To: <1804446.xtBoISCFl2@groupon>
On 05/30/2013 02:05 PM, Chet Murthy wrote:
>
> I'm glad we're having this discussion.
>
> On Thursday, May 30, 2013 06:52:25 AM Malcolm Matalka wrote:
>> I think out would be wrong for opam to try to solve this problem. There
>> are already many tools available for deploying (Ansible, Puppet, Chef,
>> Fabric, Capistrano). Such a later can be build on top of opam of need be.
>
> I think this is incorrect. Let me explain.
>
> (1) when we look at deploying complex collections of code/libs/data
> onto multiple machines, usually we assume that the code has already
> been built.
>
> (2) but let's first dispatch the case where the code has -not- been
> built. In such a case, I presume you're proposing that the code be
> built on each machine, yes?
>
> (a) this drastically increases the CPU required to perform upgrades
> and deploys
>
> (b) but far, far, far more importantly, it means that on each
> machine, a nontrivially complex script runs that builds the actual
> installed binaries. If that script contains -any- nondeterminism or
> environmental sensitivity, it could produce different results on
> different machines. The technical term is "version skew".
(c) that's too damn slow
> In scale-out systems, this sort of "skew" is absolutely fatal, because
> it means that machines/nodes are not a priori interchangeable. And
> all of fast-fail fault-tolerance depends on nodes being
> interchangeable.
>
> (3) But let's say that what you really mean is that we should use
> tools like puppet/chef/capistrano to copy collections of
> binaries/libs/data to target machines and install them. These
> scripts/recipes are written by some person. You could have equally
> well suggested that that person build Debian packages (or RPMs) of
> each OPAM package, writing out all the descriptions and manifests.
>
> And manually specifying all dependencies and requiremeents.
>
> Either way, that person is doing a job that OPAM already does a lot
> of, and does quite well. Gosh, wouldn't it be nice if OPAM could
> generate those RPMs? Well, it's a little more complicated than that,
> but really, not much more. The complexity comes in that you -might-
> (I'm not saying I have this part figured out yet) want ways to
> -generalize- (say) the camlp5 package so that it could be installed on
> many different base OPAM installations.
>
> But setting aside that nice-to-have, imagine that OPAM knew how to
> generate RPMs from each package it installed, and from the ocaml+opam
> base itself. You combine those, and you can:
>
> (i) install ocaml, opam, and a bunch of packages
>
> (ii) push a button, and out come a pile of RPMs, along with
> dependencies amongst them (and hopefully on the relevant
> environmental RPMs (e.g., libpcre-dev for pcre-ocaml, etc) so that
> you can just stuff those RPMs into a YUM repo, go to a second box,
> and say
>
> "yum install opam ocaml pcre-ocaml"
>
> and get everything slurped down and installed, just as if OPAM had
> installed it all, package-by-package.
>
> --chet--
>
> P.S. And this doesn't even get into the unsuitability of chef/puppet
> for managing software package installation. There's a reason that no
> distro uses such schemes to install the large and complex sets of
> packages needed to run amodern Linux box. And why there is no Linux
> version of Microsorft's "DLL Hell". Linux distros by and large (and
> esp Debian and Ubuntu) have worked hard to make package installation
> foolproof -- and chef/puppet etc are anything but.
>
>
next prev parent reply other threads:[~2013-05-30 5:11 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-23 23:53 [Caml-list] OCaml's variables oliver
2013-05-24 9:01 ` Arnaud Spiwack
2013-05-24 23:30 ` oliver
2013-05-24 23:53 ` Siraaj Khandkar
2013-05-25 0:40 ` oliver
2013-05-25 5:14 ` Wojciech Meyer
2013-05-25 11:04 ` oliver
2013-05-25 11:49 ` Gabriel Scherer
2013-05-25 12:04 ` oliver
2013-05-25 12:30 ` David Allsopp
2013-05-25 22:42 ` oliver
2013-05-25 23:24 ` Lukasz Stafiniak
2013-05-25 22:57 ` oliver
2013-05-25 16:53 ` Kristopher Micinski
2013-05-25 22:44 ` oliver
2013-05-26 15:00 ` oliver
2013-05-26 18:38 ` Malcolm Matalka
2013-05-26 21:49 ` Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) Oliver Bandel
2013-05-27 7:40 ` Mr. Herr
2013-05-27 8:37 ` Fabrice Le Fessant
2013-05-27 20:21 ` Mr. Herr
2013-05-27 20:36 ` Török Edwin
2013-05-27 21:10 ` Mr. Herr
2013-05-28 1:15 ` Francois Berenger
2013-05-28 18:32 ` Mr. Herr
2013-05-28 18:39 ` Malcolm Matalka
2013-05-28 18:50 ` Anil Madhavapeddy
2013-05-28 19:24 ` Mr. Herr
2013-05-28 22:00 ` Paolo Donadeo
2013-05-28 22:17 ` Mr. Herr
2013-05-28 22:43 ` Paolo Donadeo
2013-05-29 20:48 ` Mr. Herr
2013-05-29 21:11 ` Malcolm Matalka
2013-05-29 22:02 ` Mr. Herr
2013-05-29 22:10 ` Malcolm Matalka
2013-05-30 0:51 ` Francois Berenger
2013-05-30 0:45 ` Francois Berenger
2013-05-30 0:57 ` Chet Murthy
2013-05-30 1:09 ` Francois Berenger
2013-05-30 4:52 ` Malcolm Matalka
2013-05-30 5:04 ` Francois Berenger
2013-05-30 5:05 ` Chet Murthy
2013-05-30 5:11 ` Francois Berenger [this message]
2013-05-30 6:02 ` Malcolm Matalka
2013-05-30 6:36 ` Francois Berenger
2013-05-30 6:47 ` Malcolm Matalka
2013-05-30 22:41 ` Chet Murthy
2013-05-31 5:27 ` Malcolm Matalka
2013-05-31 13:32 ` Mike Lin
2013-06-03 1:15 ` Francois Berenger
2013-05-30 13:49 ` oliver
[not found] ` <20130530.091844.2217058886454447597.Christophe.Troestler@umons.ac.be>
2013-05-30 7:23 ` [Caml-list] Re: Problems to get larger user base Mihamina Rakotomandimby
2013-05-30 7:51 ` OPAM binary packages (was Re: Problems to get larger user base ... (Re: [Caml-list] OCaml's variables)) Thomas Gazagnaire
2013-05-27 8:53 ` Problems to get larger user base ... (Re: [Caml-list] OCaml's variables) Erik de Castro Lopo
2013-05-27 12:38 ` Mr. Herr
2013-05-27 12:56 ` Paolo Donadeo
2013-05-27 20:35 ` Mr. Herr
2013-05-27 20:57 ` Paolo Donadeo
2013-05-28 1:17 ` Francois Berenger
2013-05-28 2:44 ` oliver
2013-05-28 3:40 ` Francois Berenger
2013-05-28 4:05 ` Norman Hardy
2013-05-28 12:51 ` oliver
2013-05-28 4:08 ` Norman Hardy
2013-05-28 12:36 ` oliver
2013-05-29 6:12 ` Mihamina Rakotomandimby
2013-05-29 7:31 ` Fabrice Le Fessant
2013-05-29 2:39 ` Jeff Meister
2013-05-29 2:51 ` Francois Berenger
2013-05-29 2:57 ` Jeff Meister
2013-05-29 7:50 ` Török Edwin
2013-05-29 3:06 ` oliver
2013-05-28 18:51 ` Mr. Herr
2013-05-28 19:06 ` Anthony Tavener
2013-05-28 19:47 ` Mr. Herr
2013-05-29 2:25 ` Francois Berenger
2013-05-28 4:20 ` Erik de Castro Lopo
2013-05-28 18:59 ` Mr. Herr
2013-05-29 3:08 ` Erik de Castro Lopo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51A6DF97.5010602@riken.jp \
--to=berenger@riken.jp \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox