This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Knowledge Base:Unmasking a package
Synopsis
Some software packages are masked so that users can be properly warned before installing them. Any attempt to install such a package results in the warning from Portage that additional changes are needed before it will proceed:
root #
emerge --ask =xorg-server-1.11.99.2
[ebuild U #] x11-base/xorg-server-1.11.99.2 [1.11.2-r2] The following mask changes are necessary to proceed: #required by =xorg-server-1.11.99.2 (argument) # /usr/portage/profiles/package.mask: # Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> (19 Dec 2011) # Mask prerelease x11 packages =x11-base/xorg-server-1.11.99.2
Environment
Any Gentoo installation.
Analysis
Next to the KEYWORDS settings in the ebuild, additional masking is available within Gentoo. Developers can explicitly mask out a package by mentioning it in the package.mask file within the profiles. The masked file can be coupled with an explanation as to why the package has been masked. Common reasons for masking include pre-release (unstable) versions of a certain package, there is no more upstream development, and there are known security issues in the package.
Resolution
Generally, it is not a good idea to unmask a package since such packages are not meant to be used on production systems or can cause severe breakage on the system. Be sure proper research has been done before deciding to unmask a package.
Using --autounmask-write
Re-running the emerge command with --autounmask-write
automatically queues the required text file alteration:
root #
emerge --ask --autounmask-write =xorg-server-1.11.99.2
As with all configuration files, the final update is made by running dispatch-conf (or alternatively etc-update):
root #
dispatch-conf
Examine the diff output of the configuration files, press q to exit the pager (if no commands appear at the end), and then u for use-new to accept the alterations. Press z to zap (disregard) the changes.
Finally, re-run emerge one last time:
root #
emerge --ask =xorg-server-1.11.99.2
Manual resolution
Using traditional files
Create the /etc/portage directory if it does not yet exist:
root #
mkdir /etc/portage
Add the required line to a (new) package.unmask file:
root #
echo "=x11-base/xorg-server-1.11.99.2" >> /etc/portage/package.unmask
Using directories
Create the /etc/portage/package.unmask directory if it does not yet exist:
root #
mkdir -p /etc/portage/package.unmask
Create a file (or files) for the unmask operations to perform. For instance, to unmask the xorg-server-1.11.99.2
package as mentioned earlier, run:
root #
echo "=x11-base/xorg-server-1.11.99.2" > /etc/portage/package.unmask/xorg-server
Most masked packages will not accept generic keywords, so specific keywords may need to be granted for the masked package.
See also
- Accepting a keyword for a single package in the Knowledge Base.