Solved Problem running poudriere in a jail

D

Deleted member 36389

Guest


I followed the instructions given in https://github.com/freebsd/poudriere/wiki/poudriere_in_jail and it all went very well until I actually went to build the packages. When I run poudriere bulk I get the error Error: load_moved requires PWD=/data/poudriere//.m/11maglev-packages/ref/.p.

Here's the output from running with the -x option poudriere -x bulk -j 11maglev -p packages -f /path/to/list.txt, it's just everything after the blacklist stuff to help keep it a little shorter: http://pasted.co/8ca4e8cf

Has anyone run into this or have any clues as to how to fix it? Thank you for the help!
 

Lamia

Well-Known Member

Reaction score: 50
Messages: 318

You will be amazed to see Poudriere work without any problem in the host machine (but not a jail).
 
OP
OP
D

Deleted member 36389

Guest


You're totally right, I've had it running on a local host machine for ages now and it was super easy to setup and use, etc. However, I wanted to move this online but the requirement was that it was run in a jail.

Anyway, after tinkering, I found totally by random that poudriere just didn't like the fact that I had the ports directory in the same sub-directory as the logs and packages, etc. Once I moved that out it all worked just fine .... pure luck!
 

Lamia

Well-Known Member

Reaction score: 50
Messages: 318

Okay.
I found totally by random that poudriere just didn't like the fact that I had the ports directory in the same sub-directory as the logs and packages, etc.
Those directories are not supposed to be in the same location though.

Poudriere on its own is a jail system; so, I won't expect it to work in a jail. That would be more like a jail in a jail. I have spent several hours trying to achieve that. But going back to your guide {which I tried then}, I still find it missing some other vital information needed to set-up a poudriere with web access, signed pkgs, using portshaker etc. When I have poudriere installed in a jail, I could not get it to build pkgs if my memory serves me right. I tried many tricks - fdesc and so on but no luck.

Anyway, our set-up is still fairly similar to yours but with a few differences - such as running in a diff zpool and getting (some) poudriere (jails) built from /usr/src.
 
OP
OP
D

Deleted member 36389

Guest


Those directories are not supposed to be in the same location though.
I didn't mean the actual files in the same dir, I meant those directories all in one parent directory. For example:
poudriere
|--jails
|--logs
|--ports
|--packages
etc.

Does that make sense?

I guess I can see why poudriere might not like it but I didn't think it would be a big problem. After moving ports and jails out poudriere worked just fine.

Poudriere on its own is a jail system; so, I won't expect it to work in a jail. That would be more like a jail in a jail. I have spent several hours trying to achieve that. But going back to your guide {which I tried then}, I still find it missing some other vital information needed to set-up a poudriere with web access, signed pkgs, using portshaker etc. When I have poudriere installed in a jail, I could not get it to build pkgs if my memory serves me right. I tried many tricks - fdesc and so on but no luck.
I believe that a jail within a jail has been supported since FreeBSD 9, but I could be wrong. The important thing to not miss is to define children.max and the rest is actually fairly simple. I found the Run poudriere in a jail instructions to be missing a few things but nothing major, it should work if followed exactly. I wanted a different directory structure which is what messed me up but once I simply kept ports and jails as their own directories/filesystems outside of the poudriere one everything worked fine.

I'd be happy to send you the basic steps I followed once I have time to write it all up if you'd like.
 
Top