gnu-system-discuss
[Top][All Lists]
Advanced

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

Package managment on the GNU system


From: Leonardo Lopes Pereira
Subject: Package managment on the GNU system
Date: Sat, 10 Sep 2005 22:14:20 -0300

I am sorry to send my third mail about the same subject, but this is a
small definition wrote by AMS and improved by me after a dialog with
him.


** Package managment on the GNU system

This document outlines how the package management system will work and
be used on the GNU system.


* The package manager -- stowfs

The package manager on GNU is a file-system, so one will use normal
file-system commands to interact with it.

For example, the installation of a package would be done either by
making a symlinking/copying/moving the current binary tree to /stow or
using tools that will organize packages in your system and manage
dependencies.  So to
install a package on GNU, for example, we could execute the following
command:

# ln -s /directory/where/package/lives /stow/package
 
To uninstall the package, you just remove the symbolic link or
directoryin /stow that contains your package.  That is:

# rm /stow/package


* The Package Format

The project of the binary package was done to be very simple (compatible
to something created by a 'make install
DESTDIR=/somewhere/package-vers_N') and functional.

On packages we will have a SUMMARY directory, where you will find some
informations about the package. This directory is optional to turn
possible install packages directly from source (make install
DESTDIR=/stow/pack-vers_N).

The packages will have no pre/post-install/deinstall scripts.


* Configuration files -- kitten

When you edit a file in /etc, you will be interacting with the kitten
translator.  What happens when you save your changes back to the disk is
that your local changes will be stored in /stow/local/etc.  So you don't
really end up modifying the "virtual" file that lives in /etc.

What kitten does is something aking to `cat', i.e. it concattenates
several files into one (files from "/stow/*/etc" to be exact), but with
the extra feature of allowing you modify the conkittanated file as if it
was one big file.


* Dependencies -- not-named-yet

The dependency translator is really only useful to front ends (command
line, or GUI based).  It will read a file that contains a dependency
listing in /stow/package, and then calculate what dependencies are
missing (or not missing).  The information will then be stored in a file
in /stow.

Details pending on the format for dependency listings, the file that
will keep a listing of what dependencies are not fullfilled.


* Duplicated files

A problem that may apears when you put each package in one separated
directory is that some packages provides files with the same name.

Currently, Stowfs only merges the file of the first package, i.e. if we
have a /stow/a/bin/foo and a /stow/b/bin/foo, only /stow/a/bin/foo will
be merged and will apears on /bin/

A better solution may be implemented in stowfs, an option is
merge /stow/a/bin/foo as /bin/address@hidden and /stow/b/bin/foo as 
/bin/address@hidden
and, by default, create a symlink from the first (/bin/address@hidden)
to /bin/foo, but, if the user preffer, it can change this link to
appoint to /bin/address@hidden

If this files are config files (/etc/), this problem is solved by kitten
conkittanatening the files that have the same name.

-- 
---
leonardolopespereira at gmail.com

GNU Privacy Guard (GPG)
ID da chave: 83E8AFBF | servidor: keys.indymedia.org
gpg --keyserver keys.indymedia.org --recv-keys 83E8AFBF

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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