Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
software:valet:02_packages [2023-12-21 10:42] – frey | software:valet:02_packages [2023-12-21 10:44] (current) – [Can I Add My Own Packages?] frey | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Packages ====== | ||
+ | {{: | ||
+ | |||
+ | As newer versions of software are released, the older versions are usually not removed immediately when the new are installed on a system. | ||
+ | |||
+ | VALET uses a //versioned package id// similar to those used in " | ||
+ | < | ||
+ | mathematica/ | ||
+ | mathematica/ | ||
+ | mathematica/ | ||
+ | openmpi/ | ||
+ | openmpi/ | ||
+ | openmpi/ | ||
+ | openmpi/ | ||
+ | </ | ||
+ | A special form of //versioned package id// references whatever version of a package is indicated to be the default version: | ||
+ | < | ||
+ | mathematica/ | ||
+ | openmpi/ | ||
+ | </ | ||
+ | The "/" | ||
+ | < | ||
+ | mathematica | ||
+ | openmpi | ||
+ | </ | ||
+ | The default version is specified in each package' | ||
+ | |||
+ | ===== What Packages Are Available? ===== | ||
+ | |||
+ | A list of available packages is displayed using the '' | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_list | ||
+ | Available packages: | ||
+ | openmpi | ||
+ | pgi | ||
+ | matlab | ||
+ | </ | ||
+ | |||
+ | For individual packages, a list of versions is displayed using '' | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_versions openmpi | ||
+ | Available versions in package (* = default version): | ||
+ | |||
+ | [/ | ||
+ | openmpi | ||
+ | gcc alias to openmpi/ | ||
+ | intel64 | ||
+ | 1.8.2-intel64 | ||
+ | 1.8.2-gcc-4.8.3 | ||
+ | 1.8 alias to openmpi/ | ||
+ | * 1.8.2 Version 1.8.2, with GCC(system) compilers | ||
+ | </ | ||
+ | |||
+ | The " | ||
+ | |||
+ | A verbose description of a package or package version can be displayed using the '' | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_info openmpi/ | ||
+ | [openmpi/ | ||
+ | Version 1.8.2, with GCC(system) compilers | ||
+ | prefix: / | ||
+ | affect dev env: < | ||
+ | add std paths: < | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Applying Environment Changes from Package(s) ===== | ||
+ | |||
+ | One or more packages are setup in the environment using the '' | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_require openmpi/ | ||
+ | </ | ||
+ | |||
+ | Any problems encountered will result in no changes being made to the environment. | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_require openmpi/ | ||
+ | ERROR: unable to add versioned package: openmpi/ | ||
+ | </ | ||
+ | |||
+ | Problems may occur due to dependencies or incompatibilities that a version of a package has w.r.t. another package: | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_require openmpi/ | ||
+ | ERROR: unable to add versioned package: pgi/8 conflicts with version: pgi/10 | ||
+ | [user@host ~]$ vpkg_require dummy gaussian | ||
+ | ERROR: incompatibility detected between a previously added package and gaussian/ | ||
+ | [user@host ~]$ vpkg_require gaussian dummy | ||
+ | ERROR: incompatibility detected between dummy/ | ||
+ | </ | ||
+ | |||
+ | ===== Undoing Environment Changes ===== | ||
+ | |||
+ | VALET attempts to make a snapshot of your environment prior to each invocation of '' | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_rollback | ||
+ | WARNING: no snapshots defined | ||
+ | </ | ||
+ | |||
+ | The above message is displayed because '' | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_rollback 2 | ||
+ | </ | ||
+ | |||
+ | would perform two rollbacks. | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_rollback all | ||
+ | </ | ||
+ | |||
+ | ===== What If I Forget These Commands? ===== | ||
+ | |||
+ | No problem! | ||
+ | |||
+ | < | ||
+ | [user@host ~]$ vpkg_help | ||
+ | |||
+ | Package ids: | ||
+ | |||
+ | A package is identified by an identifier and an optional version identifer separated | ||
+ | by a forward slash: | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Commands are: | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | version of a package) | ||
+ | | ||
+ | to the environment | ||
+ | | ||
+ | to the environment; | ||
+ | and CPPFLAGS variables with library/ | ||
+ | for the packages | ||
+ | | ||
+ | existed before the last vpkg_require. | ||
+ | argument does multiple rollback operations, e.g. | ||
+ | " | ||
+ | of " | ||
+ | every call to " | ||
+ | | ||
+ | have been added to the environment. | ||
+ | </ | ||
+ | |||
+ | ===== Can I Add My Own Packages? ===== | ||
+ | |||
+ | Sure! Version 1 of VALET exclusively used XML for specification of package files, and is documented in the next section. | ||
+ | |||
+ | To augment the system-wide package files, create a '' | ||
+ | |||
+ | <code sh> | ||
+ | export VALET_PATH=" | ||
+ | </ | ||
+ | |||
+ | The paths in '' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[software: |