pkg install: Invalid child image publisher configuration. Child image publisher configuration must be a superset of the parent image publisher configuration. Please update the child publisher configuration to match the parent. If the child image is a zone this can be done automatically by detaching and attaching the zone. The parent image has the following enabled publishers: PUBLISHER 0: openindiana.org (non-sticky) PUBLISHER 1: userland (non-sticky) PUBLISHER 2: hipster-encumbered The child image has the following enabled publishers: PUBLISHER 0: openindiana.org (non-sticky) PUBLISHER 1: hipster-encumberedEven for nlipkg-branded zones. The issue is that inside zone IPS knows nothing about zone's brand. Its logic is always the same. The only thing which it checks for are files in /var/pkg/linked directory. These files are usually created on pkg operations initiated from GZ (the same pkg update -r) and contain information about parent image (read - GZ). When you change zone's brand, they will not disappear, and IPS inside zone will still think that it works with linked image. Luckily, to convince it that it's not true, it's enough to do "rm -fr /var/pkg/linked". Then this condition will make IPS happy. So, long story short - don't forget to remove /var/pkg/linked if you convert zone from ipkg to nlipkg brand.
Показаны сообщения с ярлыком IPS. Показать все сообщения
Показаны сообщения с ярлыком IPS. Показать все сообщения
вторник, 29 марта 2016 г.
Converting "linked images" zones to non-linked
A while ago we introduced "nlipkg" zone brand in OI to create "non-linked" images. OmniOS uses ipkg as non-linked brand by default and has additional "lipkg" brand for linked images. Briefly speaking, when you deal with linked images, global zone's IPS knows a lot about zones, can work with them (for example, you can update all zones in one step with "pkg update -r") and imposes some restrictions on child images.
Zone's brand is recorded in /etc/zones/zonename.xml and can be changed manually or using zonecfg. As ipkg and nlipkg zones are rather similar (in fact, they are distinguished only in name and IPS checks in some places on which brand it's operating, but for these two brands zone brand scripts are the same). So, when you are bugged with IPS checks for linked images, you can try to change zone's brand from ipkg to nlipkg. This even can work. The only issue is that it doesn't always work. Sometimes you still receive irritating messages like
среда, 7 октября 2015 г.
Userland incorporation in OpenIndiana Hipster and what does it mean for developer
Last Sunday we've published userland incorporation to /hipster-2015 repository. This was a feature long asked for by several users. It is generated by Jenkins on the build host and forces all packages generated by oi-userland build (excluding illumos-gate-provided packages and kvm) to be the latest. As we publish this incorporation on each oi-userland rebuild, you can force your system to go to specific point in the future. For example:
We can see that this system has incorporation with 20151004T163056Z timestamp installed and two more recent versions are available. So I can do something like:
to move to the 5th October package versions.
Why developers doesn't like incorporations (and IPS generally)? Because it doesn't allow you to do what you want with your system. For example, you can't install another package version.
In case of userland incorporation, you have some freedom. You can just uninstall it (and entire, as entire depends on userland-incorporation). But you can get issues during new zone setup if your NGZ misses entire. So, you have three options:
Let's look on the last option more attentively. For example, I'm going to experiment with new mesa. But userland-incorporation has the following dependency:
As you see, it is marked by facet. So you can do
Firstly, you have to install mesa version offered by openindiana.org publisher.
Update (2016-01-26). If you use your host as test station, it's easier just to uninstall userland-incorporation. Now you can do this without touching entire. Just do
$ pkg list -avf pkg://openindiana.org/consolidation/userland/userland-incorporation FMRI IFO pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151006T203007Z --- pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151005T203207Z --- pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151004T163056Z i-- pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151004T150924Z --- pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151004T132353Z --- pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151004T122350Z --- pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151004T095518Z --- ....
We can see that this system has incorporation with 20151004T163056Z timestamp installed and two more recent versions are available. So I can do something like:
$ sudo pkg update -v \ pkg://openindiana.org/consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0:20151005T203207Z
to move to the 5th October package versions.
Why developers doesn't like incorporations (and IPS generally)? Because it doesn't allow you to do what you want with your system. For example, you can't install another package version.
In case of userland incorporation, you have some freedom. You can just uninstall it (and entire, as entire depends on userland-incorporation). But you can get issues during new zone setup if your NGZ misses entire. So, you have three options:
- stay with old entire, which doesn't depend on userland-incorporation (pkg freeze it);
- uninstall entire and userland-incorporation;
- use facets to relax incorporate dependencies.
Let's look on the last option more attentively. For example, I'm going to experiment with new mesa. But userland-incorporation has the following dependency:
$ pkg contents -m userland-incorporation |grep mesa depend facet.version-lock.x11/library/mesa=true fmri=x11/library/mesa@10.5.9,5.11-2015.0.1.0:20150927T212600Z type=incorporate
As you see, it is marked by facet. So you can do
$ sudo pkg facet facet.version-lock.x11/library/mesa FACET VALUE SRC version-lock.x11/library/mesa True system $ sudo pkg change-facet facet.version-lock.x11/library/mesa=false $ sudo pkg install pkg://userland/x11/library/mesa $ sudo pkg info mesa Name: x11/library/mesaBut beware, if you would like to change facet back, you can't do it:
Summary: The Mesa 3-D Graphics Library
Category: System/X11
State: Installed
Publisher: userland
Version: 11.0.2
Branch: 2015.0.1.0
Packaging Date: October 7, 2015 03:00:58 PM
Last Install Time: October 7, 2015 06:49:24 PM
Size: 34.82 MB
FMRI: pkg://userland/x11/library/mesa@11.0.2-2015.0.1.0:20151007T150058Z
Project URL: http://www.mesa3d.org/
Source URL: ftp://ftp.freedesktop.org/pub/mesa/11.0.2/mesa-11.0.2.tar.xz
$ sudo pkg change-facet version-lock.x11/library/mesa=true Creating Plan (Solver setup): / pkg change-facet: Package entire must be uninstalled before the requested operation can be performed. Reject: pkg://openindiana.org/entire@0.5.11-2015.0.2.1:20151003T221212Z Reason: No version matching 'require' dependency consolidation/userland/userland-incorporation can be installed Package x11/server/xorg/driver/xorg-video-ati must be uninstalled before the requested operation can be performed. Reject: pkg://openindiana.org/x11/server/xorg/driver/xorg-video-ati@6.14.6-2015.0.1.0:20150927T212825Z Reason: No version matching 'require' dependency x11/server/xorg@1.14.7-2015.0.1.0 can be installed ---------------------------------------- Reject: pkg://openindiana.org/x11/server/xorg@1.14.7-2015.0.1.0:20150927T184317Z Reason: No version matching 'optional' dependency x11/library/mesa@7.4.4-2014.1.3.0 can be installed ---------------------------------------- Reject: pkg://userland/x11/library/mesa@11.0.2-2015.0.1.0:20151007T150058Z Reason: This version is excluded by installed incorporation consolidation/userland/userland-incorporation@0.5.11-2015.0.2.0 ---------------------------------------- ---------------------------------------- .....
Firstly, you have to install mesa version offered by openindiana.org publisher.
Update (2016-01-26). If you use your host as test station, it's easier just to uninstall userland-incorporation. Now you can do this without touching entire. Just do
$ sudo pkg change-facet facet.require.consolidation/userland/userland-incorporation=false $ sudo pkg uninstall userland-incorporation
четверг, 23 июля 2015 г.
On attaching zones and linked images
Recently updated IPS was added to OI and it caused some inconvenience to developers. The most annoying "feature" is caused by publisher check: NGZ first several publishers should be the same as GZ's publishers and their stickiness should match.
OK, I've set the publishers according to this rule, but today was surprised by fact that I can't longer set openindiana.org publisher to be non-sticky in NGZ. I've set openindiana.org publisher to non-sticky in GZ, NGZ, but still IPS complains on "pkg install":
pkg install: Invalid child image publisher configuration. Child image publisher
configuration must be a superset of the parent image publisher configuration.
Please update the child publisher configuration to match the parent. If the
child image is a zone this can be done automatically by detaching and
attaching the zone.
The parent image has the following enabled publishers:
PUBLISHER 0: openindiana.org
PUBLISHER 1: userland (non-sticky)
The child image has the following enabled publishers:
PUBLISHER 0: openindiana.org (non-sticky)
PUBLISHER 1: userland (non-sticky)
PUBLISHER 2: hipster-encumbered
I've rechecked. Both GZ and NGZ had openindiana.org publisher set to non-sticky. I've followed IPS advice - detached and attached zone. And zone attach -u failed with the same error.
OK. Time for black magic. I've unset userland publisher. Set GZ and NGZ publisher list only to openindiana.org (non-sticky). The same issue - IPS doesn't see that GZ publisher is non-sticky now. So, I concluded that information about parent image is recorded or cached in some local zone configuration file. Looked at zone's /var/pkg and found /var/pkg/linked/linked_ppubs, which listed [["openindiana.org", true], [userland, false]]. I changed this file to [["openindiana.org", false]] and after that could attach zone.
I think I still doesn't understand as linked images work (or should work), but they are starting annoying me...
OK, I've set the publishers according to this rule, but today was surprised by fact that I can't longer set openindiana.org publisher to be non-sticky in NGZ. I've set openindiana.org publisher to non-sticky in GZ, NGZ, but still IPS complains on "pkg install":
pkg install: Invalid child image publisher configuration. Child image publisher
configuration must be a superset of the parent image publisher configuration.
Please update the child publisher configuration to match the parent. If the
child image is a zone this can be done automatically by detaching and
attaching the zone.
The parent image has the following enabled publishers:
PUBLISHER 0: openindiana.org
PUBLISHER 1: userland (non-sticky)
The child image has the following enabled publishers:
PUBLISHER 0: openindiana.org (non-sticky)
PUBLISHER 1: userland (non-sticky)
PUBLISHER 2: hipster-encumbered
I've rechecked. Both GZ and NGZ had openindiana.org publisher set to non-sticky. I've followed IPS advice - detached and attached zone. And zone attach -u failed with the same error.
OK. Time for black magic. I've unset userland publisher. Set GZ and NGZ publisher list only to openindiana.org (non-sticky). The same issue - IPS doesn't see that GZ publisher is non-sticky now. So, I concluded that information about parent image is recorded or cached in some local zone configuration file. Looked at zone's /var/pkg and found /var/pkg/linked/linked_ppubs, which listed [["openindiana.org", true], [userland, false]]. I changed this file to [["openindiana.org", false]] and after that could attach zone.
I think I still doesn't understand as linked images work (or should work), but they are starting annoying me...
Подписаться на:
Сообщения (Atom)