/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
?