Building From Source
Step 1: Prerequisites
-
Git. To install using:
- for Debian/Ubuntu:
apt-get install git
- for Arch:
pacman -S git
- for Debian/Ubuntu:
- Node 6.x
- NPM 3.x
After you installed the prerequisites just clone the repository
$ git clone https://github.com/NodeOS/NodeOS.git
Step 2 (Debian/Ubuntu): Dependencies
Once you’ve installed the prerequisites you need the dependencies for
Debian/Ubuntu using apt-get
. First you need to update your cache.
To do so run
$ dpkg --add-architecture i386
$ apt-get -qq -y update
Then you install the dependencies listed below
- cross compiler dependencies:
apt-get -qq -y gcc g++ realpath texinfo
- barebones dependencies:
apt-get -qq -y bc libpixman-1-dev
- bootfs dependencies:
apt-get -qq -y genisoimage libuuid:i386
- initramfs dependencies:
apt-get -qq -y cpio
- userfs dependencies:
apt-get -qq -y autoconf automake
- qemu dependencies:
apt-get -qq -y libsdl1.2-dev
Or as a one liner:
$ apt-get -qq -y gcc g++ realpath texinfo bc libpixman-1-dev genisoimagelibuuid:i386 cpio autoconf automake libsdl1.2-dev
Or just run if you’re outside the folder
$ cd NodeOS/
$ bin/install-dependencies
Step 2 (Arch Linux): Dependencies
Once you have installed the prerequisites you need the dependencies for Arch Linux
- cross compiler dependencies:
pacman -S gcc texinfo python2
- barebones dependencies:
pacman -S bc pixman lib32-pixman
- bootfs dependencies:
pacman -S cdrkit
- initramfs dependencies:
pacman -S cpio
- userfs dependencies:
pacman -S autoconf automake
- qemu dependencies:
pacman -S sdl
Note: The initramfs dependencies are not shipped with the installation of Arch Linux thats why we need to install them on Arch Linux
Or as one liner:
$ pacman -S gcc texinfo python2 bc pixman lib32-pixman cdrkit cpio autoconf automake sdl
Step 3: Installation
Once you’ve installed the correct dependencies for your operating system you can start with the installation of NodeOS.
Note: If you have Arch Linux you need to set python2 as default binary when
you run python
. Because the standard python binary is python3 and nodegyp
doesn’t uses it. To do this, run following commands:
$ cd /usr/bin
$ ln -sf python2 python
The next step is to install the npm dependencies and the bundled dependencies to do this run following command:
$ npm install
Step 4: Build NodeOS
We’ve installed all neccassary dependencies and prerequisites, the next thing we need to do is to build the whole thing, to do so just run:
$ npm run build
if you want to build NodeOS for Docker run the following commands:
$ PLATFORM=docker npm run build
$ npm run dockerBuild
WARNING: If you try to start the generated docker image you’ll get a error on the current version (1.0.0-RC3) of NodeOS that /bin/exclfs cant be found for more Information check out Issue #326
then precede with Step 5
Step 5: Run your fresh NodeOS build
Now you can run your fresh build with:
For QEmu:
$ npm start
For Docker:
$ npm run docker
If NodeOS boot without a error, then everything was compiled correctly. If not look under [[Troubleshooting]]
After NodeOS has booted up you should see something like:
Hello! I'm a user init script :-)
Now you’re prompted to enter your username and password. By default, the
username and password is nodeos
and cannot be changed without altering code.
$ username: nodeos
$ password: nodeos
Note: This is not permanent on later versions this will be changed