Building ReactOS on a cloud node instance

From ReactOS Wiki
Jump to: navigation, search

If you have a very light computer, with a not-so-powerful processor or with very little RAM, such as a Chromebook, you might want to use a cloud server instance for building ReactOS.

After choosing your cloud provider and setting-up an account, launch an instance with 4GB of RAM, and with an OS of your choice. Then you can connect with SSH to your node instance and follow the steps below, based on the OS you chose.

Setting-up development dependencies

Before being able to build Reactos, you will need to install all the needed development libraries (dependencies), by using the package-manager of your OS.

If you launched a node with Ubuntu or Debian

After first connecting to the instance, run one set of the following commands. On some cloud-providers the default user is root, and on other cloud-providers the default user is non-root. So choose one of these:

If your user is root:

 apt update
 apt upgrade
 apt install -y build-essential flex bison pkg-config zlib1g-dev git mc screen

Or if your user is not root:

 sudo apt update
 sudo apt upgrade
 sudo apt install -y build-essential flex bison pkg-config zlib1g-dev git mc screen

If you launched a node with Centos or RedHat or AmazonLinux

After first connecting to the instance, run one set of the following commands. On some cloud-providers the default user is root, and on other cloud-providers the default user is non-root. So choose one of these:

If your user is root:

 yum -y update
 yum install -y openssh-clients git curl mc screen
 yum groupinstall -y 'Development Tools'

Or if your user is not root:

 sudo yum -y update
 sudo yum install -y openssh-clients git curl mc screen
 sudo yum groupinstall -y 'Development Tools'


Building ReactOS

For building ReactOS you can choose to create a new user specifically for this, to keep things cleanly separated.

 sudo adduser reactos
 sudo su - reactos -c "script -c /bin/bash /dev/null"    # this is needed so you can run 'screen' inside 'su'

Then, as "reactos" non-root user:

 cd ~
 git clone https://github.com/reactos/reactos.git
 
 cd ~
 wget http://downloads.sourceforge.net/reactos/RosBE-Unix-2.1.2.tar.bz2
 tar -xjf RosBE-Unix-2.1.2.tar.bz2
 cd RosBE-Unix-2.1.2/
 
 # Since the following step can take many hours, use "screen" so you the build command can still continue while you logout of SSH
 screen
 bash ./RosBE-Builder.sh   # when prompted select yes, and then specify the installation path as /home/reactos/rosbe2.1.2
 # You can later login again with SSH, and run "screen -r" to resume your previous session, where hopefully the RosBE-Builder finished successfully
 #screen -r
 cd ~/rosbe2.1.2
 bash ./RosBE.sh

Inside RosBE shell:

 cd ~/reactos/
 ./configure.sh


The CMake configure step will again take many hours, depending on your selected hardware.

If you get an error message "Connection to xx.yy.zz.tt closed by remote host" then it usually means your cloud instance does not have enough memory. Make sure to create an instance with 4GB of RAM.