使用poudriere测试端口时使用如下内容:
poudriere testport -v -j 11amd64 -p custom www/go-www
我收到了这个错误:
!!! build failure encountered !!!
[00:00:06] ====>> Error: Build failed in phase: fetch
由于某种原因,无法找到/下载该软件包,因此在我尝试检查jail解析器是否存在问题时,我通过执行jls
列出了现有的jails - 我得到了这个引起我注意的输出:
> jls
JID IP Address Hostname Path
363 127.0.0.1 11amd64-custom /usr/local/poudriere/data/.m/11amd64-custom/ref
364 11amd64-custom /usr/local/poudriere/data/.m/11amd64-custom/ref
365 127.0.0.1 11amd64-custom-job-02 /usr/local/poudriere/data/.m/11amd64-custom/02
366 11amd64-custom-job-02 /usr/local/poudriere/data/.m/11amd64-custom/02
367 127.0.0.1 11amd64-custom-job-01 /usr/local/poudriere/data/.m/11amd64-custom/01
368 11amd64-custom-job-01 /usr/local/poudriere/data/.m/11amd64-custom/01
369 127.0.0.1 11amd64-custom-job-03 /usr/local/poudriere/data/.m/11amd64-custom/03
370 11amd64-custom-job-03 /usr/local/poudriere/data/.m/11amd64-custom/03
我注意到的事情是,如果我进入一个没有分配IP地址的监狱jexec 364
,我可以ping /取任何主机,例如,但是如果我进入一个带有IP地址的监狱{ {1}},在这种情况下jexec 363
我无法ping /解决:
127.0.0.1
因此,我想知道创建一对jails的想法是什么,一个是IP(没有可路由),另一个是whitout IP(可路由),背后的逻辑是什么?
以防这是我用于poudriere ping: sendto: Can't assign requested address
的配置:
/usr/local/etc/poudriere.conf
更新
要解决我在交互模式下输入的问题 - 请注意ZPOOL=tank
ZROOTFS=/poudriere
FREEBSD_HOST=https://download.FreeBSD.org
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/local/poudriere
POUDRIERE_DATA=${BASEFS}/data
USE_PORTLINT=no
USE_TMPFS=yes
DISTFILES_CACHE=/usr/ports/distfiles
CHECK_CHANGED_OPTIONS=verbose
CHECK_CHANGED_DEPS=yes
PKG_REPO_SIGNING_KEY=/usr/local/etc/ssl/keys/pkg.key
CCACHE_DIR=/var/cache/ccache
NOLINUX=yes
:
-i
然后:
poudriere testport -v -i -j 11amd64 -p custom www/go-www
提取包,我只是将它们复制到cd /usr/ports/www/go-www/; make
然后再说:
/usr/ports/distfiles/
这是一个丑陋的黑客攻击,但主要问题是Makefile中的重复内容是一个重复内容:
poudriere testport -v -j 11amd64 -p custom www/go-www
应该是:
GH_ACCOUNT= nbari:DEFAULT,www
但仍然想知道为什么使用和不使用IP创建这对jail。
答案 0 :(得分:2)
poudriere(8)
预先形成预先形成不需要联网的阶段是一个限制性更强的监狱,以增加安全性。 Previously使用或不使用网络功能重新启动jail,现在整个过程中都会保留两个单独的jail以降低复杂性。
具有列出的IP地址的jail显式设置为环回地址,并且没有从主机继承网络的地址:
: ${LOIP6:=::1}
: ${LOIP4:=127.0.0.1}
case $IPS in
01)
localipargs="ip6.addr=${LOIP6}"
ipargs="ip6=inherit"
;;
10)
localipargs="ip4.addr=${LOIP4}"
ipargs="ip4=inherit"
;;
11)
localipargs="ip4.addr=${LOIP4} ip6.addr=${LOIP6}"
ipargs="ip4=inherit ip6=inherit"
;;
esac
...
jstart() {
local name network
network="${localipargs}"
[ "${RESTRICT_NETWORKING}" = "yes" ] || network="${ipargs}"
_my_name name
jail -c persist name=${name} \
path=${MASTERMNT}${MY_JOBID+/../${MY_JOBID}} \
host.hostname=${BUILDER_HOSTNAME-${name}} \
${network} ${JAIL_PARAMS} \
allow.socket_af allow.raw_sockets allow.chflags allow.sysvipc
jail -c persist name=${name}-n \
path=${MASTERMNT}${MY_JOBID+/../${MY_JOBID}} \
host.hostname=${BUILDER_HOSTNAME-${name}} \
${ipargs} ${JAIL_PARAMS} \
allow.socket_af allow.raw_sockets allow.chflags allow.sysvipc
}
获取错误似乎是因为新distfile
中的重复条目(nbari-www-1.1.1_GH0.tar.gz
的两个条目)。错误行
在您的日志文件中以fetch: 4211
开头,4211是重复条目的大小。
由于使用GH_ACCOUNT
指定的群组,DEFAUT
添加PORTNAME
(www
),www
添加,因此相关条目会被添加两次本身。