<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.anunna.wur.nl/index.php?action=history&amp;feed=atom&amp;title=Installing_Personal_Software</id>
	<title>Installing Personal Software - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.anunna.wur.nl/index.php?action=history&amp;feed=atom&amp;title=Installing_Personal_Software"/>
	<link rel="alternate" type="text/html" href="https://wiki.anunna.wur.nl/index.php?title=Installing_Personal_Software&amp;action=history"/>
	<updated>2026-06-18T13:00:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.anunna.wur.nl/index.php?title=Installing_Personal_Software&amp;diff=2766&amp;oldid=prev</id>
		<title>Haars0011 at 13:40, 16 June 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.anunna.wur.nl/index.php?title=Installing_Personal_Software&amp;diff=2766&amp;oldid=prev"/>
		<updated>2026-06-16T13:40:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:40, 16 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l52&quot;&gt;Line 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 52:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;export myScratch=/lustre/scratch/$affiliation/$USER&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;export myScratch=/lustre/scratch/$affiliation/$USER&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;export myBackup=/lustre/backup&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/GUESTS&lt;/del&gt;/$affiliation/$USER&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;export myBackup=/lustre/backup/$affiliation/$USER&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;export myNobackup=/lustre/nobackup/$affiliation/$USER&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;export myNobackup=/lustre/nobackup/$affiliation/$USER&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l124&quot;&gt;Line 124:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;module load sl7-libs/main&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;module load &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;legacy &lt;/ins&gt;sl7-libs/main&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Be aware that this bad practice, if you really need to keep old software running, you are better off putting it inside a container. See the [[Apptainer]] page&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Older binaries in a Jupyter kernel ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Older binaries in a Jupyter kernel ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Haars0011</name></author>
	</entry>
	<entry>
		<id>https://wiki.anunna.wur.nl/index.php?title=Installing_Personal_Software&amp;diff=2761&amp;oldid=prev</id>
		<title>Haars0011: Phase 1 § 5 P1.5.3 / Phase 2 P2.10: new hub merging Old binaries + Setting TMPDIR + Setting local variables + completed Aliases DRAFT. Canonical $myScratch/$myBackup/$myNobackup variable convention. (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://wiki.anunna.wur.nl/index.php?title=Installing_Personal_Software&amp;diff=2761&amp;oldid=prev"/>
		<updated>2026-06-16T13:34:36Z</updated>

		<summary type="html">&lt;p&gt;Phase 1 § 5 P1.5.3 / Phase 2 P2.10: new hub merging Old binaries + Setting TMPDIR + Setting local variables + completed Aliases DRAFT. Canonical $myScratch/$myBackup/$myNobackup variable convention. (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page covers the personal touches that make Anunna comfortable to work on: shell configuration, aliases, environment variables, a custom temporary directory, and a workaround for running older binaries. None of this is required to use the cluster, but most regular users set up at least some of it.&lt;br /&gt;
&lt;br /&gt;
For installing actual software, the recommended routes are language- or tool-specific:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039; — virtual environments and Jupyter kernels: see [[Python]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; — local package libraries: see [[R]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Containers&amp;#039;&amp;#039;&amp;#039; — anything else, packaged reproducibly: see [[Apptainer]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Cluster-wide modules&amp;#039;&amp;#039;&amp;#039; — request a shared install: see [[Environment Modules]].&lt;br /&gt;
&lt;br /&gt;
== Shell configuration files ==&lt;br /&gt;
&lt;br /&gt;
Your shell reads a couple of files when it starts:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; — read by interactive non-login shells. This is the usual place for aliases and most environment variables.&lt;br /&gt;
* &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt; — read by login shells. Often it just sources &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; so both kinds of shell behave the same.&lt;br /&gt;
&lt;br /&gt;
Keeping your aliases and variables in a separate &amp;lt;code&amp;gt;~/.bash_aliases&amp;lt;/code&amp;gt; file (sourced from &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt;) keeps things tidy. Add this to &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; so the file is picked up:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
if [ -f ~/.bash_aliases ]; then&lt;br /&gt;
    . ~/.bash_aliases&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aliases and local variables ==&lt;br /&gt;
&lt;br /&gt;
An &amp;#039;&amp;#039;&amp;#039;alias&amp;#039;&amp;#039;&amp;#039; is a short name for a longer command; a &amp;#039;&amp;#039;&amp;#039;local variable&amp;#039;&amp;#039;&amp;#039; stores a value (such as a path) you reuse often. Defining a handful of both saves a lot of typing.&lt;br /&gt;
&lt;br /&gt;
The example below is a complete &amp;lt;code&amp;gt;~/.bash_aliases&amp;lt;/code&amp;gt;. It defines convenience aliases plus three variables that point at your personal directories on the [[Filesystems | Lustre filesystem]] — &amp;lt;code&amp;gt;$myScratch&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$myBackup&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;$myNobackup&amp;lt;/code&amp;gt;. Other pages (for example [[Apptainer]]) assume these variables exist, so this is the recommended place to set them.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Preferred editor&lt;br /&gt;
editor=&amp;#039;nano&amp;#039;   # or vim&lt;br /&gt;
&lt;br /&gt;
# Edit / source the bash config files&lt;br /&gt;
alias ebc=&amp;quot;${editor} ${HOME}/.bashrc&amp;quot;&lt;br /&gt;
alias sbc=&amp;quot;source ${HOME}/.bashrc&amp;quot;&lt;br /&gt;
alias eba=&amp;quot;${editor} ${HOME}/.bash_aliases&amp;quot;&lt;br /&gt;
alias sba=&amp;quot;source ${HOME}/.bash_aliases&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# ls shortcuts&lt;br /&gt;
alias ll=&amp;quot;ls -alth&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Personal Lustre locations.&lt;br /&gt;
# The &amp;#039;affiliation&amp;#039; depends on your group:&lt;br /&gt;
#   WUR researchers in a commitment group:  affiliation=WUR/&amp;lt;group&amp;gt;&lt;br /&gt;
#   External users:                         affiliation=&amp;lt;organisation&amp;gt;&lt;br /&gt;
# Set this before the exports below — leaving it empty will break the paths.&lt;br /&gt;
affiliation=&lt;br /&gt;
&lt;br /&gt;
export myScratch=/lustre/scratch/$affiliation/$USER&lt;br /&gt;
export myBackup=/lustre/backup/GUESTS/$affiliation/$USER&lt;br /&gt;
export myNobackup=/lustre/nobackup/$affiliation/$USER&lt;br /&gt;
&lt;br /&gt;
# Jump to those locations&lt;br /&gt;
alias cds=&amp;quot;cd $myScratch&amp;quot;&lt;br /&gt;
alias cdb=&amp;quot;cd $myBackup&amp;quot;&lt;br /&gt;
alias cdn=&amp;quot;cd $myNobackup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Keep the Apptainer cache off your home quota (see Apptainer page)&lt;br /&gt;
export APPTAINER_CACHEDIR=$myScratch/.apptainer-cache&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After editing the file, either log in again or run &amp;lt;code&amp;gt;source ~/.bash_aliases&amp;lt;/code&amp;gt; to apply the changes to your current shell.&lt;br /&gt;
&lt;br /&gt;
== Environment variables ==&lt;br /&gt;
&lt;br /&gt;
Beyond the variables above, two common tweaks go in &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Add a personal &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt; directory to your &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; so your own scripts run by name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=$PATH:$HOME/bin&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keep more shell history:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Lines kept in the history file on disk&lt;br /&gt;
export HISTFILESIZE=100000&lt;br /&gt;
# Lines kept in memory for the current session&lt;br /&gt;
export HISTSIZE=100000&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Custom temporary directory (TMPDIR) ==&lt;br /&gt;
&lt;br /&gt;
Many programs write intermediate or temporary files, sometimes without telling you — &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt;, for instance, needs a lot of scratch space for large inputs. By default they use &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;. Every compute node has a large local &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; (around 400 GB), but it is shared, and a job that fills it can cause other users&amp;#039; jobs to fail with anything from a crash to silently wrong output.&lt;br /&gt;
&lt;br /&gt;
To send temporary files somewhere with more room, set the &amp;lt;code&amp;gt;TMPDIR&amp;lt;/code&amp;gt; environment variable to a directory in your scratch space. Scratch is a good choice because it is periodically tidied up, so stray temporary files do not linger.&lt;br /&gt;
&lt;br /&gt;
First create the directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p $myScratch/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then set &amp;lt;code&amp;gt;TMPDIR&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export TMPDIR=$myScratch/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It takes effect on your next login; to apply it to the current shell immediately, &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt; the file you edited.&lt;br /&gt;
&lt;br /&gt;
=== Java applications ===&lt;br /&gt;
&lt;br /&gt;
Some compiled applications — Java programs in particular, and some C/C++ binaries — ignore &amp;lt;code&amp;gt;TMPDIR&amp;lt;/code&amp;gt;. For Java, set the temporary directory through &amp;lt;code&amp;gt;_JAVA_OPTIONS&amp;lt;/code&amp;gt; instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export _JAVA_OPTIONS=-Djava.io.tmpdir=$myScratch/tmp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is not strictly a temporary-directory variable; it passes a runtime option to the JVM that happens to set the temporary directory.&lt;br /&gt;
&lt;br /&gt;
== Running older binaries ==&lt;br /&gt;
&lt;br /&gt;
Most Linux binaries depend on shared libraries loaded by the operating system at runtime. As the cluster&amp;#039;s OS is upgraded, some of those libraries change or disappear, and an older binary may then fail with errors about &amp;lt;code&amp;gt;glibc&amp;lt;/code&amp;gt; or missing symbols.&lt;br /&gt;
&lt;br /&gt;
The libraries from previous OS builds are kept on the shared filesystem so that older binaries can still find them. The &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; environment variable tells the linker where to look for libraries, and a module — &amp;lt;code&amp;gt;sl7-libs&amp;lt;/code&amp;gt; — sets it up for you. It is already a prerequisite of most older module installs, so usually you do not need to do anything.&lt;br /&gt;
&lt;br /&gt;
If you have compiled something yourself that is not a module and it fails this way, load the module by hand:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
module load sl7-libs/main&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Older binaries in a Jupyter kernel ===&lt;br /&gt;
&lt;br /&gt;
A custom [[Jupyter]] kernel cannot load a module, because the kernel is started from a &amp;lt;code&amp;gt;kernel.json&amp;lt;/code&amp;gt; file rather than a shell. Instead, set &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; directly in the kernel&amp;#039;s environment block:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
 &amp;quot;language&amp;quot;: &amp;quot;python&amp;quot;,&lt;br /&gt;
 &amp;quot;argv&amp;quot;: [&lt;br /&gt;
  &amp;quot;/path/to/my/venv/bin/python&amp;quot;,&lt;br /&gt;
  &amp;quot;-m&amp;quot;,&lt;br /&gt;
  &amp;quot;ipykernel&amp;quot;,&lt;br /&gt;
  &amp;quot;-f&amp;quot;,&lt;br /&gt;
  &amp;quot;{connection_file}&amp;quot;&lt;br /&gt;
 ],&lt;br /&gt;
 &amp;quot;display_name&amp;quot;: &amp;quot;myvenv&amp;quot;,&lt;br /&gt;
 &amp;quot;env&amp;quot;: {&lt;br /&gt;
  &amp;quot;LD_LIBRARY_PATH&amp;quot;: &amp;quot;/usr/lib:/usr/lib64:/usr/lib/x86_64-linux-gnu:/shared/legacyapps/sl7-libs/lib:/shared/legacyapps/sl7-libs/lib64&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When editing JSON, remember that every entry in an object is separated by a comma and only double quotes are allowed. Check that the file is valid by piping it through &amp;lt;code&amp;gt;jq&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ~/.local/share/jupyter/kernels/mykernel/kernel.json | jq&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;jq&amp;lt;/code&amp;gt; prints your JSON back, it parses correctly.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Environment Modules]]&lt;br /&gt;
* [[Locale settings]]&lt;br /&gt;
* [[Python]]&lt;br /&gt;
* [[R]]&lt;br /&gt;
* [[Apptainer]]&lt;br /&gt;
* [[Filesystems]]&lt;/div&gt;</summary>
		<author><name>Haars0011</name></author>
	</entry>
</feed>