/gnu/store should be able to be a symlink, but it can't

  • Done
  • quality assurance status badge
Details
4 participants
  • Claes Wallin (???)
  • Kragen Javier Sitaker
  • Ludovic Courtès
  • Pjotr Prins
Owner
unassigned
Submitted by
Kragen Javier Sitaker
Severity
normal
K
K
Kragen Javier Sitaker wrote on 7 Aug 2015 18:03
(address . bug-guix@gnu.org)
20150807160308.GA13042@adjuvant
Apparently I can’t make /gnu/store a symlink:

: user@debian:~/pkgs/guix-0.8.1; time /usr/local/bin/guix pull
guix pull: error: build failed: `/gnu/store' is not a directory

real 0m0.431s
user 0m0.104s
sys 0m0.036s
: user@debian:~/pkgs/guix-0.8.1; ls -l /gnu/store
lrwxrwxrwx 1 root root 9 Aug 7 12:56 /gnu/store -> /gnustore
: user@debian:~/pkgs/guix-0.8.1; ls -Ldl /gnu/store
drwxrwxr-t 40 root guix-builder 49152 Aug 7 12:56 /gnu/store

Is there a reason for this? It’s inconvenient. (My root SSD only has
a couple gigs left.)

I’m working around that by directly mounting the /gnustore partition
under /gnu/store now.

: user@debian:~/pkgs/guix-0.8.1; sudo vi /etc/fstab
: user@debian:~/pkgs/guix-0.8.1; grep store /etc/fstab
/tb/gnustore.ext4 /gnu/store ext4 loop 2 3
: user@debian:~/pkgs/guix-0.8.1; sudo umount /gnustore
: user@debian:~/pkgs/guix-0.8.1; sudo rm /gnu/store
: user@debian:~/pkgs/guix-0.8.1; sudo mkdir /gnu/store
: user@debian:~/pkgs/guix-0.8.1; sudo mount -a
C
C
Claes Wallin (???) wrote on 8 Aug 2015 06:51
(name . Kragen Javier Sitaker)(address . kragen@canonical.org)(address . 21209@debbugs.gnu.org)
CAGv_=Bp5guTWzFGTfc+LkE1UG9LXLAT2xwsahoF_weHpriJfzw@mail.gmail.com
Not commenting on the underlying problem, but on your workaround.

On 07-Aug-2015 11:22 pm, "Kragen Javier Sitaker" <kragen@canonical.org>
wrote:
Toggle quote (3 lines)
>
> Apparently I can’t make /gnu/store a symlink:

[ . . . ]

Toggle quote (3 lines)
> I’m working around that by directly mounting the /gnustore partition
> under /gnu/store now.

[ . . . ]

Toggle quote (2 lines)
> /tb/gnustore.ext4 /gnu/store ext4 loop 2 3

You don't need to make a new file system and a loop mount. You could just
make a bind mount.
Attachment: file
K
K
Kragen Javier Sitaker wrote on 8 Aug 2015 17:48
(name . Pjotr Prins)(address . pjotr2015@thebird.nl)
20150808154818.GA1808@adjuvant
On Sat, Aug 08, 2015 at 11:31:19AM +0200, Pjotr Prins wrote:
Toggle quote (2 lines)
> it is by design that you can't symlink.

If that is true (and it seems like a rather strange design; why would somebody
want that?) I think that the error message should explain that rather than
simply complaining that /gnu/store is "not a directory".

Toggle quote (9 lines)
> On Sat, Aug 08, 2015 at 06:51:17AM +0200, Claes Wallin wrote:
> > On 07-Aug-2015 11:22 pm, "Kragen Javier Sitaker" <[1]kragen@canonical.org>
> > wrote:
> > > I’m working around that by directly mounting the /gnustore partition
> > > under /gnu/store now.
> >
> > You don't need to make a new file system and a loop mount. You could just
> > make a bind mount.

Indeed, but I had already made the new filesystem, for other reasons.
P
P
Pjotr Prins wrote on 8 Aug 2015 11:31
(name . Claes Wallin)(address . gnu@clacke.user.lysator.liu.se)
20150808093119.GA13194@thebird.nl
it is by design that you can't symlink.

On Sat, Aug 08, 2015 at 06:51:17AM +0200, Claes Wallin wrote:
Toggle quote (24 lines)
> Not commenting on the underlying problem, but on your workaround.
>
> On 07-Aug-2015 11:22 pm, "Kragen Javier Sitaker" <[1]kragen@canonical.org>
> wrote:
> >
> > Apparently I can’t make /gnu/store a symlink:
>
> [ . . . ]
>
> > I’m working around that by directly mounting the /gnustore partition
> > under /gnu/store now.
>
> [ . . . ]
>
> >     /tb/gnustore.ext4 /gnu/store     ext4    loop            2       3
>
> You don't need to make a new file system and a loop mount. You could just
> make a bind mount.
>
> References
>
> Visible links
> 1. mailto:kragen@canonical.org

--
L
L
Ludovic Courtès wrote on 18 Aug 2015 19:52
(name . Kragen Javier Sitaker)(address . kragen@canonical.org)(address . 21209@debbugs.gnu.org)
87r3n0iiwd.fsf@gnu.org
Kragen Javier Sitaker <kragen@canonical.org> skribis:

Toggle quote (15 lines)
> Apparently I can’t make /gnu/store a symlink:
>
> : user@debian:~/pkgs/guix-0.8.1; time /usr/local/bin/guix pull
> guix pull: error: build failed: `/gnu/store' is not a directory
>
> real 0m0.431s
> user 0m0.104s
> sys 0m0.036s
> : user@debian:~/pkgs/guix-0.8.1; ls -l /gnu/store
> lrwxrwxrwx 1 root root 9 Aug 7 12:56 /gnu/store -> /gnustore
> : user@debian:~/pkgs/guix-0.8.1; ls -Ldl /gnu/store
> drwxrwxr-t 40 root guix-builder 49152 Aug 7 12:56 /gnu/store
>
> Is there a reason for this?

Yes, the daemon requires the canonical file name of the store.

Toggle quote (2 lines)
> It’s inconvenient. (My root SSD only has a couple gigs left.)

Then I would suggest using a bind mount instead of a symlink.

Does that work for you?

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 11 Sep 2015 19:24
control message for bug #21209
(address . control@debbugs.gnu.org)
87pp1oc1jf.fsf@gnu.org
tags 21209 notabug
L
L
Ludovic Courtès wrote on 11 Sep 2015 19:24
(address . control@debbugs.gnu.org)
87oah8c1j5.fsf@gnu.org
close 21209 0.8.3
?
Your comment

This issue is archived.

To comment on this conversation send an email to 21209@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 21209
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch