| <?xml version='1.0' encoding='utf-8' ?> |
| <!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ |
| <!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent"> |
| %BOOK_ENTITIES; |
| ]> |
| |
| <!-- Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <section id="sect-source-builddebs"> |
| <title>Building DEB packages</title> |
| <para> |
| In addition to the bootstrap dependencies, you'll also need to install |
| several other dependencies. Note that we recommend using Maven 3, which |
| is not currently available in 12.04.1 LTS. So, you'll also need to add a |
| PPA repository that includes Maven 3. After running the command |
| <command>add-apt-repository</command>, you will be prompted to continue and |
| a GPG key will be added. |
| </para> |
| <screen> |
| <command>$ sudo apt-get update</command> |
| <command>$ sudo apt-get install python-software-properties</command> |
| <command>$ sudo add-apt-repository ppa:natecarlson/maven3</command> |
| <command>$ sudo apt-get update</command> |
| <command>$ sudo apt-get install ant debhelper openjdk-6-jdk tomcat6 libws-commons-util-java genisoimage python-mysqldb libcommons-codec-java libcommons-httpclient-java liblog4j1.2-java maven3</command> |
| </screen> |
| <para> |
| While we have defined, and you have presumably already installed the |
| bootstrap prerequisites, there are a number of build time prerequisites |
| that need to be resolved. &PRODUCT; uses maven for dependency resolution. |
| You can resolve the buildtime depdencies for CloudStack by running:</para> |
| |
| <screen><command>$ mvn3 -P deps</command></screen> |
| <para> |
| Now that we have resolved the dependencies we can move on to building &PRODUCT; |
| and packaging them into DEBs by issuing the following command. |
| </para> |
| <screen> |
| <command>$ dpkg-buildpackage -uc -us</command> |
| </screen> |
| |
| <para> |
| This command will build the following debian packages. You should have all of the following: |
| </para> |
| <programlisting> |
| cloudstack-common-4.2.0.amd64.deb |
| cloudstack-management-4.2.0.amd64.deb |
| cloudstack-agent-4.2.0.amd64.deb |
| cloudstack-usage-4.2.0.amd64.deb |
| cloudstack-awsapi-4.2.0.amd64.deb |
| cloudstack-cli-4.2.0.amd64.deb |
| cloudstack-docs-4.2.0.amd64.deb |
| </programlisting> |
| |
| <section id="sect-source-builddebs-repo"> |
| <title>Setting up an APT repo</title> |
| |
| <para>After you've created the packages, you'll want to copy them to a system where you can serve the packages over HTTP. You'll create a directory for the packages and then use <code>dpkg-scanpackages</code> to create <filename>Packages.gz</filename>, which holds information about the archive structure. Finally, you'll add the repository to your system(s) so you can install the packages using APT.</para> |
| |
| <para>The first step is to make sure that you have the <application>dpkg-dev</application> package installed. This should have been installed when you pulled in the <application>debhelper</application> application previously, but if you're generating <filename>Packages.gz</filename> on a different system, be sure that it's installed there as well.</para> |
| |
| <screen><command>$ sudo apt-get install dpkg-dev</command></screen> |
| |
| <para>The next step is to copy the DEBs to the directory where they can be served over HTTP. We'll use <filename>/var/www/cloudstack/repo</filename> in the examples, but change the directory to whatever works for you.</para> |
| |
| <screen> |
| <command>sudo mkdir -p /var/www/cloudstack/repo/binary</command> |
| <command>sudo cp *.deb /var/www/cloudstack/repo/binary</command> |
| <command>sudo cd /var/www/cloudstack/repo/binary</command> |
| <command>sudo dpkg-scanpackages . /dev/null | tee Packages | gzip -9 > Packages.gz</command> |
| </screen> |
| |
| <note><title>Note: Override Files</title> |
| <para>You can safely ignore the warning about a missing override file.</para> |
| </note> |
| |
| <para>Now you should have all of the DEB packages and <filename>Packages.gz</filename> in the <filename>binary</filename> directory and available over HTTP. (You may want to use <command>wget</command> or <command>curl</command> to test this before moving on to the next step.)</para> |
| |
| </section> |
| <section id="sect-source-builddebs-repo2"> |
| <title>Configuring your machines to use the APT repository</title> |
| <para> |
| Now that we have created the repository, you need to configure your machine |
| to make use of the APT repository. You can do this by adding a repository file |
| under <filename>/etc/apt/sources.list.d</filename>. Use your preferred editor to |
| create <filename>/etc/apt/sources.list.d/cloudstack.list</filename> with this |
| line:</para> |
| |
| <programlisting>deb http://<replaceable>server.url</replaceable>/cloudstack/repo binary ./</programlisting> |
| |
| <para>Now that you have the repository info in place, you'll want to run another |
| update so that APT knows where to find the &PRODUCT; packages.</para> |
| |
| <screen><command>$ sudo apt-get update</command></screen> |
| |
| <para>You can now move on to the instructions under Install on Ubuntu.</para> |
| |
| </section> |
| </section> |