[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Lua Distributions and Package Management
- From: Peter Drahoš <drahosp@...>
- Date: Mon, 30 Sep 2013 11:15:52 +0200
On 30 Sep, 2013, at 10:00 , steve donovan <firstname.lastname@example.org> wrote:
> On Sun, Sep 29, 2013 at 6:11 PM, Philipp Janda <email@example.com> wrote:
>> I can understand that some people don't want to install the resulting files
>> in the rocks tree, but that can be achieved simply with a new luarocks
>> subcommand (something like `luarocks make` which doesn't check/download
>> dependencies and moves the resulting files into a subdirectory of the source
>> directory[*] instead of installing into the rocks tree).
> A good idea. Things get better now since LR can upgrade itself, at
> least on Unix.
>> Maybe we could also provide a standalone script (or module) that is easier
>> to install than luarocks (maybe some amalgamation of the necessary luarocks
>> source files packaged as a single standalone module/script), but that's as
>> far as I would go.
> That's a big job, and feels like a fragmenting move .... better to use
> a tool specialized in building (I naturally like Lake for this ;)) and
> a tool specialized for installing.
> Ordinary users would be more happy if all the common modules were
> already built as binaries for their platform, applies to both Windows
> and OS X I think. Then LR is a good delivery vehicle. LuaDist has an
> edge here, since it's an ambitious 'build-the-world' system and
> binaries come directly out of the process, which is why we would
> recommend the LD batteries for no-fuss installations. The two systems
> aren't necessarily in competition and could (and should) be harmonized
> at some point.
Exactly, LR is better Lua module distribution system for plain lua modules and is simpler to submit modules to. LD on the other hand does the heavy lifting and builds everything on almost all platforms in a uniform way. For plain lua modules LD is obviously overkill, thats why LR works better in this context on Unix platforms where the dependencies are managed by the host package manager. This is not as easy on Windows and OSX (without homebrew) where binary distribution is preferred. LD on the other hand has an advantage that it can generate standalone installations suitable for binary distribution of apps.
Both LD and LR are VERY similar in the way they operate, however there are some implementation differences that need to be cleared before both distributions are compatible. Eg. my work version of LD 2.0 has support for direct building of LR “builtin” type modules directly out of the LuaRocks module repository. It works well for most modules with simple dependencies but “Makefile” based rockspecs are basically useless and break things because of portability issues.