从源码编译RPM包

正如先前 `“编译Apache CloudStack的先决条件 <#prerequisites-for-building-apache-cloudstack>`_所说,在编译CloudStack之前需要安装一些先决条件。这里假设你使用的是64位的CentOS或Red Hat Enterprise Linux.

  1. # yum groupinstall "Development Tools"
  1. # yum install java-1.6.0-openjdk-devel.x86_64 genisoimage mysql mysql-server ws-commons-util MySQL-python tomcat6 createrepo

接下来,你将需要安装编译CloudStack时依赖的Maven。 使用 Maven 3, 所以你需要 提取 Maven 3 压缩包 并解压到你的主目录 (或任何你喜欢的目录):

  1. $ tar zxvf apache-maven-3.0.4-bin.tar.gz
  1. $ export PATH=/usr/local/apache-maven-3.0.4/bin:$PATH

Maven还需要知道Java程序路径,和JAVA_HOME环境变量输出的设置:

  1. $ export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/

验证Maven是否被正确安装:

  1. $ mvn --version

如果想确保环境变量将在注销或重启后仍保留。一定要更新 ~/.bashrc 中的PATH和JAVA_HOME 变量。

编译CloudStack的RPM包相当简单。假设你已经下载了源码并解压压缩文件到一个本地目录中,你可以在几分钟之内完成编译。

注解

打包方式的变化。如果你之前创建过CloudStack软件包,你会意识到自从该项目开始使用Apache Maven,这个步骤发生了很大变化。请一定要密切关注本节中的步骤。

生成RPM包

现在我们已经满足先决条件和源码,然后进入 packaging/centos63/ 目录。

  1. $ cd packaging/centos63

使用 package.sh 脚本生成RPM包:

  1. $./package.sh

这会需要一些时间,生成的软件包会在 dist/rpmbuild/RPMS/x86_64/ 目录中。

你应该看到目录中的RPM包:

  1. cloudstack-agent-4.3.0.el6.x86_64.rpm
  2. cloudstack-awsapi-4.3.0.el6.x86_64.rpm
  3. cloudstack-cli-4.3.0.el6.x86_64.rpm
  4. cloudstack-common-4.3.0.el6.x86_64.rpm
  5. cloudstack-docs-4.3.0.el6.x86_64.rpm
  6. cloudstack-management-4.3.0.el6.x86_64.rpm
  7. cloudstack-usage-4.3.0.el6.x86_64.rpm

创建yum仓库

RPMs是一个有用的包装格式 - 通过网络上YUM仓库来使用是非常简单的。下一步是使用这些软件包创建YUM仓库:

  1. $ mkdir -p ~/tmp/repo
  1. $ cp dist/rpmbuild/RPMS/x86_64/*rpm ~/tmp/repo/
  1. $ createrepo ~/tmp/repo

~/tmp/repo 中的文件和目录现在可以上传到WEB服务器中作为YUM仓库。

配置你的系统使用新的yum仓库

现在你的yum仓库中拥有了RPM包和元数据,我们为需要安装CloudStack的机器创建一个名为``/etc/yum.repos.d/cloudstack.repo``的文件,内容如下:

  1. [apache-cloudstack]
  2. name=Apache CloudStack
  3. baseurl=http://webserver.tld/path/to/repo
  4. enabled=1
  5. gpgcheck=0

完成这一步,您可以轻松地在整个网络中的机器上安装CloudStack。