Skip to content

Node glibc workaround

Nate Coraor edited this page Jan 23, 2023 · 2 revisions

2023-01-22

We're still on EL7, which ships with GLIBC 2.17. Upstream node binaries are not compatible with that version (https://github.com/nodejs/node/issues/43246), but node built by conda-forge is.

I've manually installed conda-forge node, then used that node with nodeenv from galaxy's virtualenv.

Test

On cvmfs0-psu1:

wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh
bash Mambaforge-Linux-x86_64.sh -b
~/mambaforge/bin/mamba install nodejs=18.12.1
cd ~/mambaforge/bin/
# nodeenv needs nodejs to be on PATH smh
ln -s node nodejs
source /cvmfs/test.galaxyproject.org/venv/bin/activate
cvmfs_server transaction test.galaxyproject.org
PATH=~/mambaforge/bin/:$PATH nodeenv --node=system -p
cvmfs_server publish -a galaxy_23.0_dev_0 -m 'manually installed node 18.12.1 from conda-forge' test.galaxyproject.org

publish the snapshot back from galaxy-04, login to test, activate virtualenv and check that node version starts as expected.

Main

On galaxy04:

cvmfs_server transaction main.galaxyproject.org
/cvmfs/main.galaxyproject.org/deps/_conda/bin/conda create -n _galaxy_node_ --override-channels --strict-channel-priority -c conda-forge -c defaults nodejs=18.12.1
ln -s node /cvmfs/main.galaxyproject.org/deps/_conda/envs/_galaxy_node_/bin/nodejs
PATH=/cvmfs/main.galaxyproject.org/deps/_conda/envs/_galaxy_node_/bin:$PATH /cvmfs/main.galaxyproject.org/venv/bin/nodeenv --node=system -p
cvmfs_server publish -a galaxy_23.0_dev_0 -m 'manually installed node 18.12.1 from conda-forge' main.galaxyproject.org