unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: "Clément Lassieur" <clement@lassieur.org>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: 30728@debbugs.gnu.org
Subject: bug#30728: guix-install.sh doesn't work if run with "sudo"
Date: Mon, 26 Mar 2018 10:05:50 +0200	[thread overview]
Message-ID: <87efk79s81.fsf@lassieur.org> (raw)
In-Reply-To: <87d0zsn391.fsf@gmail.com>

Hi Chris,

Chris Marusich <cmmarusich@gmail.com> writes:

> Clément Lassieur <clement@lassieur.org> writes:
>
>> Clément Lassieur <clement@lassieur.org> writes:
>>
>>> Hi,
>>>
>>> My system is Ubuntu 16.04.
>>>
>>> I ran './guix-install.sh' and got the message: "This script must be run
>>> as root.".  So I ran 'sudo ./guix-install.sh' and got an error message
>>> saying that:
>>>
>>>     GUIX_PROFILE="${HOME}/.guix-profile"
>>>     source "${GUIX_PROFILE}/etc/profile"
>>>
>>> the 'source' command doesn't work because ${GUIX_PROFILE} was never
>>> created, ${HOME} being /home/clement, not /root.
>>>
>>> To recover from this I had to manually delete /var/guix and /gnu, log as
>>> root with 'su', and start again.
>>>
>>> Clément
>>
>> I believe the script should install Guix in the user's home directory,
>> not in ~root.
>
> The manual says (see: (guix) Binary Installation):
>
>   3. Make ‘root’’s profile available under ‘~/.guix-profile’:
>
>           # ln -sf /var/guix/profiles/per-user/root/guix-profile \
>                    ~root/.guix-profile

I think the manual is wrong here.  This only makes sense if the user is
'root'.  Otherwise, the user would expect Guix to be installed in their
home, not in root's home.  We could use the HOME and USER environment
variables like this:

  # ln -sf /var/guix/profiles/per-user/$USER/guix-profile $HOME/.guix-profile

Thus, even if 'sudo' decides to change these environment variables, it
will still be consistent.

>      Source ‘etc/profile’ to augment ‘PATH’ and other relevant
>      environment variables:
>
>           # GUIX_PROFILE=$HOME/.guix-profile ; \
>             source $GUIX_PROFILE/etc/profile
>
> I believe the expectation here is that $HOME will expand to root's home
> directory.  Look at the previous ln invocation: we set up a symlink for
> the .guix-profile in root's home directory, so it's pretty clear that
> $HOME/.guix-profile is supposed to point to that profile.
>
> I think there is a tacit assumption in the manual and the
> guix-install.sh script that the HOME environment variable will refer to
> root's home directory, which is not always true.  For example, on
> current Ubuntu, if you run sudo with no arguments, you will find that
> the HOME environment variable still points to your unprivileged user's
> home directory, not to root's home directory.  This is because sudo can
> be configured in many ways, and on Ubuntu, they have chosen to configure
> it in that way.  On other systems, it might behave differently.

  reply	other threads:[~2018-03-26  8:06 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87zi3lh6mb.fsf@lassieur.org>
2018-03-23 13:20 ` bug#30728: guix-install.sh doesn't work if run with "sudo" Clément Lassieur
2018-03-25  5:16   ` Chris Marusich
2018-03-26  8:05     ` Clément Lassieur [this message]
2018-03-26  9:18       ` Marius Bakke
2018-03-27  7:46       ` Ricardo Wurmus
2018-03-27  9:11         ` Clément Lassieur
2018-03-27 16:08           ` Chris Marusich
2018-03-28 19:24             ` Ricardo Wurmus
2018-03-29  5:07               ` Chris Marusich
2018-03-29  8:26                 ` Clément Lassieur
2018-03-29  7:48               ` Clément Lassieur
2018-03-29 10:07                 ` Ricardo Wurmus
2018-03-30 22:07                   ` Clément Lassieur
2018-03-29  8:04             ` Clément Lassieur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87efk79s81.fsf@lassieur.org \
    --to=clement@lassieur.org \
    --cc=30728@debbugs.gnu.org \
    --cc=cmmarusich@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).