Michael Homer wrote: > I am wondering about that too. "Alien" is a bit too incomprehensible to stand > on its own, but I'm not sure what generic term there is for all of those > package managers as a class. I've used "alien" and "third-party" in the text; > I guess "domain-specific" could cover it too. Perhaps "Aliens: Integrating > domain-specific package managers with distribution package management > systems"? > It's a bit wordy.
"programming-language-specific" is even wordier :-( hmm... > Follows the abstract as I currently intend to submit it - 403 words, > emphasising the novel. Please give any feedback you have (everybody! all of > it!); I will submit it early tomorrow. > This paper describes a mechanism for incorporating the third-party package > managers (such as LuaRocks, RubyGems, CPAN, ...) that have become > increasingly > common into the distribution's package management system. > > These package managers are very convenient for authors, often now the only > obvious means of distribution for interpreted languages. is there anything distinctive about them being interpreted? Haskell (Cabal/Hackage) is usually compiled, and I think some Perl modules have C parts, etc. etc. > However, they do not > integrate with the distribution's package manager at all. The individual > components may all be packaged up and installed, but the packages will > inevitably be out-of-date and many will remain unpackaged entirely. There may be conversion scripts. Don Stewart maintains everything on Haskell's Hackage (~1000 packages) for Arch Linux, which are usually almost-up-to-date (a few days) because Arch also uses a rolling-release scheme. (And because the package metadata files were designed to have enough information; some of the domain-specific package management systems are probably worse at various things.) Nevertheless your point is taken that such integration is not quite direct. > Because of this, users are tempted to install their own trees for these alien > package systems – either built under /usr/local or worse, allowed to pollute > the main tree and create conflicts with the system package manager. I think $HOME is at least as common. It doesn't allow sharing between users though. All these systems might go out-of-date when the system is upgraded though. Or when you migrate your HOME to a system with different architecture (x86 vs. x86-64 for example) > In either > case, there is no integration between the alien system and that provided by > the distribution – they are agnostic of each other's existence, and a > distribution package requiring Ruby-GTK+ cannot have their dependency > satisfied > by a Ruby Gem. This leads users to be forced to choose between their > distribution manager and the third-party system, to the detriment of both. and the user who migrates around between distros (including Windows) may long for a familiar, language-specific, interface. > The Aliens system was developed to bridge this gap within GoboLinux, a > distribution with an alternative filesystem hierarchy, but is not tied to any > particular distribution. A third-party (“alien”) package management system > can > be incorporated in order to be fully integrated with the distribution's > package management, with each requiring only a wrapper using a defined > generic > protocol. This structure should be transferable to other distributions, and > such transfer is encouraged. Did we try implementing it? I anticipate unexpected lacks-of-functionality in various alien package managers (though we can probably ask upstream to implement some of the accidentally-missing functionality when it's not too hard) > Each alien package manager, such as LuaRocks, is given full control of a > subtree in the system, here /System/Aliens/LuaRocks. The user may manipulate > this using the ordinary `luarocks` command, following instructions from the > library author's website or elsewhere. However, a program within the system > package manager may also depend on the presence of a Lua library available > through LuaRocks, as part of its ordinary package dependencies. There is no > overhead of repackaging or keeping the wrapped package up-to-date with new > releases. maybe worth mentioning what happens when Lua is upgraded and some Rocks may go out of date / stop working. In Gobo we had the idea of maybe /System/Aliens/LuaRocks-5.1/ or similar. Many other distros are not so friendly to the multiple-versions thing (although Debian sometimes does it e.g. multiple versions of Python, 2.5 and 2.6 etc., though there's only one version of GHC(haskell compiler); and Gentoo has a "slots" system that it uses for a few packages). > The entire Aliens subsystem is independent of the overlying distribution > package manager and should be transferable into any other system, provided > only that a few hooks into dependency resolution and installation can be > provided. It is hoped that this may be more widely applicable than just this > distribution, and it does not depend on any of the filesystem or other > changes > included in it. it is hoped that the idea could be useful. Maybe possible for the concept; details would need to be shaped for each distro's system depending on their particular needs/desires. Anyway, worth exploration, if you/we can write a paper about it... -Isaac _______________________________________________ gobolinux-devel mailing list gobolinux-devel@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel