Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| software:valet:02_packages [2023-12-21 10:42] – [Can I Add My Own Packages?] 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: | ||