EasyBuild: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
Line 8: Line 8:
<!--T:2-->
<!--T:2-->
[https://easybuild.io/ EasyBuild] is a tool for building, installing, and maintaining software on high-performance computing systems.  
[https://easybuild.io/ EasyBuild] is a tool for building, installing, and maintaining software on high-performance computing systems.  
We use it to build almost everything in Compute Canada's software repository, [[CVMFS]].
We use it to build almost everything in our software repository, [[Accessing_CVMFS|CVMFS]].


= EasyBuild and modules = <!--T:3-->
= EasyBuild and modules = <!--T:3-->
One of the key features of EasyBuild is that it automatically generates environment [[Utiliser_des_modules/en|modules]] which can be used to make a software package available in your session. In addition to defining standard Linux environment variables such as <tt>PATH</tt>, <tt>CPATH</tt> and <tt>LIBRARY_PATH</tt>, EasyBuild also defines some environment variables specific to EasyBuild, two of which may be particularly interesting to users:
* <tt>EBROOT<name></tt>: Contains the full path to the location where the software <tt><name></tt> is installed.
* <tt>EBVERSION<name></tt>: Contains the full version of the software <tt><name></tt> loaded by this module.


== EBROOT environment variables == <!--T:4-->
For example, the module <tt>python/3.10.2</tt> on Narval defines:
* <tt>EBROOTPYTHON</tt>: <tt>/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/python/3.10.2</tt>
* <tt>EBVERSIONPYTHON</tt>: <tt>3.10.2</tt>


<!--T:5-->
= Installation recipes and logs =
...MORE NEEDED...
EasyBuild keeps a copy of the recipe used to install each software package, as well as a detailed log inside of the installation directory. This is accessible in the directory <tt>$EBROOT<name>/easybuild</tt>. For example, for the <tt>python/3.10.2</tt> module, the installation directory contains, amongst other things:  
* <tt>$EBROOTPYTHON/easybuild/Python-3.10.2.eb</tt>
* <tt>$EBROOTPYTHON/easybuild/easybuild-Python-3.10.2-*.log</tt>


= Using EasyBuild in your own account = <!--T:6-->
= Using EasyBuild in your own account = <!--T:6-->

Revision as of 17:29, 28 August 2023

Other languages:



This article is a draft

This is not a complete article: This is a draft, a work in progress that is intended to be published into an article, which may or may not be ready for inclusion in the main wiki. It should not necessarily be considered factual or authoritative.




EasyBuild is a tool for building, installing, and maintaining software on high-performance computing systems. We use it to build almost everything in our software repository, CVMFS.

EasyBuild and modules[edit]

One of the key features of EasyBuild is that it automatically generates environment modules which can be used to make a software package available in your session. In addition to defining standard Linux environment variables such as PATH, CPATH and LIBRARY_PATH, EasyBuild also defines some environment variables specific to EasyBuild, two of which may be particularly interesting to users:

  • EBROOT<name>: Contains the full path to the location where the software <name> is installed.
  • EBVERSION<name>: Contains the full version of the software <name> loaded by this module.

For example, the module python/3.10.2 on Narval defines:

  • EBROOTPYTHON: /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/python/3.10.2
  • EBVERSIONPYTHON: 3.10.2

Installation recipes and logs[edit]

EasyBuild keeps a copy of the recipe used to install each software package, as well as a detailed log inside of the installation directory. This is accessible in the directory $EBROOT<name>/easybuild. For example, for the python/3.10.2 module, the installation directory contains, amongst other things:

  • $EBROOTPYTHON/easybuild/Python-3.10.2.eb
  • $EBROOTPYTHON/easybuild/easybuild-Python-3.10.2-*.log

Using EasyBuild in your own account[edit]

You can use EasyBuild to install software in your own home or project directory space. You might do this if, for example, you want to customize a piece of 3rd-party software, or if you want to build a new version of something instead of waiting for staff add it to CVMFS.

Finding a recipe[edit]

An "easyconfig file" is a text file containing the information EasyBuild needs to build a particular piece of software in a particular environment. At Compute Canada we refer to these as "recipes". Writing a recipe from scratch will not be discussed here; you can find more about this in the EasyBuild documentation. Modifying a recipe for your particular situation is easier, and it is easier still to find a suitable recipe and use it unmodified.

...MORE NEEDED...

Choosing a toolchain[edit]

...MORE NEEDED...

Additional resources[edit]