66 lines
2.2 KiB
Markdown
66 lines
2.2 KiB
Markdown
Downgrade Gentoo from testing to stable
|
|
|
|
At some point in my main Gentoo boxes life I added the ~amd64 keyword into
|
|
my make.conf. I don't remeber why I did this, but I can't think of a reason
|
|
I need my entire install to be bleeding edge.
|
|
|
|
---
|
|
|
|
I did some googling around on the best approach to achieve this and from
|
|
what I read on forums, having a bunch of testing packages downgrade to
|
|
stable is not such a good idea.
|
|
|
|
One reason might be that per app config files are usually only designed to
|
|
be backward compatible, not forward compatible.
|
|
|
|
At any rate, the idea is to gather a list of currently installed testing
|
|
packages and add them to package.keywords for their current version.
|
|
|
|
With this method, eventually those packages will become stable.
|
|
|
|
The method I used is basically from the [sabayon wiki](https://wiki.sabayon.org/index.php?title=HOWTO:_Switch_from_Test_to_Stable_Packages) with a few
|
|
tweaks.
|
|
|
|
1. First, edit make.conf ACCEPT_KEYWORDS to:
|
|
|
|
ACCEPT_KEYWORDS=amd64
|
|
|
|
2. Now use equery, sed and grep to construct a new packge.keywords
|
|
|
|
equery -C -N list -F '=$cpv $mask2' '*' | \
|
|
grep \~ | sed 's/\[~amd64 keyword\]/~amd64/' > \
|
|
/etc/portage/package.keywords/testpackages
|
|
_Basically I added '-C' to remove colours and grep_
|
|
|
|
3. Examine testpackages for sanity, and then test with a world upgrade.
|
|
|
|
emerge --ask --update --newuse --deep --with-bdeps=y @world
|
|
|
|
These are the packages that would be merged, in order:
|
|
|
|
Calculating dependencies... done!
|
|
|
|
Nothing to merge; quitting.
|
|
|
|
Update
|
|
------
|
|
|
|
18 months since making this change I thought I'd see how many of the original
|
|
testing packages are still on my system. This little shell snippit uses equery
|
|
to check if a package listed in the `testpackages` portage file made earlier is
|
|
still installed on the system, and if not, update the file with a `#` in front.
|
|
|
|
for i in $(awk '/=/ {print $1}' testpackages)
|
|
do
|
|
if ! equery l "$i" > /dev/null;
|
|
then
|
|
sudo sed -ie "s/\(${i/\//\\/}\)/#\1/" \
|
|
testpackages
|
|
fi
|
|
done
|
|
|
|
After running this `grep -c '^#' testpackages` shows 368 packages no longer
|
|
needed in here and conversely 118 are still required.
|
|
|
|
Tags: gentoo, portage
|