chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Re: Experience of using Chicken in production environmen


From: Ivan Shmakov
Subject: [Chicken-users] Re: Experience of using Chicken in production environment
Date: Wed, 15 Apr 2009 23:30:43 +0700
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

>>>>> felix winkelmann <address@hidden> writes:

[...]

 >> 4. What is it? What can I do with it??

 >> Target systems reside in separate network, there's no access to
 >> Internet, unless I setup connection via GSM modem. Thus I need to
 >> fetch all necessary files, bring them there, copy them on target
 >> systems and install.  Obvious. Not so obvious, when you're doing it.

 >> First, you don't have recursive fetch. Workaround: install all what
 >> you need on development system, list extensions, _guess_
 >> corresponding eggs' names, fetch those, bring them on the scene,
 >> and... get busted.  You cannot pass neither distributed file name
 >> nor name of directory with downloaded files to "chicken-setup"
 >> tool. It simply doesn't support it.

 > The format of the .meta files in the repository practically screams
 > out for automatic processing. You could take an egg-tree and easily
 > collect all necessary information to roll your own deployment
 > infrastructure.

        Hopefully, I'd have some spare time to look at these issues.

        There's more to it than making mirrors alone.  Nearly always
        there'd be project-specific libraries, which may be of somewhat
        less tested code, and thus unsuitable for the main Chicken
        extensions repository.  The infrastructure created for the
        distribution of extensions, or packages, is thus generally
        expected to have some way of getting the packages out of
        multiple sources (and, if the versions of the packages conflict,
        to allow for the version obtained from some source to take
        precedence.)

        IIUC, Chicken lacks such a facility.

[...]

 >> 5. Where's it???

 >> I haven't run into this problem yet, but where's download cache or
 >> how can I turn it on?

 > Chicken 3 has no download cache. "chicken-setup" is not a full
 > package manager like "dpkg" and people should not expect it to be
 > one.  Chicken-4 hasn't one either but can be used to provide
 > something comparable. Alternatively we can cram the egg-tools full of
 > features that fit nobody perfectly and are eternally bug-ridden.

        That's the point, chicken-setup isn't a modular solution, like
        dpkg, but instead seemingly aims to be an all-in-one tool which
        tries to do it all.  In particular, dpkg never tries to connect
        to a remote server to get a suitable file, nor it does try to
        calculate the list of packages to fullfil the dependencies of a
        particular package to be installed.  To my mind, doing all the
        work in a single tool is a sure way to complicate the things,
        not to make them simpler.

        What are the facilities that Debian users use to deal with
        packages?  There are several:

        * dpkg -- roughly, it does the following:

          + checking the dependencies, so that an attempt to install a
            package without one will fail, unless overriden;

          + unpacking the package files into the destination directory
            (often: /);

          + registering the package within the database (AKA `status'
            file), to pave the way for the packages dependent of the one
            being installed;

          + running the scripts provided with the package;

        * implemented on top of dpkg, APT allows for the following
          steps:

          + fetch the ``list'' of the packages off a configured source;

          + calculate the set of the dependencies required to install
            the requested package (taking the current state of the dpkg
            database into account, as well as the current state of the
            ``list'' fetched earlier);

          + fetch the files;

          + run dpkg to have them installed;

        * finally, there're several programs to facilitate mirroring
          (apt-mirror, apt-cache, etc.) and to help maintain
          ``personal'' repositories (e. g., mini-dinstall.)

        Obviously, given that there're an approach that's proven to work
        well in a similar domain (Debian packages), and that there is a
        problem with the current state of the affairs in Chicken, I'll
        be asking those interested to at least consider that approach.

[...]

        FWIW, for my ``production environment'' task, done in Chicken,
        I've ended up having a place in a filesystem where all the
        binaries and relevant libraries reside, compiled once and
        forever.  It doesn't look like a clever solution, but it at
        works.

-- 
FSF associate member #7257




reply via email to

[Prev in Thread] Current Thread [Next in Thread]