<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>installing on
A Scripter's Notes</title><link>https://scripter.co/tags/installing/</link><description>Recent content in installing
on A Scripter's Notes</description><language>en-us</language><managingEditor>kaushal.modi@gmail.com (Kaushal Modi)</managingEditor><webMaster>kaushal.modi@gmail.com (Kaushal Modi)</webMaster><lastBuildDate>Wed, 22 Apr 2026 08:24:58 -0400</lastBuildDate><generator>Hugo -- gohugo.io</generator><docs>https://validator.w3.org/feed/docs/rss2.html</docs><atom:link href="https://scripter.co/tags/installing/index.xml" rel="self" type="application/rss+xml"/><item><title>Downloading Nim</title><link>https://scripter.co/downloading-nim/</link><description>&lt;blockquote>Download and &amp;ldquo;installing&amp;rdquo; Nim using just &lt;code>curl&lt;/code> and &lt;code>tar&lt;/code>.&lt;/blockquote>&lt;p>Today I saw &lt;a href="https://mastodon.art/@hyperlinkyourheart/108277257649997561">this toot by user &lt;em>@hyperlinkyourheart&lt;/em>&lt;/a> regarding
installing Nim:&lt;/p>
&lt;blockquote>
&lt;p>Not a great experience so far though - choosenim is broken on Ubuntu
22.04 based systems ..&lt;/p>
&lt;/blockquote>
&lt;p>.. and that inspired this quick post. I would encourage the user
posting that to bring up that issue on the &lt;a href="https://forum.nim-lang.org/">Nim Forum&lt;/a>, but here&amp;rsquo;s a
quick stop-gap solution to install Nim using just &lt;code>curl&lt;/code> and &lt;code>tar&lt;/code>.&lt;/p>
&lt;ol>
&lt;li>Copy and save the below script somewhere, let&amp;rsquo;s say as
&lt;code>~/scripts/download_nim.sh&lt;/code>.
&lt;mark>Update the &lt;code>nim_install_dir&lt;/code> variable
in there to your choice.&lt;/mark> That is set to &lt;code class="code-inline language-bash">&lt;span class="si">${&lt;/span>&lt;span class="nv">HOME&lt;/span>&lt;span class="si">}&lt;/span>/nim&lt;/code> by default.
&lt;a id="code-snippet--nim-download">&lt;/a>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#!/usr/bin/env bash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Running this script will download and extract nim installation to ~/nim/${nim_version}.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># To uninstall nim, just remove the ~/nim directory.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -euo pipefail &lt;span class="c1"># http://redsymbol.net/articles/unofficial-bash-strict-mode&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">IFS&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">$&amp;#39;\n\t&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">nim_version&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;1.6.6&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">nim_archive_url&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;https://nim-lang.org/download/nim-&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">-linux_x64.tar.xz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">nim_install_dir&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">HOME&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/nim&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">tmp_dir&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;/tmp/&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">USER&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">nim_download_dir&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">tmp_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/nim-&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_install_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">tmp_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">tmp_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="nb">exit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Downloading nim archive from &lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_archive_url&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> ..&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl -RLs &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_archive_url&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> -o &lt;span class="s2">&amp;#34;nim.tar.xz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tar xf nim.tar.xz &lt;span class="c1"># Extracts to ${nim_download_dir}.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="o">[[&lt;/span> -d &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> rm -rf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/doc&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="nb">exit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp -fP &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_download_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/doc/*.css ./doc/. &lt;span class="c1"># Required for &amp;#39;nim doc ..&amp;#39; to work&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp -rfP &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_download_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/bin .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp -rfP &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_download_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/lib .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp -rfP &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_download_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/compiler . &lt;span class="c1"># Required for &amp;#39;nimterop&amp;#39; package&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp -rfP &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_download_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/config .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_install_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="nb">exit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">find . -name &lt;span class="s2">&amp;#34;bin&amp;#34;&lt;/span> -type l -delete
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ln -fs &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/bin ./bin
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;Finished downloading &lt;/span>&lt;span class="k">$(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_version_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>/bin/nim -v &lt;span class="p">|&lt;/span> head -n 1&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="src-block-caption">
&lt;span class="src-block-number">&lt;a href="#code-snippet--nim-download">Code Snippet 1&lt;/a>:&lt;/span>
Nim download script
&lt;/div>
&lt;/li>
&lt;li>Make the script an executable: &lt;code class="code-inline language-shell">chmod +x ~/scripts/download_nim.sh&lt;/code>&lt;/li>
&lt;li>Run &lt;code>~/scripts/download_nim.sh&lt;/code>.. This will download the &lt;code>nim&lt;/code>
compiler and its standard libraries (totaling to only 40MB!) to the
path set in &lt;code class="code-inline language-bash">&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_install_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;/code>.&lt;/li>
&lt;li>Make sure that the path in &lt;code class="code-inline language-bash">&lt;span class="si">${&lt;/span>&lt;span class="nv">nim_install_dir&lt;/span>&lt;span class="si">}&lt;/span>&lt;/code> is added to your &lt;strong>PATH&lt;/strong>.&lt;/li>
&lt;li>Run &lt;code>nim --version&lt;/code> to check the installation.
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Nim Compiler Version 1.6.6 [Linux: amd64]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Compiled at 2022-05-05
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Copyright (c) 2006-2021 by Andreas Rumpf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git hash: 0565a70eab02122ce278b98181c7d1170870865c
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">active boot switches: -d:release
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;p>Now head over to &lt;a href="https://nim-lang.org/learn.html">https://nim-lang.org/learn.html&lt;/a> to learn this
awesome ❤️ language!&lt;/p></description><author>Kaushal.Modi@fakeEmailToMakeValidatorHappy.com (Kaushal Modi)</author><category domain="https://scripter.co/categories/programming">programming</category><category domain="https://scripter.co/tags/nim">nim</category><category domain="https://scripter.co/tags/installing">installing</category><category domain="https://scripter.co/tags/100daystooffload">100DaysToOffload</category><guid>https://scripter.co/downloading-nim/</guid><pubDate>Tue, 10 May 2022 10:45:00 -0400</pubDate></item></channel></rss>