从源码编译RPM包
正如先前 `“编译Apache CloudStack的先决条件 <#prerequisites-for-building-apache-cloudstack>`_所说,在编译CloudStack之前需要安装一些先决条件。这里假设你使用的是64位的CentOS或Red Hat Enterprise Linux.
- # yum groupinstall "Development Tools"
- # 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 压缩包 并解压到你的主目录 (或任何你喜欢的目录):
- $ tar zxvf apache-maven-3.0.4-bin.tar.gz
- $ export PATH=/usr/local/apache-maven-3.0.4/bin:$PATH
Maven还需要知道Java程序路径,和JAVA_HOME环境变量输出的设置:
- $ export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/
验证Maven是否被正确安装:
- $ mvn --version
如果想确保环境变量将在注销或重启后仍保留。一定要更新 ~/.bashrc
中的PATH和JAVA_HOME 变量。
编译CloudStack的RPM包相当简单。假设你已经下载了源码并解压压缩文件到一个本地目录中,你可以在几分钟之内完成编译。
注解
打包方式的变化。如果你之前创建过CloudStack软件包,你会意识到自从该项目开始使用Apache Maven,这个步骤发生了很大变化。请一定要密切关注本节中的步骤。
生成RPM包
现在我们已经满足先决条件和源码,然后进入 packaging/centos63/ 目录。
- $ cd packaging/centos63
使用 package.sh
脚本生成RPM包:
- $./package.sh
这会需要一些时间,生成的软件包会在 dist/rpmbuild/RPMS/x86_64/
目录中。
你应该看到目录中的RPM包:
- cloudstack-agent-4.3.0.el6.x86_64.rpm
- cloudstack-awsapi-4.3.0.el6.x86_64.rpm
- cloudstack-cli-4.3.0.el6.x86_64.rpm
- cloudstack-common-4.3.0.el6.x86_64.rpm
- cloudstack-docs-4.3.0.el6.x86_64.rpm
- cloudstack-management-4.3.0.el6.x86_64.rpm
- cloudstack-usage-4.3.0.el6.x86_64.rpm
创建yum仓库
RPMs是一个有用的包装格式 - 通过网络上YUM仓库来使用是非常简单的。下一步是使用这些软件包创建YUM仓库:
- $ mkdir -p ~/tmp/repo
- $ cp dist/rpmbuild/RPMS/x86_64/*rpm ~/tmp/repo/
- $ createrepo ~/tmp/repo
~/tmp/repo
中的文件和目录现在可以上传到WEB服务器中作为YUM仓库。
配置你的系统使用新的yum仓库
现在你的yum仓库中拥有了RPM包和元数据,我们为需要安装CloudStack的机器创建一个名为``/etc/yum.repos.d/cloudstack.repo``的文件,内容如下:
- [apache-cloudstack]
- name=Apache CloudStack
- baseurl=http://webserver.tld/path/to/repo
- enabled=1
- gpgcheck=0
完成这一步,您可以轻松地在整个网络中的机器上安装CloudStack。