I needed to build the Steem wallet to use cli_wallet command for various reasons and there are varying tutorials out there with not quite the same methods. Below is the method that works for me with attributions.
This tutorial is just for the Steem Client (wallet) and not for a witness node or mining but the process is essentially the same for building both. There are a lot of tutorials out there for purposes.
To begin with I tried with a VPS with 1 CPU core and 1 GB of memory. I can attest that this is not enough and the compiling hangs at around 67%. I moved up to a VPS with 2 CPU and 4 GB of RAM and it worked like a charm. Just for fun I tried a VPS with 1 CPU and 2 GB RAM and that worked as well.
I used linode.com and an Ubuntu 16.04 Server and the latest Steem v0.19.0 but this should work for other Steem version previous or future.
How To Install STEEM Client
Make sure you have 4 Core/8 GB System/Server/VM – Ubuntu 16.04 (2 Core 1 MB may work)
#From https://github.com/steemit/steem/blob/master/doc/building.md
Required packages
sudo apt-get install -y automake autoconf automake cmake g++ git libssl-dev libtool make pkg-config python3 python3-jinja2
Boost packages (also required)
sudo apt-get install -y libboost-chrono-dev libboost-context-dev libboost-coroutine-dev libboost-date-time-dev libboost-filesystem-dev libboost-iostreams-dev libboost-locale-dev libboost-program-options-dev libboost-serialization-dev libboost-signals-dev libboost-system-dev libboost-test-dev libboost-thread-dev
Optional packages (not required, but will make a nicer experience)
sudo apt-get install -y doxygen libncurses5-dev libreadline-dev perl
#From https://steemit.com/witness-category/@klye/the-complete-noob-guide-to-steem-witness-setup
Building Steem Client From Source
git clone https://github.com/steemit/steem
git checkout v0.19.0 <-- Current Steem Version (Check top Witnesses for current version https://steemd.com/witnesses)
git submodule update --init --recursive
cmake -DENABLE_CONTENT_PATCHING=OFF -DLOW_MEMORY_NODE=ON CmakeLists.txt
make or make -j x #(x in this case is your processor count)
#(If it fails to compile using the -j command with make, just use make again without it)
Once your the STEEM client is built please follow these steps.
cd /user/steem/programs/steemd #(where user is your home directory)
./steemd
ctrl+c #(kill the program after it starts up for a few seconds)
cd /user/steem/programs/steemd/witness_node_data_dir
mv config.ini config-copy.ini #(you now have a copy of the original config file)
nano config.ini
Copy and paste below into empty config.ini making appropriate changes (Comment out miners if you don't want to mine or adding your miners username and WIF/owner key values if you do, changing threads, changing witness name, etc.
config.ini located at pastebin because it does not formate with markdown on this post:
After editing file:
cd .. or cd /user/steem/programs/steemd/
./steemd
It will take a very long time to download the entire blockchain. A day or two. I could have added a bootstrap to make the process much quicker but it is my judgment not to add one in this tutorial because most of the tutorials I have found link to dead bootstraps. The blockchain is 20+ GB and growing so make sure you have enough space.
Please, please, please if you see anything wrong, incorrect or could be made better with this tutorial please comment. I would not consider myself a Steem expert. I have played with Bitcoin and other coins on an pretty frequently basis over the years and Steem is one of the more challenging coins to build from source and I hope this is helpful.