Pharocloud OS project is a platform for compiling ISO images for minimalistic appliances. For instance, with Pharocloud OS you can create Pharo Live-CD (like PharoNOS) which runs Smalltalk and services like databases, hardware drivers, etc. Using this project you can package your Smalltalk software and all its dependencies in a form of a bootable ISO image with a result that can be burned onto CD or USB key or be run on a Virtual Machine.
Project is based on a TinyCore Linux distribution with an additional set of scripts and packages which allows building Pharo projects distributions as easy as possible.
The ISO images built with Pharocloud OS can be hosted as a Custom Appliances at Pharocloud appliance hosting.
Building Pharo Live CD
The base image to start with is Pharo Live CD project which allows to run Pharo as a sigleton application of OS. To build the default ISO Image follow the steps:
- Download and run TinyCore Linux live CD in a virtual machine. (http://tinycorelinux.net/downloads.html Core, 10 MB, tested on 6.4.1)
- Run the following commands inside the VM running TinyCore to prepare the enviroment:
wget http://os.pharocloud.com/core/os.tar.gz tar -xf os.tar.gz sudo sed -i '1 i\http://os.pharocloud.com/core/' /opt/tcemirror tce-load -iw mirrorfetch.tcz tce-load -iw tca-build.tcz mkdir pharolivecd echo "3.16.6-tinycore" > pharolivecd/kernelver cat >pharolivecd/onboot.lst <<EOF configuration-lvm-safe-5.x.tcz Xlibs.tcz libXtst.tcz Xvesa.tcz cairo.tcz xdotool.tcz kmaps.tcz pharo-vm.tcz pharo-image-launcher.tcz configuration-pharolivecd.tcz EOF
- To build an ISO image run the following command:
tca-build.sh -b os/32/boot pharolivecd
The result of the execution of the commands will be a
pharolivecd.iso file which you may fetch from the virtual machine using
scp command (to install scp execute:
tce-load -iw openssh).
Alternatively, you may just run a zeroconf script by executing the following code inside the VM running TinyCore:
wget -O - http://os.pharocloud.com/pharolivecd.sh | sh. It will configure TinyCore Linux and compile pharolivecd for you.
If you want to create your own ISO image use
pharolivecd folder as an example. Create a new folder with a name to identfy your project and put at least two files in it:
onboot.lst— a list of packets to be loaded to the ISO;
kernekver— a kernel version string to be used as KERNEL placeholder in packets names (ex.: for
scsi-KERNEL.tczsystem will load
Once the build system automatically downloads all the packets specified in
onboot.lst from TinyCore repositories listed in
/opt/tcemirror, you can use any packet which exists there.
You can have a local repository folder which contains your own
tcz extenstion packets (see tutorial here: http://wiki.tinycorelinux.net/wiki:creating_extensions). You can use
-r flag to specify the pass to the folder-repository. Example:
tca-build.sh -r mytcz/ -b os/32/boot pharolivecd
To change a keyboard layout of Live CD follow the documentaion of TinyCore here: http://distro.ibiblio.org/tinycorelinux/faq.html#keyboard
os folder contains kernels and kernel-loader configurations to be used to compile an ISO image. You can change those configs to have a desired boot behavior. The
os.tar.gz archive consists of 3 platforms to be used with
os/32/boot for 32-bit appliances,
os/64pure/boot for 64-bit only appliances and
os/64_mixin/boot for both 32-bit and 64-bit appliacations on the same appliance (like 32-bit pharo + 64-bit mongo).
- PharoNOS - Pharo No Operating System