Add the ability to specify a list of packages to install / uninstall a separate file. In which you can specify the install, remove packages. This will allow to calculate dependencies and install packages different processes. Ideally - the ability to retrieve file with a tree of dependencies (cache) by option, and run new emerge process without dependence calculating by specifing cache. At example: # calculate dependence and create cache emerge -uDN --into-cache=/tmp/cache-dep @world # use cache without dependence calculating emerge --from-cache=/tmp/cache-dep Reproducible: Always
Wouldn't generic shell mechanics cover reading/writing already? Viz. write: emerge ... > /tmp/deps and read: emerge ... $(cat tmp/deps)? Then the only thing you would want in emerge is a special output option that prints only (valid[1]) atoms, one per line. This would also be rather convenient in writing sets. [1] Unlike the usual output, which omits the equal sign. Which is annoying but that's a different issue. Or the real issue is that emerge should accept atoms without the equal sign. Whatever.
I can specify package list for installing without calculate dependence by "emerge -O pkg1 pkg2 ... pkgN". But output of @emerge -uDNp world@ may contain [uninstall] and [blocks b] packages. I can not execute install and uninstall by one emerge. Blocks and uninstall relieve update from file collision. At example: emerge -Op dev-libs/libltdl dev-libs/libtool [binary N ] dev-libs/libltdl-2.4.4 USE="-static-libs" ABI_X86="(64) -32 (-x32)" [binary U ] sys-devel/libtool-2.4.4 [2.4.2-r1] ... Detected collisiion(s): /usr/lib64/libltdl.la /usr/include/ltdl.h /usr/include/libltdl/lt_error.h ... emerge -p dev-libs/libltdl dev-libs/libtool [binary N ] dev-libs/libltdl-2.4.4 USE="-static-libs" ABI_X86="(64) -32 (-x32)" [binary U ] sys-devel/libtool-2.4.4 [2.4.2-r1] [blocks b ] <sys-devel/libtool-2.4.3-r2:2 ("<sys-devel/libtool-2.4.3-r2:2" is blocking dev-libs/libltdl-2.4.4) All OK.