blob: 842554c069450ae93b3f96396c46313da5b04aee [file] [log] [blame]
<?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 &gt; 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>