%BOOK_ENTITIES; ]>
Building RPMs from Source As mentioned previously in , you will need to install several prerequisites before you can build packages for &PRODUCT;. Here we'll assume you're working with a 64-bit build of CentOS or Red Hat Enterprise Linux. # yum groupinstall "Development Tools" # yum install java-1.6.0-openjdk-devel.x86_64 genisoimage mysql mysql-server ws-common-utils MySQL-python tomcat6 createrepo Next, you'll need to install build-time dependencies for CloudStack with Maven. We're using Maven 3, so you'll want to grab a Maven 3 tarball and uncompress it in your home directory (or whatever location you prefer): $ tar zxvf apache-maven-3.0.4-bin.tar.gz $ export PATH=/usr/local/apache-maven-3.0.4//bin:$PATH Maven also needs to know where Java is, and expects the JAVA_HOME environment variable to be set: $ export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/ Verify that Maven is installed correctly: $ mvn --version You probably want to ensure that your environment variables will survive a logout/reboot. Be sure to update ~/.bashrc with the PATH and JAVA_HOME variables. Building RPMs for $PRODUCT; is fairly simple. Assuming you already have the source downloaded and have uncompressed the tarball into a local directory, you're going to be able to generate packages in just a few minutes. Packaging has Changed If you've created packages for $PRODUCT; previously, you should be aware that the process has changed considerably since the project has moved to using Apache Maven. Please be sure to follow the steps in this section closely.
Generating RPMS Now that we have the prerequisites and source, you will cd to the packaging/centos63/ directory. Generating RPMs is done using the package.sh script: $./package.sh That will run for a bit and then place the finished packages in dist/rpmbuild/RPMS/x86_64/. You should see seven RPMs in that directory: cloudstack-agent-4.1.0-SNAPSHOT.el6.x86_64.rpm, cloudstack-awsapi-4.1.0-SNAPSHOT.el6.x86_64.rpm, cloudstack-cli-4.1.0-SNAPSHOT.el6.x86_64.rpm, cloudstack-common-4.1.0-SNAPSHOT.el6.x86_64.rpm, cloudstack-docs-4.1.0-SNAPSHOT.el6.x86_64.rpm, cloudstack-management-4.1.0-SNAPSHOT.el6.x86_64.rpm, and cloudstack-usage-4.1.0-SNAPSHOT.el6.x86_64.rpm.
Creating a yum repo While RPMs is a useful packaging format - it's most easily consumed from Yum repositories over a network. The next step is to create a Yum Repo with the finished packages: $ mkdir -p ~/tmp/repo $ cp dist/rpmbuild/RPMS/x86_64/*rpm ~/tmp/repo/ $ createrepo ~/tmp/repo The files and directories within ~/tmp/repo can now be uploaded to a web server and serve as a yum repository.
Configuring your systems to use your new yum repository Now that your yum repository is populated with RPMs and metadata we need to configure the machines that need to install $PRODUCT;. Create a file named /etc/yum.repos.d/cloudstack.repo with this information: [apache-cloudstack] name=Apache CloudStack baseurl=http://webserver.tld/path/to/repo enabled=1 gpgcheck=0 Completing this step will allow you to easily install $PRODUCT; on a number of machines across the network.