So, I've started experimenting with the Warden's ability to create Linux Jails under PCBSD 9.1 (x64, DVD install).
I created a Gentoo jail by selecting "gentoo-stage3-i486" in the Warden's creation dialog. All went fine, started the jail and launched a Terminal via the Warden.
Given that this is Gentoo I figure I need 'emerge' to install useful packages. Per
http://www.gentoo.org/doc/en/handboo...ap=1#doc_chap1 I tried running 'emerge-webrsync' to kick things off. However, emerge-webrsync ultimately fails, apparently because python (inside the Gentoo jail) tries to use an epoll_create() syscall which FreeBSD (hosting the jail) doesn't support.
So I'm wondering if any one else has managed to get a useful Gentoo jail built via the Warden, where you can use emerge to install packages, etc?
Some more background:
The jail appeared to be created just fine, I could start it and open up a Terminal fine. It even looked linux-y inside:
|
Code:
|
localhost / # uname -a
Linux localhost 2.6.16 FreeBSD 9.1-RELEASE #2: Tue Nov 27 03:45:16 UTC 2012 i686 Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz GenuineIntel GNU/Linux
localhost / #
localhost / # cat /proc/version
Linux version 2.6.16 (des@freebsd.org) (gcc version 4.2.1 20070831 patched [FreeBSD]) #4 Sun Dec 18 04:30:00 CET 1977
localhost / # |
The emerge-webrsync output inside my jail:
|
Code:
|
localhost / # emerge-webrsync
!!! Invalid PORTDIR_OVERLAY (not a dir): '/usr/portage'
!!! main-repo not set in DEFAULT and PORTDIR is empty.
Fetching most recent snapshot ...
Trying to retrieve 20121231 snapshot from http://distfiles.gentoo.org ...
Fetching file portage-20121231.tar.xz.md5sum ...
Fetching file portage-20121231.tar.xz.gpgsig ...
Fetching file portage-20121231.tar.bz2.md5sum ...
Fetching file portage-20121231.tar.gz.md5sum ...
20121231 snapshot was not found
Trying to retrieve 20121230 snapshot from http://distfiles.gentoo.org ...
Fetching file portage-20121230.tar.xz.md5sum ...
Fetching file portage-20121230.tar.xz.gpgsig ...
Fetching file portage-20121230.tar.bz2.md5sum ...
Fetching file portage-20121230.tar.bz2.gpgsig ...
Fetching file portage-20121230.tar.bz2 ...
Checking digest ...
Getting snapshot timestamp ...
Syncing local tree ...
Number of files: 160084
Number of files transferred: 136203
Total file size: 267.83M bytes
Total transferred file size: 267.83M bytes
Literal data: 267.83M bytes
Matched data: 0 bytes
File list size: 4.07M
File list generation time: 0.002 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 126.14M
Total bytes received: 2.68M
sent 126.14M bytes received 2.68M bytes 1.68M bytes/sec
total size is 267.83M speedup is 2.08
Cleaning up ...
Traceback (most recent call last):
File "/usr/lib/portage/bin/emerge", line 48, in <module>
retval = emerge_main()
File "/usr/lib/portage/pym/_emerge/main.py", line 1021, in emerge_main
gc_locals=locals().clear)
File "/usr/lib/portage/pym/_emerge/actions.py", line 3436, in run_action
_global_updates(trees, mtimedb["updates"], quiet=("--quiet" in myopts)):
File "/usr/lib/portage/pym/portage/_global_updates.py", line 41, in _global_updates
quiet=quiet, if_mtime_changed=if_mtime_changed)
File "/usr/lib/portage/pym/portage/_global_updates.py", line 46, in _do_global_updates
portdb = trees[root]["porttree"].dbapi
File "/usr/lib/portage/pym/portage/util/__init__.py", line 1374, in __getitem__
result = lazy_item.func(*pargs, **kwargs)
File "/usr/lib/portage/pym/portage/dbapi/porttree.py", line 1013, in __init__
self.dbapi = portdbapi(mysettings=settings)
File "/usr/lib/portage/pym/portage/dbapi/porttree.py", line 99, in __init__
self._event_loop = EventLoop(main=False)
File "/usr/lib/portage/pym/portage/util/_eventloop/EventLoop.py", line 67, in __init__
self._poll_obj = _epoll_adapter(select.epoll())
IOError: [Errno 38] Function not implemented
localhost / # |
The related /var/log/messages output outside my jail:
|
Code:
|
[..]
Jan 1 12:40:36 gjadesktop kernel: linux: pid 8598 (python3.2): syscall pipe2 not implemented
Jan 1 12:40:37 gjadesktop kernel: linux: pid 8598 (python3.2): syscall prlimit64 not implemented
Jan 1 12:40:37 gjadesktop kernel: linux: pid 8598 (python3.2): syscall epoll_create not implemented |
http://wiki.freebsd.org/linux-kernel suggests that epoll_* is not supported in FreeBSD (yet?) so it seems we are at an impasse.
Anyone care to point out what I'm missing? (I did a straightforward PCBSD 9.1 DVD installation, no custom tweaks or mods... so far!)