Installworld fails when /usr/bin and /usr/sbin are different FS / how to use symlinks in installworld?
Bryan Drewery
bdrewery at FreeBSD.org
Fri Sep 2 22:52:02 UTC 2016
On 9/2/2016 3:25 PM, Alexander Leidinger wrote:
> Hi,
>
> background info:
> - iocage (jail management) uses official release tarballs
> - I want to install a jail from a specific src I compiled withour
> creating release tarballs (-> faster time to market), so I want to
> convince iocage to use what I provide via installworld
> - jails of type "basejail" (jails read-only-share the base system) in
> iocage are handled via seperate zfs datasets for each directory
> - as such /usr/bin and /usr/sbin are different datasets
>
> I got this error in installworld:
> ---snip---
> ===> usr.sbin/chkgrp (install)
> install -s -o root -g wheel -m 555 chkgrp
> /iocage/base/12.0-r305149M/root/usr/sbin/chkgrp
> install -o root -g wheel -m 444 chkgrp.debug
> /iocage/base/12.0-r305149M/root/usr/lib/debug/usr/sbin/chkgrp.debug
> install -o root -g wheel -m 444 chkgrp.8.gz
> /iocage/base/12.0-r305149M/root/usr/share/man/man8/
> ===> usr.sbin/chown (install)
> install -s -o root -g wheel -m 555 chown
> /iocage/base/12.0-r305149M/root/usr/sbin/chown
> install -o root -g wheel -m 444 chown.debug
> /iocage/base/12.0-r305149M/root/usr/lib/debug/usr/sbin/chown.debug
> install -o root -g wheel -m 444 chgrp.1.gz
> /iocage/base/12.0-r305149M/root/usr/share/man/man1/
> install -o root -g wheel -m 444 chown.8.gz
> /iocage/base/12.0-r305149M/root/usr/share/man/man8/
> ===> usr.sbin/chown/tests (install)
> install -o root -g wheel -m 555 chown-f_test
> /iocage/base/12.0-r305149M/root/usr/tests/usr.sbin/chown/chown-f_test
> install -o root -g wheel -m 444 Kyuafile
> /iocage/base/12.0-r305149M/root/usr/tests/usr.sbin/chown/Kyuafile
> /usr/bin/chgrp -> /usr/sbin/chown
> install: link /iocage/base/12.0-r305149M/root/usr/sbin/chown ->
> /iocage/base/12.0-r305149M/root/usr/bin/chgrp: Cross-device link
> *** Error code 71
>
> Stop.
> make[5]: stopped in /usr/src/usr.sbin/chown
> *** Error code 1
>
> Stop.
> ---snip---
>
> The error message is obvious, it tries to create a hardlink which is off
> course not possible when src and dest of the link are on different FS.
>
> My goal of an easy procedure (installworld into target datasets) doesn't
> work like this off course. Do we have an easy way of telling
> installworld to create symlinks instead of hardlinks, or alternatively a
> way to tell to copy instead of doing a hardlink if the install hits the
> cross-device case?
Maybe falling back to symlink could be done.
Couldn't you just make a usr-bin dataset and have usr-bin/bin and
usr-bin/sbin and symlink or nullfs-mount them in though? I too go crazy
with datasets, but this seems a bit too much.
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20160902/a8d986a1/attachment.sig>
More information about the freebsd-current
mailing list