[Installit-dev] "package manager " becomes "InstallIt"

Jannis Pohlmann info at sten-net.de
Wed Aug 24 13:58:41 CEST 2005


Benedikt Meurer schrieb:
> Benedikt Meurer wrote:
> 
>>My attempt was to let the user choose a prefix under which everything is 
>>installed (including the installer/uninstaller information itself). I 
>>think this should be the way for the new InstallIt too. On first run, 
>>ask the user to select a toplevel directory where all stuff gets 
>>installed (you'll need some magic here to set sysconfdir to "/etc" in 
>>case the user selects "/usr", and the like, but that's easy and you can 
>>check the existing code to avoid trapping into the same wholes as I did :-).
> 
> 
> The problem with this attempt was, that it doesn't integrate easily with 
> every packaging system. So, on a second thought, I'd suggest to ask the 
> user whether he wants to use a packaging system on first startup, e.g.
> 
>   (*) RPM
>   ( ) DEB
>   ( ) Solaris Package Management
>   ( ) BSD Package Management
>   ( ) Custom installation prefix: [____________]
> 
> You can easily autodetect the available package management system and 
> preselect it:
> 
>   1. If pkgadd is available, select "Solaris Package Management"
>   2. If pkg_add is available, select "BSD Package Management"
>   3. If dpkg is available, select "DEB"
>   4. If rpm is available, select "RPM"
>   5. Select "Custom installation prefix" and default to "/usr/local" if 
> writable, else fallback to "$HOME/local"
> 
> There are some systems missing from the above list, which may be added 
> later (e.g. Darwin Ports, Gentoo Package Management, Lunar Package 
> Management or Win32/Cygwin). In general the package/installation backend 
> should be kept modular and easy to extend/exchange, with a well defined 
> API implemented by the various backends.
> 
> So, if for example, the user selects "RPM", InstallIt will query the 
> settings from the local RPM system (sysconfdir, prefix, etc.) and use 
> that. If the user selects "DEB", InstallIt will use the hardcoded values 
> from the Debian Policy (sysconfdir is "/etc", prefix is "/usr", etc.). 
> For "Solaris Package Management", prefix will be "/usr/local" or 
> "/opt/i2t", preferrably "/usr/local". For "BSD Package Managment" prefix 
> will be set to whatever pkg basedir is selected (usually "/usr/local" 
> for Free/OpenBSD/DragonFly, "/usr/pkg" for NetBSD) by parsing the 
> make.conf/mk.conf.
> 
> Of course, binary packages can only be installed if the appropriate 
> package management system is selected: E.g. I can only install .rpm's if 
> I selected "RPM" earlier, likewise I can only install .tgz's/.tbz's if I 
> selected "BSD", and so on.

Thanks, those information are a great help.

Do you think of building binary packages out of all source packages when
the user selects RPM or something like that on startup? So no source
installation into the system, just building packages suitable for the
platform and install them? Your words make me guess so, but that will be
difficult since we'd have to look into all package management formats, then.

I'd prefer installing source as source and binaries as binaries. Sources
would have to be tracked on a test installation in order to uninstall
them later. Binaries could be just removed by using the platform's
package manager once again.

Regards,
Jannis



More information about the Installit-dev mailing list