This uses pkgDepTopoSort
internally so that the package
dependency tree is determined, and then packages are unloaded
in the reverse order. Some packages don't unload successfully for
a variety of reasons. Several known packages that have this problem
are identified internally and *not* unloaded. Currently, these are
glue
, rlang
, ps
, ellipsis
, and, processx
.
detachAll(pkgs, dontTry = NULL, doSort = TRUE)
A character vector of packages to detach. Will be topologically sorted
unless doSort
is FALSE
.
A character vector of packages to not try. This can be used by a user if they find a package fails in attempts to unload it, e.g., "ps"
If TRUE
(the default), then the pkgs
will be
topologically sorted. If FALSE
, then it won't. Useful if the
pkgs
are already sorted.
A numeric named vector, with names of the packages that were attempted.
2
means the package was successfully unloaded, 1
it was
tried, but failed, 3
it was in the search path and was detached
and unloaded.