mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?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-buildrpm">
 | 
						|
    <title>Building RPMs from Source</title>
 | 
						|
    <para>As mentioned previously in <xref linkend="sect-source-prereq" />, 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.</para>
 | 
						|
    <para><programlisting># yum groupinstall "Development Tools"</programlisting></para>
 | 
						|
    <para><programlisting># yum install java-1.6.0-openjdk-devel.x86_64 genisoimage mysql mysql-server ws-commons-util MySQL-python tomcat6 createrepo</programlisting></para>
 | 
						|
    <para>Next, you'll need to install build-time dependencies for CloudStack with 
 | 
						|
        Maven. We're using Maven 3, so you'll want to 
 | 
						|
        <ulink url="http://maven.apache.org/download.cgi">grab a Maven 3 tarball</ulink> 
 | 
						|
        and uncompress it in your home directory (or whatever location you prefer):</para>
 | 
						|
    <para><programlisting>$ tar zxvf apache-maven-3.0.4-bin.tar.gz</programlisting></para>
 | 
						|
    <para><programlisting>$ export PATH=/usr/local/apache-maven-3.0.4//bin:$PATH</programlisting></para>
 | 
						|
    <para>Maven also needs to know where Java is, and expects the JAVA_HOME environment 
 | 
						|
        variable to be set:</para>
 | 
						|
    <para><programlisting>$ export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/</programlisting></para>
 | 
						|
    <para>Verify that Maven is installed correctly:</para>
 | 
						|
    <para><programlisting>$ mvn --version</programlisting></para>
 | 
						|
    <para>You probably want to ensure that your environment variables will survive a logout/reboot. 
 | 
						|
        Be sure to update <filename>~/.bashrc</filename> with the PATH and JAVA_HOME variables.</para>
 | 
						|
 | 
						|
    <para>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.</para>
 | 
						|
    <note><title>Packaging has Changed</title>
 | 
						|
        <para>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.</para>
 | 
						|
    </note>
 | 
						|
    <section id="generating-rpms">
 | 
						|
        <title>Generating RPMS</title>
 | 
						|
        <para>Now that we have the prerequisites and source, you will cd to the <filename>packaging/centos63/</filename> directory.</para>
 | 
						|
            <programlisting><prompt>$</prompt> cd packaging/centos63</programlisting>
 | 
						|
        <para>Generating RPMs is done using the <filename>package.sh</filename> script: 
 | 
						|
            <programlisting><prompt>$</prompt>./package.sh</programlisting>
 | 
						|
        </para>
 | 
						|
        <para>That will run for a bit and then place the finished packages in <filename>dist/rpmbuild/RPMS/x86_64/</filename>.</para>
 | 
						|
        <para>You should see seven RPMs in that directory: <filename>cloudstack-agent-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>, <filename>cloudstack-awsapi-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>, <filename>cloudstack-cli-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>, <filename>cloudstack-common-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>, <filename>cloudstack-docs-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>, <filename>cloudstack-management-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>, and <filename>cloudstack-usage-4.1.0-SNAPSHOT.el6.x86_64.rpm</filename>.</para>
 | 
						|
            <section id="sect-source-buildrpm-repo">
 | 
						|
                <title>Creating a yum repo</title>
 | 
						|
                <para>
 | 
						|
                    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:
 | 
						|
                    <programlisting><prompt>$</prompt> mkdir -p ~/tmp/repo</programlisting>
 | 
						|
                    <programlisting><prompt>$</prompt> cp dist/rpmbuild/RPMS/x86_64/*rpm ~/tmp/repo/</programlisting>
 | 
						|
                    <programlisting><prompt>$</prompt> createrepo ~/tmp/repo</programlisting>
 | 
						|
                </para>
 | 
						|
                <para>
 | 
						|
                    The files and directories within <filename>~/tmp/repo</filename> can now be uploaded to a web server and serve as a yum repository. 
 | 
						|
                </para>
 | 
						|
            </section>
 | 
						|
            <section id="sect-source-buildrpm-repo2">
 | 
						|
                <title>Configuring your systems to use your new yum repository</title>
 | 
						|
                <para>
 | 
						|
                    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 <filename>/etc/yum.repos.d/cloudstack.repo</filename> with this information:
 | 
						|
                    <programlisting>
 | 
						|
                        [apache-cloudstack]
 | 
						|
                        name=Apache CloudStack
 | 
						|
                        baseurl=http://<replaceable>webserver.tld/path/to/repo</replaceable>
 | 
						|
                        enabled=1
 | 
						|
                        gpgcheck=0
 | 
						|
                    </programlisting>
 | 
						|
                </para>
 | 
						|
                <para> Completing this step will allow you to easily install &PRODUCT; on a number of machines across the network. 
 | 
						|
                </para>
 | 
						|
            </section>
 | 
						|
        </section>
 | 
						|
    </section>
 |