2

I would like to get Portage to always install the latest available version of selected software (i.e., software specified when running emerge, along with all relevant dependencies that also need to be installed), and upgrade to the latest available version (i.e., in my local copy of the Portage Tree) of installed software upon running:

emerge -uDU --with-bdeps=y @world

. I know that Portage, by default, installs or upgrades to (unless otherwise specified) the best available version of the software in question, which is not necessarily the latest (as the latest may have stability issues). I would like to know how to make my Gentoo Linux VM bleeding edge, with only the very latest software in my local copy of the Portage Tree. I know theoretically I could go the manual way and re-install each piece of software, selecting the latest version available, but as you can appreciate this would be incredibly tedious and I would have to re-do this regularly to keep the system bleeding edge, so I was wondering if a simpler way of doing this exists.

2

The closest you can get to bleeding edge in terms of the portage tree is to use ACCEPT_KEYWORDS, found in /etc/portage/make.conf. The ACCEPT_KEYWORDS variable is usually set to stable, like so:

ACCEPT_KEYWORDS="amd64"

Adding the tilde symbol, like so:

ACCEPT_KEYWORDS="~amd64"

will tell Portage to install the unstable package of every package on the system. Complete the change, by saving make.conf, and issuing:

emerge -e system && emerge -e world

Note that this is done twice because:

  1. The first pass through system rebuilds the unstable packages in your toolchain, using the stable toolchain.
  2. The second pass through world, includes system, which erases the fact that the unstable toolchain was built with the stable one, plus every installed package. Note that a system with a Desktop, i.e KDE, will contain nearly 1,400 packages

