Hello Hisham,
Thanks for answering my questions, this is all helpful info.
Followups in-line below.

On Sat, Oct 3, 2015 at 2:37 PM, Hisham <h...@hisham.hm> wrote:
> On 2 October 2015 at 15:07, Eric Sproul <eric.spr...@circonus.com> wrote:
>> What I'm
>> wondering about is the function of the manifest file,
>
> Serving as a database for installed packages, so that both `luarocks`
> command-line commands work (i.e., can list what's already installed
> and resolve dependencies) and the optional "luarocks.loader" package
> loader is able to resolve dependencies.

OK, so that means multiple packages must share the manifest file for
the system tree that they deliver into.

>
>> and whether
>> luarocks supports a concept like Perl's MakeMaker "pure install",
>> which avoids creating a local log of what was installed.
>
> No, but one can do a self-contained install using --tree to point to
> an arbitrary directory, ensuring all changes are self-contained.

Understood; I'd actually discovered the --tree option after my
original post.  :)

> There are several approaches that could be used here. One of them
> would be to use luarocks strictly as a build tool, have it generate
> .rock files (they are relocatable by design) and then extract their
> contents (they are a zip file) and produce native packages. This is a
> mechanically automatable process. Look at flags such as --tree,
> --deps-mode and the `luarocks pack` and `luarocks unpack` commands.

Can LuaRocks do self-contained dependencies, a la npm?  In the node.js
world, we deliver packages of node modules where their specific
dependencies are co-located with the packaged module, so that multiple
dependent versions can be installed and won't conflict.

>
> A downside is that users won't be able to use LuaRocks themselves (ie,
> including their own rocks installed in their home directories and
> having those point to dependency rocks installed system-wide). A way
> to solve this is to install files with your tool mirroring the setup
> of files as installed by LuaRocks and then run `luarocks-admin
> make-manifest` to regenerate the global manifest (in your post-install
> hook or equivalent).

Oh, so a manifest can be rebuilt from the on-disk content in a tree?
That's nice.

> Ubuntu packages are the Debian packages, using a methodology which
> predates LuaRocks. Homebrew, for Mac OSX, for instance, currently
> bundles LuaRocks with their Lua package, AFAIK.

I see.  Well, I'm used to breaking new ground, and I think I have some
avenues to explore now.

Thanks again,
Eric

------------------------------------------------------------------------------
_______________________________________________
Luarocks-developers mailing list
Luarocks-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/luarocks-developers

Reply via email to