Building OpenCog

From OpenCog
Jump to: navigation, search

Linux is the primary development platform for OpenCog. The reference configuration used for continuous integration is Ubuntu 14.04 and it is the recommended platform for development.

Setting Development Environment

These are options for setting development envrionment for working on opencog and it's subprojects.

Linux Host

On systems that have linux os installed, use the appropriate script for installing system dependencies. Distros which have dependency installation scripts are,

octool for ubuntu

For a quick start using Ubuntu version >= 14.04, use octool script.

  • get it by running
wget -O octool && chmod +rx octool

  • For Ubuntu 16.04, an updated octool script is here:
wget -O octool && chmod +rx octool

  • Options that are available can be displayed by running
./octool -h
  • To install all dependencies necessary to build OpenCog run
./octool -rsdpcalv
  • To install all dependencies necessary to build AtomSpace and MOSES run
./octool -rdcv
# Optional: For atomspace add -s for installing dependencies for haskell binding.
  • To install all dependencies necessary to build Cogutil run
./octool -rdv

octool for raspbian

For a quick start using Raspbian OS on RPI3 board, use octool_rpi script.

  • get it by running
wget && chmod +rx

The script is suppose to run both on the cross-compiling PC and the RPI3 running raspbian. More info here

  • To Install base dependencies and install opencog with pre-compiled binaries (it may be outdated) on RPI3 running Raspbian
./ -do
  • To cross compile on a much larger computer. This option cross-compiles opencog along with its dependencies (cogutil and atomspace) and creates a debian package.
./ -tc

For building opencog or updating it's dependencies scroll to the sections below

Virtual Machine

For using ubuntu in virtual machine managed by vagrant for repo, first install the tools for your os and then follow instruction below under Run Vagrant.

Windows setup

Mac setup

Linux setup

Install virutalbox, git and vagrant. See here on instructions on vagrant installation.

Run Vagrant

The virtual machine created has all the dependencies required for working on cogutils, atomspace, moses, and opencog.

If you are new to vagrant, see or if you like to understand what vagrant is. Understanding the working of vagrant is not required for contributing to opencog.

The common steps after installing VirtualBox, git and Vagrant for your os and running a bash(on windows use the equivalent powershell commands) shell are:

mkdir opencog_repos
cd opencog_repos
git clone

# You can clone other repos if you so choose

ln -s $PWD/opencog/lib/Vagrantfile Vagrantfile
vagrant up
vagrant ssh

# The folder from which your run 'vagrant up' is accessiable at
# '/home/vagrant/opencog' on sshing into the virtual machine.

# Do your thing

vagrant halt

For building opencog or updating it's dependencies scroll to the sections below


For using containers managed by docker, follow instructions here.

For building opencog or updating its dependencies scroll to the sections below

Other options


Build OpenCog using the following commands after moving to the root of the three cloned directories (cogutil, atomspace, optionally moses, and opencog, in that order) or the corresponding directories in your vagrant/docker setup:

mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make install

If you are using octool from the git clone directory, run

./octool -b

Updating Dependencies

To update your opencog's sub-project installations(cogutil, link-grammar and atomsapce), as they are in a continues state of development, you will need to run these series of commands, once/multiple times a week/day depending on what type of fun you are having with opencog, from your git clone.

If you are using octool, run

./octool -cal


For backing up contents of an atomspace


See instructions here

  • If you are using octool then use -rd option for installing dependencies.
  • If you are using docker full configuration are done for you.