如何在 FreeBSD 监狱中安装 PostgreSQL 9.3?

如何在 FreeBSD 监狱中安装 PostgreSQL 9.3?

我使用配置了虚拟网卡pf,并使用配置了 FreeBSD 的监狱qjail create pgsql-jail 192.168.0.3

当我尝试使用端口收集安装 PostgreSQL 9.3 时,它首先显示奇怪的消息。

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 ftp://ftp.se.postgresql.org/pub/databases/relational/postgresql/source/v9.3.0/postgresql-9.3.0.tar.bz2
postgresql-9.3.0.tar.bz2                        1% of   16 MB   71 kBps

无论如何,安装仍在继续,所以我等待。我为所有选项对话框选择了所有默认选项。在该过程结束时,我看到它最终失败并显示此消息。

====> 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.

我不知道为什么会失败。开始时的错误似乎是我有问题dialog4ports。最后的错误似乎安装程序无法写入 ports 文件树。 AFAIK,端口文件是从主机系统共享的只读文件。

我的监狱出了什么问题?如何在我的监狱中安装 PostgreSQL 9.3?

答案1

如果你想在可能有只读文件系统的监狱中构建端口,你最好设置你的港口环境适当地。我用make.conf这个。

/usr/ports如果我的设置是只读的,我会使用这些设置:

WRKDIRPREFIX=/usr/workdir-ports
DISTDIR=/usr/distfiles
PACKAGES=/usr/packages

关于上述警告:

您已经设置NO_DIALOG了端口,例如在 中make.conf,但端口需要一个配置项。它无法运行configure带有NO_DIALOG选项集的阶段。

你可能想要使用包,如果您根本不想被选项打扰。

答案2

我有同样的问题。我找到了一个解决方法。试试这个: - 手动安装dialog4ports-0.1.5_1

cd /usr/ports/ports-mgmt/dialog4ports
make install

- 然后尝试安装postgresql93

cd /usr/ports/databases/postgresql93-server/
make install

- 出错时创建链接来解决 pkgconfig 的问题

ln -s /basejail/usr/ports/devel/pkgconf/work/stage/usr/local/ /dati/ports/usr/ports/devel/pkgconf/work/stage/basejail/usr/local

我对监狱骨架的构想有点不同,但这项工作是我的。 PostgreSQL9.3安装正确!

问候。

相关内容