User:Aisha/eselect library

is Article description::an [[eselect module for managing runtime loading of libraries by manipulating the runtime library search paths]].

It is primarily used by the BLAS/LAPACK/64 runtime switch for switching the provider libraries during runtime, by managing the  runtime load paths using the  search file.

List managed libraries
To view all libraries that have runtime alternatives available using :

List providers
To list library providers for the BLAS library, :

Adding provider
Suppose that the package has been installed in the system but the library installed is not an optimized one. The system administrator can compile a local version of the library in a folder, which now contains the created library.

To allow the usage of this library during runtime by add it to.

Setting providers
To set a provider for :

Unset providers
It is also trivial to restore the system back to its original settings:

Now the system will be reverted back to using the  present in

Build-time vs Runtime
It is important to know that building of all software will be done by linking and resolving symbols from the  present in the default. It is only during runtime that the eselected provider will be used. Some points of consideration to keep in mind:
 * Make sure that the library is present in paths search by the linker during build time.
 * Try to keep API compatibility of provider libraries with system-wide libraries.
 * If using chain-loading, make sure no  is going to take place on providers.