# zoneadm -z zonename detach # zoneadm -z zonename attach -uand noticed that I detached build zone with repository. zoneadm launched pkg, pkg worked for a while, and then it said:
What a hell! NGZ and GZ were in sync... At least both of them were latest /hipster. So I removed all publishers served by this zone from host and zone config. The same reaction.
Evaluation: Packages in zone zonename are out of sync with the global zone. To proceed, retry with the -u flag. Result: Attach Failed.
After grepping for this message in /usr/lib/brand/ipkg/attach I found that this message is produced in the following part of the script ($m_need_update message).
# # Bring the ngz entire incorporation into sync with the gz as follows: # - First compare the existence of entire in both global and non-global # zone and update the non-global zone accordingly. # - Then, if updates aren't allowed check if we can attach because no # updates are required. If we can, then we are finished. # - Finally, we know we can do updates and they are required, so update # all the non-global zone incorporations using the list we gathered # from the global zone earlier. # if [[ -z $gz_entire_fmri && -n $ngz_entire_fmri ]]; then if [[ $allow_update == 1 ]]; then LC_ALL=C $PKG uninstall entire || pkg_err_check "$f_update" else log "\n$m_need_update" "$ZONENAME" EXIT_CODE=$ZONE_SUBPROC_NOTCOMPLETE exit $EXIT_CODE fi fi if [[ $allow_update == 0 ]]; then LC_ALL=C $PKG install --accept --no-refresh -n $incorp_list if [[ $? == 0 ]]; then log "\n$m_complete" EXIT_CODE=$ZONE_SUBPROC_OK exit $EXIT_CODE else log "\n$m_need_update" "$ZONENAME" EXIT_CODE=$ZONE_SUBPROC_NOTCOMPLETE exit $EXIT_CODE fi fiI've just commented all these checks out and after this zone attach succeed. Zone is working now and I'm glad I don't have to reinstall my build zone....