Upgrade Ubuntu for SSVM

• 2 minutes to read

The SSVM is cutting edge software designed for performance and stability. It utilizes the latest stable release of major open source libraries. We recommend running it on Ubuntu 20.04 LTS at this time, but you can make your OS work by meeting library requirements. Here is how.

Upgrade libstdc++

The SSVM requires the latest version of libstdc++ to access operating system resources. If you are already on Ubuntu 20.04, you are all set. On older Ubuntu systems, you can try system-wide upgrading.

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade
$ sudo do-release-upgrade -d

If you REALLY do not want to upgrade to Ubuntu 20.04, or are on a different distribution, you can choose to upgrade the libstdc++ library only. First, let's find out the current version of libstdc++ on your system.

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
... ...
... ...

If you see GLIBCXX_3.4.28, then you are all set. Nothing to do. If not, then do the following on Ubuntu (or equivalent on other distributions).

$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install g++-9
$ sudo apt-get upgrade libstdc++6

After upgrading, you should run the command above to comfirm GLIBCXX_3.4.28.

Install dev libraries

Even on Ubuntu 20.04, it is highly likely that your installed system does not include some important developer libraries for SSVM. Let's fix that. Those are common tools and libraries every developer needs.

$ sudo apt install build-essential cmake curl wget git vim libboost-all-dev

If you are using SSVM in AOT mode, as you should, for 100x performance improvement, you need the latest LLVM tools.

$ sudo apt install llvm-dev liblld-10-dev

Next steps

Set up Rust & WebAssembly in Node.js

Getting started with Rust functions in Node.js

Enjoy coding!

A high-performance, extensible, and hardware optimized WebAssembly Virtual Machine for automotive, cloud, AI, and blockchain applications