Ubuntu package

For Ubuntu users, there is a package available to greatly ease the installation of Chaste. It requires an Ubuntu version of Focal (20.04) or newer. Chaste can also be run on other versions of Linix, macOS and Windows using Docker.

The package has been tested with all versions of Ubuntu from Intrepid (8.10) to Jammy (22.04) inclusive, and will be adapted to new versions as soon as possible after they are released.

Each release of Chaste should work with all supported versions of Ubuntu at the time of the Chaste release. But note that the latest Chaste releases won’t work with the oldest (unsupported) Ubuntus, and the older Chaste releases (and their associated bolt-on projects) probably won’t work with the newest Ubuntus without some updating (to use newer dependencies and compilers). The development code should always work with all the currently supported versions of Ubuntu.

1. Accessing the Chaste Package

The package can be downloaded using your package manager (e.g. apt) by adding our repository to your configuration. This can be done by, for example, opening a terminal and running

sudo nano /etc/apt/sources.list.d/chaste.list

and, depending on your version of Ubuntu, add one of the following lines to the chaste.list text file:

Ubuntu 22.04 LTS
deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu jammy/
Ubuntu 21.10
deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu hirsute/
Ubuntu 21.04
deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu impish/
Ubuntu 20.10
deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu groovy/
Ubuntu 20.04 LTS
deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu focal/

The last component of the line depends on your version of Ubuntu, as listed at https://wiki.ubuntu.com/DevelopmentCodeNames. Type lsb_release -a to find this out if you don’t already know it. Note that the trailing “/” is necessary!

Next, install the Chaste public licence key. Back in the terminal, type:

sudo wget -O /usr/share/keyrings/chaste.asc https://chaste.github.io/chaste.asc

2. Getting the correct dependencies

After following point 1 above, you should be able to install the dependencies for Chaste by running:

sudo apt update
sudo apt install chaste-dependencies

Known issue affecting Ubuntu 22.04

Due to a change in libexpat that addresses a security vulnerability, VTK functionality is currently affected. This is a known issue that cannot be easily addressed by Chaste.

If you are using Chaste on Ubuntu 22.04, a temporary workaround is to explicitly install and hold an older versions of libexpat:

sudo apt install libexpat1=2.4.7-1 libexpat1-dev=2.4.7-1
sudo apt-mark hold libexpat1 libexpat1-dev

You should now decide whether you want to be a Code User or a Code Developer.

  • Code Users - are people who want to work with a stable released version of the Chaste code (a new release is made roughly every six months).
  • Code Developers - (both internal and external to the core team) are people who want to work with the latest development version of the Chaste code, between the main stable releases.

See Getting Started for more detail if you still aren’t sure.

2a. For Code USERS (working with a release, rather than developers)

You can obtain the latest stable release of the Chaste source code from our GitHub repository:

git clone -b <release-tag> https://github.com/Chaste/Chaste.git

where <release-tag> is for the latest Chaste release e.g. 2024.1.

Finally, follow the CMake First Run Guide to get up and running with Chaste.

Installing previous releases

If you want a specific version of Chaste, you can download the source code from our GitHub releases page, back to Release 3.0.

2b. For Code DEVELOPERS (or users working with the latest trunk code and projects)

To install the suggested packages:

sudo apt update
sudo apt install --install-recommends chaste-dependencies
sudo apt install `dpkg -s chaste-dependencies | egrep "^Suggests" | cut -d "," -f 1-111 --output-delimiter " " | cut -d ":" -f 2`