How to install PostgreSQL 9.3 in FreeBSD jail?

Hello. I am newbie on this forum. I am not sure that I can ask a question like this, but if this doesn't fit here, please let me know, then I will handle it.

I was trying to configure a PostgreSQL server in a jail. I configured virtual NICs using PF, and a jail for FreeBSD using qjail create pgsql-jail 192.168.0.3.

When I tried to install PostgreSQL 9.3 using port collection, it shows strange message at first.

Code:
pgsql-jail /usr/ports/databases/postgresql93-server >make install
===> Building/installing dialog4ports as it is required for the config dialog
===>  Cleaning for dialog4ports-0.1.5_1
===> Skipping 'config' as NO_DIALOG is defined
====> You must select one and only one option from the KRB5 single
*** [check-config] Error code 1

Stop in /basejail/usr/ports/ports-mgmt/dialog4ports.
*** [install] Error code 1

Stop in /basejail/usr/ports/ports-mgmt/dialog4ports.
===> Options unchanged
=> postgresql-9.3.0.tar.bz2 doesn't seem to exist in /var/ports/distfiles/postgresql.
=> Attempting to fetch [url]ftp://ftp.se.postgresql.org/pub/databases/relational/postgresql/source/v9.3.0/postgresql-9.3.0.tar.bz2[/url]
postgresql-9.3.0.tar.bz2                        1% of   16 MB   71 kBps


Anyway, installation continues, so I waited. I chose all default options for all option dialogs. And at the end of the process, I saw it finally failed with this message.

Code:
====> Compressing man pages
===>  Building package for pkgconf-0.9.3
Creating package /basejail/usr/ports/devel/pkgconf/pkgconf-0.9.3.tbz
Registering depends:.
Registering conflicts: pkg-config-*.
Creating bzip'd tar ball in '/basejail/usr/ports/devel/pkgconf/pkgconf-0.9.3.tbz'
tar: Failed to open '/basejail/usr/ports/devel/pkgconf/pkgconf-0.9.3.tbz'
pkg_create: make_dist: tar command failed with code 256
*** [do-package] Error code 1

Stop in /basejail/usr/ports/devel/pkgconf.
*** [build-depends] Error code 1

Stop in /basejail/usr/ports/textproc/libxml2.
*** [install] Error code 1

Stop in /basejail/usr/ports/textproc/libxml2.
*** [lib-depends] Error code 1

Stop in /basejail/usr/ports/databases/postgresql93-server.
*** [install] Error code 1

Stop in /basejail/usr/ports/databases/postgresql93-server.


I have no idea why this fails. Errors at beginning seems I have something wrong with dialog4ports. And errors at last seems installer cannot write to ports file tree. AFAIK, the ports files are read-only shared from host system.

What's wrong with my jail? How can install PostgreSQL 9.3 in my jail?


P.S. I cross-posted this question to http://unix.stackexchange.com/questions/93946/how-to-install-postgresql-9-3-in-freebsd-jail I hope cross-posting is not a violation manner in this forum...
 
This is an issue to do with a change in how the port system handles the install target. You have two choices:
  1. Update qjail if there is a newer version or wait until the maintainer creates a fix. You could also email them to let them know.
  2. As a temporary measure, execute mkdir -p /var/ports/packages in the jail, and then attempt to install PostgreSQL.
 
Unfortunately, I couldn't find regular way to contact the author... The sourceforge forum/mailing list was empty.
 
Now, I have no experience with qjail at all, but it looks to me as if those commands are not running in a jail but more so on the host system, which could explain a thing or two.

If this is a regular jail I'd use jls to check its details and then jexec to run a command inside that jail, a shell for example. Then you should be able to install those ports in the same way you'd install a port on any other FreeBSD system.
 
@@eonil, did you attempt the second option, creating the /var/ports/packages directory in the jail and then running make install again?
 
Last edited by a moderator:
Back
Top