This repository contains source code of Subutai PeerOS project. This is a multi-module Maven Java project.
To build the project, you need to have the following tools:
Oracle JDK 7 or later
Download the 32-bit or 64-bit Linux "compressed binary file" - it has a ".tar.gz" file extension.
Uncompress it
tar -xvf jdk-8-linux-i586.tar.gz
(32-bit)
tar -xvf jdk-8-linux-x64.tar.gz
(64-bit)
The JDK 8 package is extracted into ./jdk1.8.0
directory. N.B.: Check carefully this folder name since Oracle seem to change this occasionally with each update.
/usr/lib
sudo mkdir -p /usr/lib/jvm
sudo mv ./jdk1.8.0 /usr/lib/jvm/
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0/bin/javaws" 1
This will assign Oracle JDK a priority of 1, which means that installing other JDKs will replace it as the default. Be sure to use a higher priority if you want Oracle JDK to remain the default.
sudo chmod a+x /usr/bin/java
sudo chmod a+x /usr/bin/javac
sudo chmod a+x /usr/bin/javaws
sudo chown -R root:root /usr/lib/jvm/jdk1.8.0
N.B.: Remember - Java JDK has many more executables that you can similarly install as above. java
, javac
, javaws
are probably the most frequently required. This answer lists the other executables available.
sudo update-alternatives --config java
You will see output similar to the one below - choose the number of jdk1.8.0 - for example 3
in this list (unless you have have never installed Java installed in your computer in which case a sentence saying "There is nothing to configure" will appear):
$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
* 2 /usr/lib/jvm/jdk1.7.0/bin/java 1 manual mode
3 /usr/lib/jvm/jdk1.8.0/bin/java 1 manual mode
Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/jdk1.8.0/bin/java to provide /usr/bin/java (java) in manual mode
Repeat the above for:
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
Note for NetBeans users!
You need to set the new JDK as default editing the configuration file.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-unlimited-jce-policy
To check if JAVA_HOME is set or not, execute
echo $JAVA_HOME
If the result is empty or points to the version of Java that is not suitable, you need to set it.
update-java-alternatives -l
sudo nano /etc/profile
Add following lines at the end:
export JAVA_HOME="path that you found in update-java-alternatives for your JDK without quotes"
export PATH=$JAVA_HOME/bin:$PATH
Save file
reset
Check again.
Unlimited strength files (specific for Java version)
unzip jce_policy-8.zip
cd UnlimitedJCEPolicyJDK8
sudo cp local_policy.jar US_export_policy.jar $JAVA_HOME/jre/lib/security
OR
sudo apt-get install oracle-java8-unlimited-jce-policy
Maven version 3.2.2 or later
Before installing, remove older versions:
sudo apt-get purge maven maven2 maven3
tar -zxf apache-maven-3.3.3-bin.tar.gz
/usr/local
sudo cp -R apache-maven-3.3.3 /usr/local
/usr/bin
for universal access of mvn
sudo ln -s /usr/local/apache-maven-3.3.3/bin/mvn /usr/bin/mvn
sudo apt-add-repository ppa:andrei-pozolotin/maven3
sudo apt-get update
sudo apt-get install maven3
mvn --version
Apache Maven 3.3.3 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
Maven home: /usr/local/apache-maven-3.2.5
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-48-generic", arch: "amd64", family: "unix"
Clone the project by using:
git clone https://github.com/subutai-io/base.git
Start maven build:
cd base/management
mvn clean install
If you want to create a Debian package, add additional flag
mvn clean install -P deb
After this you will have management/server/server-karaf/target
directory with subutai-{version}.tar.gz archive
which contains custom Karaf distribution of SS application.
Untar it to some directory and execute {distr}/bin/karaf
.
After that go to https://your_host_ip:8443
in your browser.
For development purposes, access to management container can be opened by executing the following commands on RH-with-MH:
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.10.10.1:22
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 5005 -j DNAT --to-destination 10.10.10.1:5005
This would open ports 2222 for ssh access and 5005 for debugger.
CAUTION: this must be used for development only. Highly dangerous to do this in production!