Solved Some symlinks don't work in thin jails

Hi! I've a fresh install of 10.2-RELEASE and set up my jail environment following this (https://clinta.github.io/freebsd-jails-the-hard-way/) tutorial together with the handbook chapter on multiple jails.

The problem I have is that I can't install any new packages. Here is the error logs:

Code:
root@www:/usr/ports/www/nginx # make install clean
===> Building/installing dialog4ports as it is required for the config dialog
===>  Cleaning for dialog4ports-0.1.5_2
===> Skipping 'config' as NO_DIALOG is defined
===>  License BSD2CLAUSE accepted by the user
===>   dialog4ports-0.1.5_2 depends on file: /usr/local/sbin/pkg - not found
===> Skipping 'config' as NO_DIALOG is defined
===>  License BSD2CLAUSE accepted by the user
mkdir: /usr/ports/distfiles: No such file or directory
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/ports-mgmt/pkg
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/ports-mgmt/pkg
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/ports-mgmt/dialog4ports
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/ports-mgmt/dialog4ports
===> Options unchanged


===>  License BSD2CLAUSE accepted by the user
===>   nginx-1.8.0_3,2 depends on file: /usr/local/sbin/pkg - not found
===>  License BSD2CLAUSE accepted by the user
mkdir: /usr/ports/distfiles: No such file or directory
*** Error code 1

Stop.
Stop.
make[2]: stopped in /usr/ports/ports-mgmt/pkg
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/www/nginx
*** Error code 1

Stop.
make: stopped in /usr/ports/www/nginx

Code:
root@www:/usr/ports/www/nginx # pkg install nginx
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
pkg: failed to extract pkg-static: Can't create '/usr/local/sbin/pkg-static'

This making this setup pretty useless ;)

I've tracked the problem back to that some symlinks doesn't seem to work.
For example, etc symlink to skeleton/etc which work fine while usr/local -> skeleton/usr/local and usr/ports/distfiles -> skeleton/usr/ports/distfiles doesn't and these directories does exists.

And here is where I'm stuck. I don't know where to go from here. I haven't found any good information on how symlinks and mounted filesystems work together. This (http://serverfault.com/q/433116) person seem to wonder the same thing but sadly no answer.

Extra question: While the handbook explains most really good there seems to be some inconsistencies, for example in 14.5.1 # ln -s s/usr-local usr/local and in 14.5.3 # ln -s ../s/usr-local usr/local with other tutorials # ln -s s/usr/local usr/local. What is the difference?
 
Okay so I've triaged it today and the solution was to use ../ in the beginning of the links and move around I've some folders I've misplaced.

PS
Hope someone can update the Handbok under 14.5.1 step 5 to # ln -s ../s/usr-local usr/local and similar for distfiles.
 
Back
Top