To take this one step further, which is what you are trying to approach, install app-portage/eix, or some other indexing tool that searches by version numbers and unmask, and install Live Ebuilds, i.e. those package versions ending in 9999. Be aware that not every package has a Live Ebuild, but every package does have an unstable counterpart, i.e., those in ~amd64, or ~x86. As an example of a system, recently reinstalled but maintained over 4+ years (I've migrated data in my /home, and /etc/portage multiple times), I present a properly commented keywords file. This is how you mix branches, as I run a stable system, that uses these unstable packages:

# I could restore this from backup
# but it needs cleaning so I'm
# rebuilding it from scratch

# Added Feb. 1, 2015
# Reason: Needed for Emptytree to Finish
# Package Name          Arch
media-gfx/graphviz      ~amd64

# Added Feb. 5, 2015
# Reason: Added for VirtualMachines
# Package Name          Arch
app-emulation/winetricks    ~amd64
dev-lang/ruby           ~amd64
app-emulation/vagrant       ~amd64
dev-ruby/racc           ~amd64
dev-ruby/rdoc           ~amd64
dev-ruby/i18n           ~amd64
dev-ruby/rake           ~amd64
dev-ruby/net-ssh        ~amd64
dev-ruby/json           ~amd64
dev-ruby/log4r          ~amd64
dev-ruby/ffi            ~amd64
dev-ruby/childprocess       ~amd64
virtual/ruby-ssl        ~amd64
virtual/rubygems        ~amd64
dev-ruby/net-scp        ~amd64
dev-lang/ruby           ~amd64
app-eselect/eselect-ruby    ~amd64
dev-ruby/rubygems       ~amd64

# Added Feb 17, 2015
# Reason: World Update
# Package Name          Arch
dev-ruby/minitest       ~amd64
dev-ruby/power_assert       ~amd64
dev-ruby/test-unit      ~amd64

# Added Feb 20, 2015
# Reason: Required for Blender
# Package Name          Arch
sci-libs/ldl            ~amd64
media-gfx/blender       ~amd64

# Added Feb 23, 2015
# Reason: Required for eclean-kernel
# Package Name          Arch
dev-python/pymountboot      ~amd64
app-admin/eclean-kernel     ~amd64

# Added Feb 25, 2015
# Reason: Needed for net-lbs/ortp rebuild
# Package Name          Arch
media-libs/mediastreamer    ~amd64

# Added Mar 1, 2015
# Reason: Needed for Skype
# Package Name          Arch
net-im/skype            ~amd64

# Added Mar 30, 2015
# Reason: Needed for Switch to new multilib ABI
# Package Name          Arch
dev-qt/qtcore:4         ~amd64
dev-qt/qtdbus:4         ~amd64
dev-qt/qttranslations:4     ~amd64
dev-qt/qtchooser:4      ~amd64
dev-qt/qtgui:4          ~amd64
dev-qt/qtwebkit:4       ~amd64
dev-qt/qtxmlpatterns:4      ~amd64
dev-qt/qt3support:4         ~amd64
dev-qt/qtsql:4          ~amd64
dev-qt/qtscript:4       ~amd64
dev-qt/qtdeclarative:4      ~amd64
dev-qt/qtnetwork:4      ~amd64
dev-qt/qttest:4         ~amd64
dev-qt/qtwidgets:4      ~amd64
dev-qt/qtsvg:4          ~amd64
dev-qt/qtopengl:4       ~amd64
dev-qt/designer:4       ~amd64
dev-qt/qt-meta:4        ~amd64

sys-devel/automake      ~amd64
dev-libs/libgcrypt      ~amd64
dev-libs/libgcrypt      ~amd64
virtual/acl             ~amd64
sys-devel/gettext       ~amd64
sys-devel/automake-wrapper  ~amd64

# Added Mar 31, 2015
# Reason: Added for Eve Online to work
# Package Name          Arch
#x11-drivers/nvidia-drivers ~amd64
app-emulation/wine      ~amd64

# Added Jun 29, 2015
# Reason: Added Native Plugin Suport
# Package Name          Arch
www-plugins/pipelight       ~amd64

# Added Jul 20, 2015
# Reason: Needed for new Stable dev-libs/boost.  See Bug #540190
# Package Name              Arch
sys-block/thin-provisioning-tools   ~amd64

# Added Aug 11, 2015
# Reason: Added new Turn based RPG
# Package Name          Arch
games-roguelike/tome4       ~amd64

# Added Sep. 9, 2015
# Reason: Trying Webmin
# Package Name          Arch
app-admin/webmin        ~amd64
dev-perl/Crypt-OpenSSL-DSA  ~amd64
dev-perl/Net-DNS-SEC        ~amd64
net-dns/dnssec-tools        ~amd64
dev-perl/Authen-Libwrap     ~amd64
dev-perl/Getopt-GUI-Long    ~amd64

# Added Sep. 29, 2015
# Reason: Need newest Java for Minecraft
# Package Name          Arch
dev-java/oracle-jdk-bin     ~amd64
dev-java/oracle-jre-bin     ~amd64

# Added Sep. 30, 2015
# Reason: Needed for Skype
# Package Name          Arch
dev-libs/sni-qt         ~amd64

# Added Jan. 12,2016
# Reason: Needed for World Update
# Package Name          Arch
dev-ruby/net-telnet     ~amd64
dev-ruby/did_you_mean       ~amd64

# Added Jan. 27,2016
# Reason: Needed for World Update
# Package Name          Arch
dev-ruby/abstract       ~amd64
dev-ruby/erubis         ~amd64
dev-ruby/rb-inotify     ~amd64
dev-ruby/hashicorp-checkpoint   ~amd64
dev-ruby/bundler        ~amd64
dev-ruby/rest-client        ~amd64
dev-ruby/net-sftp       ~amd64
virtual/ruby-ffi        ~amd64
dev-ruby/listen         ~amd64

# Added Feb. 21, 2016
# Reason: Netbeans 8.1 supports PHP 5.6 and CakePHP 3.x
# Package Name          Arch
dev-util/netbeans       ~amd64
dev-java/jtidy          ~amd64
dev-java/jcommander     ~amd64
dev-java/netbeans-harness   ~amd64
dev-java/netbeans-dlight    ~amd64
dev-java/netbeans-webcommon ~amd64
dev-java/netbeans-websvccommon  ~amd64
dev-java/netbeans-java      ~amd64
dev-java/testng         ~amd64
dev-java/netbeans-platform  ~amd64
dev-java/netbeans-ide       ~amd64
dev-java/netbeans-mobility  ~amd64
dev-java/snakeyaml      ~amd64
dev-java/netbeans-extide    ~amd64
dev-java/netbeans-php       ~amd64
dev-java/netbeans-apisupport    ~amd64
dev-java/netbeans-cnd       ~amd64
dev-java/netbeans-enterprise    ~amd64
dev-java/netbeans-profiler  ~amd64
dev-java/guice          ~amd64
dev-java/netbeans-nb        ~amd64
dev-java/iso-relax      ~amd64

# Added Mar. 16, 2016
# Reason: See News Item 27, needed for long overdue World Update
# Package Name          Arch
app-admin/apache-tools      ~amd64
www-servers/apache      ~amd64

# Added Mar.26, 2016
# Reason: Trying to fix Istaria
# Package Name          Arch
app-emulation/playonlinux   ~amd64

# Added Mar.26, 2016
# Reason: Finally Configuring CUPS
# Package Name          Arch
net-print/hplip         ~amd64

# Added Apr. 9, 2016
# Reason: Tools Needed for Systemd migration
# Package Name          Arch
sys-kernel/genkernel-next   ~amd64
sys-kernel/dracut       ~amd64

# Added Apr. 11, 2016
# Reason: Needed for KDE Plasma Migration
# Using Exact Versions Will Fill the Gap until these are stabilized. 
# Meta Packages
# Package Name              Arch
=kde-apps/kdenetwork-meta-15.12.3-r1    ~amd64
=kde-apps/kde-apps-meta-15.12.3-r3  ~amd64
=kde-apps/kdebase-runtime-meta-15.12.3  ~amd64
=kde-apps/kdeutils-meta-15.12.3     ~amd64
=kde-apps/kdeadmin-meta-15.12.3     ~amd64
=kde-apps/kdegames-meta-15.12.3     ~amd64
=kde-apps/kdegraphics-meta-15.12.3  ~amd64
=kde-apps/kdeedu-meta-15.12.3-r1    ~amd64
=kde-apps/kdemultimedia-meta-15.12.3    ~amd64
=kde-apps/kdecore-meta-15.12.3      ~amd64
=kde-apps/kdetoys-meta-15.08.3      ~amd64
# Packages in Meta Packages
# Package Name              Arch
=kde-apps/kiten-15.12.3         ~amd64
=kde-apps/kiconfinder-15.12.3       ~amd64
=kde-apps/klettres-15.12.3      ~amd64
=kde-apps/step-15.12.3          ~amd64
=kde-apps/libkdcraw-15.12.3         ~amd64
=kde-apps/libkipi-15.12.3       ~amd64
=kde-apps/kwalletmanager-15.12.3    ~amd64
=kde-apps/renamedlg-plugins-15.12.3     ~amd64
=kde-apps/krfb-15.12.3          ~amd64
=kde-apps/kgeography-15.12.3        ~amd64
=kde-apps/killbots-15.12.3      ~amd64
=kde-apps/katomic-15.12.3       ~amd64
=kde-apps/knavalbattle-15.12.3      ~amd64
=kde-apps/kreversi-15.12.3      ~amd64
=kde-apps/artikulate-15.12.3        ~amd64
=kde-apps/kwrite-15.12.3        ~amd64
=kde-apps/kmahjongg-15.12.3         ~amd64
=kde-apps/kruler-15.12.3        ~amd64
=kde-apps/kshisen-15.12.3       ~amd64
=kde-apps/kollision-15.12.3-r1      ~amd64
=kde-apps/rocs-15.12.3          ~amd64
=kde-apps/kpat-15.12.3-r1       ~amd64
=kde-apps/ktimezoned-15.12.3        ~amd64
=kde-apps/kbreakout-15.12.3         ~amd64
=kde-apps/okular-15.12.3        ~amd64
=kde-apps/kreadconfig-15.12.3       ~amd64
=kde-apps/kig-15.12.3           ~amd64
=kde-apps/kcolorchooser-15.12.3     ~amd64
=kde-apps/kdebase-menu-15.12.3      ~amd64
=kde-apps/libkexiv2-15.12.3         ~amd64
=kde-apps/solid-runtime-15.12.3     ~amd64
=kde-apps/kcharselect-15.12.3       ~amd64
=kde-apps/dolphin-15.12.3-r1        ~amd64
=kde-apps/kteatime-15.12.3      ~amd64
=kde-apps/kamera-15.12.3        ~amd64
=dev-cpp/eigen-3.2.8-r2         ~amd64
=kde-apps/kdebugsettings-15.12.3    ~amd64
=kde-apps/kcron-15.12.3         ~amd64
=kde-apps/ark-15.12.3           ~amd64
=kde-apps/kimgio-15.12.3        ~amd64
=kde-apps/kopete-15.12.3        ~amd64
=kde-apps/knotify-15.12.3       ~amd64
=kde-apps/kioclient-15.12.3         ~amd64
=kde-apps/kigo-15.12.3          ~amd64
=kde-apps/bomber-15.12.3        ~amd64
=kde-apps/libkmahjongg-15.12.3      ~amd64
=kde-apps/krdc-15.12.3          ~amd64
=kde-apps/libkcddb-15.12.3      ~amd64
=kde-apps/ktuberling-15.12.3        ~amd64
=kde-apps/kdebase-menu-icons-15.12.3    ~amd64
=kde-apps/kblackbox-15.12.3         ~amd64
=kde-apps/ksystemlog-15.12.3        ~amd64
=kde-apps/kdebugdialog-15.12.3      ~amd64
=kde-apps/kmix-15.12.3          ~amd64
=kde-apps/libkeduvocdocument-15.12.3    ~amd64
=kde-apps/kdf-15.12.3           ~amd64
=kde-apps/phonon-kde-15.12.3        ~amd64
=kde-apps/svgpart-15.12.3       ~amd64
=kde-apps/kolf-15.12.3          ~amd64
=kde-apps/kfourinline-15.12.3-r1    ~amd64
=kde-apps/filelight-15.12.3         ~amd64
=kde-apps/kturtle-15.12.3       ~amd64
=kde-apps/kdiamond-15.12.3      ~amd64
=kde-apps/kfile-15.12.3         ~amd64
=kde-apps/kiriki-15.12.3        ~amd64
=kde-apps/kcalc-15.12.3-r1      ~amd64
=kde-apps/kdebase-data-15.12.3      ~amd64
=kde-apps/kanagram-15.12.3      ~amd64
=kde-apps/kdenlive-15.12.3      ~amd64
=kde-plasma/kwallet-pam-5.6.2-r1    ~amd64
=kde-apps/ktimer-15.12.3        ~amd64
=kde-apps/kjumpingcube-15.12.3-r1   ~amd64
=kde-apps/sweeper-15.12.3       ~amd64
=kde-apps/ktraderclient-15.12.3     ~amd64
=kde-apps/kurifilter-plugins-15.12.3    ~amd64
=media-libs/mlt-0.9.8-r2        ~amd64
=kde-apps/palapeli-15.12.3      ~amd64
=kde-apps/klickety-15.12.3      ~amd64
=kde-apps/kmplot-15.12.3        ~amd64
=kde-apps/kapman-15.12.3        ~amd64
=kde-apps/libkdegames-15.12.3       ~amd64
=kde-apps/libksane-15.12.3      ~amd64
=kde-apps/kalzium-15.12.3-r2        ~amd64
=kde-apps/picmi-15.12.3         ~amd64
=kde-apps/ffmpegthumbs-15.12.3      ~amd64
=kde-apps/kio-extras-15.12.3        ~amd64
=kde-apps/klines-15.12.3        ~amd64
=media-video/movit-1.3.2        ~amd64
=kde-apps/kget-15.12.3          ~amd64
=kde-apps/cantor-15.12.3-r1         ~amd64
=kde-apps/ksnakeduel-15.12.3        ~amd64
=kde-apps/bovo-15.12.3          ~amd64
=kde-apps/kalgebra-15.12.3      ~amd64
=kde-apps/kajongg-15.12.3       ~amd64
=kde-apps/kolourpaint-15.12.3       ~amd64
=kde-apps/kbruch-15.12.3-r1         ~amd64
=kde-apps/kbounce-15.12.3       ~amd64
=kde-apps/kgoldrunner-15.12.3       ~amd64
=kde-apps/kblocks-15.12.3-r1        ~amd64
=kde-apps/knewstuff-15.12.3         ~amd64
=kde-apps/kcmshell-15.12.3      ~amd64
=kde-apps/kubrick-15.12.3       ~amd64
=kde-apps/konquest-15.12.3      ~amd64
=kde-apps/spectacle-15.12.3         ~amd64
=kde-apps/kde4-l10n-15.12.3-r1      ~amd64
=kde-apps/kscd-15.12.3          ~amd64
=kde-apps/kwordquiz-15.12.3-r1      ~amd64
=kde-apps/plasma-runtime-15.12.3    ~amd64
=kde-apps/print-manager-15.12.3     ~amd64
=kde-apps/kdegraphics-mobipocket-15.12.3 ~amd64
=kde-apps/kdeedu-data-15.12.3-r1    ~amd64
=kde-apps/kwalletd-15.12.3      ~amd64
=kde-apps/zeroconf-ioslave-15.12.3  ~amd64
=kde-apps/kmimetypefinder-15.12.3   ~amd64
=kde-apps/thumbnailers-15.12.3      ~amd64
=dev-libs/grantlee-5.0.0        ~amd64
=kde-apps/juk-15.12.3           ~amd64
=kde-apps/baloo-widgets-15.12.3     ~amd64
=kde-apps/kpasswdserver-15.12.3     ~amd64
=kde-apps/ksirk-15.12.3         ~amd64
=kde-apps/kdontchangethehostname-15.12.3 ~amd64
=kde-apps/granatier-15.12.3         ~amd64
=kde-apps/kstars-15.12.3        ~amd64
=kde-apps/kspaceduel-15.12.3        ~amd64
=kde-apps/ktouch-15.12.3        ~amd64
=kde-apps/ksudoku-15.12.3       ~amd64
=kde-apps/keditfiletype-15.12.3     ~amd64
=kde-apps/analitza-15.12.3      ~amd64
=kde-apps/ksquares-15.12.3      ~amd64
=kde-apps/kqtquickcharts-15.12.3    ~amd64
=kde-apps/audiocd-kio-15.12.3       ~amd64
=kde-apps/kate-15.12.3          ~amd64
=kde-apps/kremotecontrol-15.12.3    ~amd64
=kde-apps/khangman-15.12.3      ~amd64
=kde-apps/ksaneplugin-15.12.3       ~amd64
=kde-apps/kde-l10n-15.12.3      ~amd64
=kde-apps/parley-15.12.3        ~amd64
=kde-apps/knetwalk-15.12.3-r1       ~amd64
=kde-apps/konsole-15.12.3       ~amd64
=kde-apps/kstart-15.12.3        ~amd64
=kde-apps/lskat-15.12.3         ~amd64
=kde-apps/dragon-15.12.3        ~amd64
=kde-apps/libkcompactdisc-15.12.3-r1    ~amd64
=kde-apps/kdebase-desktoptheme-15.12.3  ~amd64
=kde-apps/kmines-15.12.3-r1         ~amd64
=kde-apps/kdesu-15.12.3         ~amd64
=kde-apps/blinken-15.12.3       ~amd64
=kde-apps/kquitapp-15.12.3      ~amd64
=kde-apps/kdenetwork-filesharing-15.12.3 ~amd64
=kde-apps/gwenview-15.12.3      ~amd64

Note the equals sign allows for exact versioning. The exact versioning will be removed once the versions above the noted ones go stable. KDE5 was recently bumped to stable, but the apps-meta package was put back to unstable. See the news item 2016-04-02 KDE Plasma 5 Upgrade for the valid reason this was done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.