Examples for 'base::library.dynam'


Loading DLLs from Packages

Aliases: library.dynam library.dynam.unload .dynLibs

Keywords: data

### ** Examples

## Which DLLs were dynamically loaded by packages?
library.dynam()
                                                         Filename
1                /usr/local/R/4.2/library/methods/libs/methods.so
2                    /usr/local/R/4.2/library/utils/libs/utils.so
3            /usr/local/R/4.2/library/grDevices/libs/grDevices.so
4              /usr/local/R/4.2/library/graphics/libs/graphics.so
5                    /usr/local/R/4.2/library/stats/libs/stats.so
6                      /data/rcloud/library/4.2/xfun/libs/xfun.so
7                    /usr/local/R/4.2/library/tools/libs/tools.so
8                        /data/rcloud/library/4.2/png/libs/png.so
9                    /data/rcloud/library/4.2/Cairo/libs/Cairo.so
10                     /data/rcloud/library/4.2/mime/libs/mime.so
11           /data/rcloud/library/4.2/base64enc/libs/base64enc.so
12                       /data/rcloud/library/4.2/PKI/libs/PKI.so
13 /data/rcloud/library/4.2/rcloud.support/libs/rcloud.support.so
14                   /data/rcloud/library/4.2/rjson/libs/rjson.so
15             /usr/local/R/4.2/library/parallel/libs/parallel.so
16                 /data/rcloud/library/4.2/bitops/libs/bitops.so
17                   /data/rcloud/library/4.2/RCurl/libs/RCurl.so
18                     /data/rcloud/library/4.2/uuid/libs/uuid.so
19               /data/rcloud/library/4.2/rediscc/libs/rediscc.so
   Dynamic.Lookup
1           FALSE
2           FALSE
3           FALSE
4           FALSE
5           FALSE
6           FALSE
7           FALSE
8            TRUE
9           FALSE
10          FALSE
11           TRUE
12          FALSE
13           TRUE
14           TRUE
15          FALSE
16          FALSE
17           TRUE
18          FALSE
19           TRUE
## More on library.dynam.unload() :
## No test: 
require(nlme)
Loading required package: nlme
nlme:::.onUnload # shows library.dynam.unload() call
function (libpath) 
library.dynam.unload("nlme", libpath)
<bytecode: 0x55ccfe97c838>
<environment: namespace:nlme>
detach("package:nlme")  # by default, unload=FALSE ,  so,
tail(library.dynam(), 2)# nlme still there
                                          Filename Dynamic.Lookup
1 /usr/local/R/4.2/library/lattice/libs/lattice.so          FALSE
2       /usr/local/R/4.2/library/nlme/libs/nlme.so          FALSE
## How to unload the DLL ?
## Best is to unload the namespace,  unloadNamespace("nlme")
## If we need to do it separately which should be exceptional:
pd.file <- attr(packageDescription("nlme"), "file")
library.dynam.unload("nlme", libpath = sub("/Meta.*", '', pd.file))
tail(library.dynam(), 2)# 'nlme' is gone now
                                          Filename Dynamic.Lookup
1       /usr/local/R/4.2/library/grid/libs/grid.so          FALSE
2 /usr/local/R/4.2/library/lattice/libs/lattice.so          FALSE
unloadNamespace("nlme") # now gives warning
Warning: .onUnload failed in unloadNamespace() for 'nlme', details:
  call: library.dynam.unload("nlme", libpath)
  error: shared object 'nlme.so' was not loaded
## End(No test)

[Package base version 4.2.3 Index]