Unblocking a package
Why are some packages blocked?
Most packages are blocked because of one of 3 reasons.:
- The KEYWORD variable in all available ebuilds for that package is missing or set testing(~) for your arch type.
- The package is hard masked in
/usr/portage/profiles/package.mask - The package is blocked by another package that is installed.
Unblocking KEYWORD masked packages
For keyword masked files you only need to add a CPV dep entry in /etc/portage/package.keywords or if its missing, copy the ebuild and needed files into your overlay and edit the KEYWORD value.
File: /etc/portage/package.keywords
>=net-misc/curl-7.11.0 ~x86
To unmask a package once only set ACCEPT_KEYWORDS prior to running emerge. e.g.
ACCEPT_KEYWORDS="~x86" emerge vmware-server
This is particularly useful when combined with -p pretend flag as it allows you to see everything required in the emerge without needing to modify the files mentioned above.
Unblocking hard masked packages
To unmask hard masked packages just add its CPV dep string to /etc/portage/package.unmask
File: /etc/portage/package.unmask
net-im/skype
Unblocking packages by removing a blocking package
The workaround is to remove the old package and emerge the new package. The goal is to do it safely.
emerge --buildpkgonly --nodeps BLOCKEDPACKAGE && emerge -C BLOCKINGPACKAGE && emerge --usepkgonly BLOCKEDPACKAGE
- Build new, blocked package first using
--buildpkgonly --nodeps. - Only if that was successful do we unmerge the old, blocking package.
- Finally we install the new package with
--usepkgonly
File: unblock.sh
#!/bin/bash BLOCKER=$1 BLOCKED=$2 if [[ "$BLOCKED" == "" ]]; then echo "unblock <blocker> <blocked>" exit; fi emerge --buildpkgonly --nodeps $BLOCKED && emerge -C $BLOCKER && emerge --usepkgonly $BLOCKED
http://gentoo-wiki.com/FAQ_Blocked_Package »
[Click to add or edit comments])
Please prepend comments below including a date