1

I have an installed and running full node (version 0.21.1) on a ubuntu machine. I saw the next version (22.0) is out so I looked at the official release notes to see how I had to upgrade. The only instructions I found were to cleanly and fully shut the node down, then "copy over bitcoind/bitcoin-qt". This raised a number of questions that I hope someone out there can help me with ...

  • The 0.21.1 unzipped/untared install media created a directory structure which had the directories bin, lib, include, share.

  • The install instructions that I followed after extracting the media was to "install" the binaries using the command: sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.21.1/bin/*
    This seemed to copy over the contents of the bin directory to /usr/local/bin and gave appropriate ownership/permissions.

There were no instructions for the lib, share or include directories, so those contents were not copied over to /usr/local/*

The installed bitcoind seems to work regardless, at least I have seen no obvious errors running it for the past month.

So my questions are ..

  1. Should I have "installed" the contents of the lib, share and include directories? If not how are they being seen/referenced while in their extracted location? If they are not being used, why are they there?

  2. When the new version (22.0) is extracted, The official upgrade instructions are to "copy over" one or two binaries. I'm guessing reissuing the install command I put earlier would be appropriate? If not, what about the rest of the contents of the bin directory? What about the contents of the new version lib, share and include directories?

I am used to installing software on linux, this just seems somewhat lacking.

Thank you.

2

2 Answers 2

2

Should I have "installed" the contents of the lib, share and include directories? If not how are they being seen/referenced while in their extracted location?

Bitcoin Core doesn't need "installation" - it's distributed as a set of binaries and other files, but the binaries can be run from any location, and do not access any of the other files.

The other files are:

  • README.md and share/man/*: documentation
  • include/* and lib/*: the libbitcoinconsensus library, which can be used to build other applications that rely on Bitcoin Core's validation rules. The logic in these files in built into the bitcoind and bitcoin-qt binaries too, so those don't need the library.

If they are not being used, why are they there?

They're there because you may use them, but if all you do is run bitcoind and bitcoin-qt, that's not the case.

1
  • Pieter, thank you for answering my questions about the lib and include contents. That's what I needed.
    – Steerpike
    Commented Sep 18, 2021 at 16:44
0

Here's what I did, with current directory where I wanted the bitcoin-22.0/ directory to be:

curl -O https://bitcoincore.org/bin/bitcoin-core-22.0/SHA256SUMS
curl -O https://bitcoincore.org/bin/bitcoin-core-22.0/bitcoin-22.0-x86_64-linux-gnu.tar.gz 
sha256sum --ignore-missing --check SHA256SUMS.asc
tar -xf bitcoin-22.0-x86_64-linux-gnu.tar.gz 
sudo install -b -m 0755 -o root -g root -t /usr/local/bin bitcoin-22.0/bin/*
sudo install -b -m 0644 -o root -g root -t /usr/share/man/man1 bitcoin-22.0/share/man/man1/*
1
  • HashHouse, thanks for suggesting the man pages can also be "installed".
    – Steerpike
    Commented Sep 18, 2021 at 16:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.