From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?5a6L5paH5q2m?= Subject: Re: First guix impressions Date: Sat, 26 Sep 2015 16:54:20 +0800 Message-ID: <87d1x54l37.fsf@gmail.com> References: <2e2ee8b4a357b09ec06a2025e54676f4@openmailbox.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38180) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZflEN-00025n-Gf for guix-devel@gnu.org; Sat, 26 Sep 2015 04:53:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZflEK-0004uE-8K for guix-devel@gnu.org; Sat, 26 Sep 2015 04:53:19 -0400 Received: from mail-pa0-x235.google.com ([2607:f8b0:400e:c03::235]:35541) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZflEK-0004ty-1N for guix-devel@gnu.org; Sat, 26 Sep 2015 04:53:16 -0400 Received: by pacfv12 with SMTP id fv12so129875334pac.2 for ; Sat, 26 Sep 2015 01:53:15 -0700 (PDT) In-Reply-To: <2e2ee8b4a357b09ec06a2025e54676f4@openmailbox.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: goglosh@openmailbox.org, guix-devel@gnu.org goglosh@openmailbox.org writes: > Hello. > I am currently a new user of the GuixSD system. I am also a rather new > user of the whole *NIX familly. I have been using it for less than a > week, with no few surprises. Hi, welcome! > I write this to lay down in an organized (sort of) manner my thoughts > and first impressions about the system and those issues I've had most > trouble with. Along with friendly suggestions. I hope it's helpful, > and, anyway, I'd be happy to put together some documentation given a > few pointers if needed. Sorry if I am still inexperienced with the > whole *nix thing. It's very useful and pleasure to get feedback :-) > Alright, first the good things. I really liked the fact that you can > instantiate system configurations (as in `guix system reconfigure`) > and also that regular users can build up their environment and that it > is quite 'safe', system-wise. There is one thing that should probably > change, though. When I install a package using root, I usuallly expect > the package to be available system-wide, so that any user has access > to it. This would make it easier to install a package just once for > all users. After all, that's the purpose of root, rather than as a > user in it's own right (at least, that's how I see it). I agree the root user is special and having a global packages set managed by root sounds reasonable. > I know this can be done with a system declaration. But of course, > there is a difference between setting up a whole system and putting up > a package. Yes, maybe reconfigure the whole system is too expensive. Currently, I think we can add 'source /root/.guix-profile/etc/profile' to '~/.bash_profile' for users who want this behavior. Or add it to '/etc/profile' for all users. > Another astonishing (and confusing) feature, which, think of it, is > sort of a consequence of the previous issue, is the lack of a global > configuration directory. Sure, there is /etc/, but, at least in my > case, setting up /etc/slim.config (a concrete example of course) would > just get ignored. The intention is to use guix manage those files by services, so for example, you can add a '(slim-service #:auto-login? #t)' to the system configuration for slim which is auto login. The parameters for services is (should be) well documented and cover most usage, so we don't have to learn the specified config syntax for every packages. But I agree most packages should use '/etc' as default sysconfdir instead of an etc in the store, so that if we don't use services to manage them, they can still configure by root. In practice, this need to be handled per-package in its recipe. See 'fish' for an example: > Again, I am thinking of root as a sort of parent > environment for the userspace, which all users should be able to > inherit and override. A Super-user, if you don't mind. > I am aware that these changes would require a change in the design, > still there could be a sort of compromise. It's not very clear what to inherit and override, but I think we can do most of this already. For packages (build-time), by using GUIX_PACKAGE_PATH: For packages's configurations (running-time), by using '/etc'. > And again, the applications usually have their own config files (their > /etc/ /share/, etc) *within* their directories in /gnu/store/, which > is a read-only filesystem. I'm not complaining about read-only > /gnu/store, I understand it's crucial. But then, ~/.guix-profile is > also read-only. As I write this I notice that it is actually a bunch > of symlinks all leading to /gnu/store. > See, what I would expect, being this a sort of nix system, is that I > could also have configurations for each file, which I should be able > to modify. Probably I should be able to have dedicated /share/ or > /etc/ for each user and even one system-wide. Most (if not every) normal user oriented applications put config files in user's home (eg: ~/.bashrc, ~/.emacs.d ,~/.config, etc). And the system-wide one is '/etc' :-) > I too haven't really read the dmd manual, and I will do so right > now. I haven't read the dmd manual too. As the init system, I think it's an implementation detail.