General dependencies

Time: 15 minutes

Several components within the guide rely on the same types of tools or programming languages. For example, the Lightning Network Daemon and LND Connect depend on the Golang language and Ride The Lightning, Lighting Terminal and BTC RPC Explorer all depend on NodeJS.

In order not to repeat ourselves by mentioning in each part how a dependency should be installed, this page is the one to be referred to. In this way, any updates can also be processed centrally so that all components that build on it benefit.

Golang

Golang is a programming language developed by Google. It is a fairly young language released in 2009. The lightning implementation called LND is built on it. Since we are going to compile LND ourselves, we need Go.

Remove old version (optional)

This part is only necessary if you have already installed Go on your Pi using sudo apt install. The version you installed that way should be deleted first.

sudo apt remove golang-go
sudo apt autoremove golang-go
sudo apt purge golang-go

Installing

After the old version is removed we can install the new one. At the time of writing, v1.19.2 is the most recent. If there is a new version you want to install (or because a later version of LND requires it), make sure you download an ARM64 version of Go for your Raspberry Pi. For example, if you're running on an Intel NUC, you'll need the amd64 version.

wget https://go.dev/dl/go1.20.5.linux-arm64.tar.gz
sudo tar -C /usr/local -xzf go1.20.5.linux-arm64.tar.gz
rm go1.20.5.linux-arm64.tar.gz

Updating

Before you can update you need to remove the old version. You do that with this command:

sudo rm -rf /usr/local/go

Once you have removed the old version, you can run the three commands under the previous heading.

Update Referencies

To make Go work properly we need to change some paths. To do that, we'll edit the profile file.

nano ~/.profile

You probably already see some in the file. That is good and you should leave it there. Paste in the following at the bottom:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin

Save it with Ctrl + X and Y. After it is saved you can load profile.

. ~/.profile

To make sure everything works log out with "exit" and start a new SSH connection. Check the Go version with:

go version

If all goes well you should see go version go1.19.2 linux/arm64 appear.

NodeJS

Just as we needed to get Golang, we're going to get NodeJS. We want the latest version, so first run a little script. First of all, make sure you are in the home directory with cd ~ command. Then run the script.

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -

After the little script has done its job, we can install NodeJS.

sudo apt install nodejs -y

Check that you have the right version with:

node --version
# Expected output: v18.16.1

Yarn

Download and install Yarn.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn -y

Verify that Yarn is installed.

yarn --version
# Expected output: 1.22.19