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

Re: [RFC] userdeb - user accounts as .debs



Hi Michael,

Thanks for the info and for explaining your model.

On Sat May 16, 2009 at 06:42:35PM +0200, Michael Stapelberg wrote:

> > I've been looking for a solution to the problem of duplicating my
> > user environment across different machines. My search has included
> > anything I could find between the extremes of "manual copying" to
> > "cfengine", but until now I've not been lucky in finding anything
> > that integrates nicely with Debian.
>
> I follow a similar approach to the one you proposed, but without
> building new debian packages for each time some configuration
> changes.

Hmmm... I think your approach is quite a specific solution to the
problem, and it is similar to what I've been doing in the past as well.
Whereas I'm now trying to solve things in a larger way. 

My goal or use case is not entirely limited to "duplicating _my_ user
environment across different machines" as I wrote above. I am actualy
seeking the ability to package up the environment of any user on any
machine. What that gives me is a quick path to productivity after a
clean install *and* a kind of a backup *and* the ability to _integrate_
an environment regardless of which system it is, and not just for _my_
account. I apologise for not explaining this better in my first mail,
although I'm not sure this is an improvement :-(

It is a key difference though: You start with a central repository
which is distributed ('git pulled' if you like) to existing user
accounts with no possibility of Debian actions (git hooks instead?),
and I start with the user accounts -> to create the copy, which can be
reinstalled where desired with proper postinst scripts.

> Instead, I have one debian package called ms-essential which depends
> on the tools I need for working (zsh, screen, git-core, vim).
> Additionally, it creates /etc/ms-essential and checks out the git
> repository containing my configuration files into this folder.
>
> Every user on the machine who wants to use the configuration files
> can now call /etc/ms-essential/initialize.sh. This script moves away
> the old configuration files and creates symbolic links into the git
> tree.

You have quite a high setup cost - the manual creation of the remote
respository, which is also a dependency outside the package system.
Your essentials package was no doubt written painstakingly by hand. If
someone else wants to make use of your work they have to copy your
repos, learn your code, patch in their changes and so on, and they
won't receive the benefit of any future changes you make. I'm trying to
make this a generic solution that doesn't require a user or
administrator to delve into the policy manual, and that still
completely works within the package system.

Interesting idea though with fetching/storing configuration files via a
revision control system. I think it would be worthwhile investigating
the use of branches to capture the differences between hosts.

Cheers,
Mark.
-- 
Mark Lawrence

Attachment: signature.asc
Description: Digital signature


Reply to: