> On 11/04/2020 17:03, Rodney W. Grimes wrote:
> >> On Sat, 11 Apr 2020 09:42:49 -0700 (PDT)
> >> "Rodney W. Grimes" <freebsd-...@gndrsh.dnsmgr.net> wrote:
> >>
> >>> [ Charset UTF-8 unsupported, converting... ]
> >>>> I am following https://wiki.freebsd.org/PkgBase
> >>>>
> >>>> This:
> >>>>
> >>>> pkg install -g 'FreeBSD-*'
> >>>>
> >>>> fails with this:
> >>>>
> >>>> [2/800] Extracting FreeBSD-runtime-12.1_3:?? 4%
> >>>> pkg: Fail to create hardlink:
> >>>> /root/.pkgtemp..cshrc.v5sxGCRu3GlP:Cross-device link
> >>>                   ^^^^^^
> >>>
> >>>
> >>>> [2/800] Extracting FreeBSD-runtime-12.1_3: 100%
> >>>>
> >>>> /root is in a different ZFS dataset. It works fine if it's not. Why pkg
> >>>> is using /root/.pkgtemp instead of /tmp or /var/tmp? It doesn't matter
> >>>> from where I run the command, looks like the path is hardcoded.
> >>> The failure is caused by the fact that /.cshrc and /root/.cshrc
> >>> are hardlinked to each other.  A hardlink can not cross a
> >>> ZFS dataset or a ufs mount point.
> >>   Ah right.
> >>
> >>>> Can I workaround with some option to pkg?
> >>> I doubt that.
> >>   Someone (tm) should add support for this in pkg.
> > An option to convert hardlinks to symlinks or duplicate files could be done.
> >
> > For the person with this problem there are ways to work around it
> > by not making /root a seperate dataset, create /toor data set,
> > set toor login home to /toor, use that for what ever it is that
> > made you feel you needed to have /root as its own data set.
> 
> 
> Did you mean - set root login home to /toor? Or create a new toor user?

Look in your /etc/passwd file, the toor user already exists,
its normal use is for /bin/sh login to root, but it can
still be used for your issue here.

> 
> I think the same will be with .profile which also looks like it's 
> hardlinked.

Yes, but the pkg system is ONLY going to mess with /root,
if you use /toor for your purpose it wont mess with pkg.
However, you well have to update things from /root to /toor
manually, but that rate of change is very very small.

> 
> Wouldn't pkg already have to handle this for normal port packages 
> somehow? Or they never create hardlinks? Is it worth raising bug/feature 
> in bugzilla for pkg?

The norm is there are very few cross directory links and
this is very rarely an issue unless someone modifies the
system in a way outside of the norm.  Having /root as a
seperate dataset is outside the norm.  Note this also
places /root outside of the boot environment directory
which may bring other issues in the future.

Ports should all install stuff inder the /usr/local hierarchy
and that is usually self contained, so hard links are not
an issue there.

Further note, if you have made /usr/local its own dataset
your defanitly going to have issues with boot environments
if you try to run more than 1 version of FreeBSD as /usr/local
is pretty version dependent.

/var is a whole nother crap mess with boot environments,
pkg and multiple versions cause pkg stores its caches
and databases in /var and /var is not part of the BE.

> --GrzegorzJ
-- 
Rod Grimes                                                 rgri...@freebsd.org
_______________________________________________
freebsd-pkgbase@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-pkgbase
To unsubscribe, send any mail to "freebsd-pkgbase-unsubscr...@freebsd.org"

Reply via email to