编译DEB包

除了引导依赖项,还需要安装几个其他的依赖包。请注意,我们推荐使用的Maven 3,在Ubuntu 12.04.1 LTS目前不支持。所以,还需要添加一个包含Maven 3 的PPA库。运行命令“add-apt-repository”,系统将提示您继续添加GPG密钥后继续。

  1. $ sudo apt-get update
  2. $ sudo apt-get install python-software-properties
  3. $ sudo add-apt-repository ppa:natecarlson/maven3
  4. $ sudo apt-get update
  5. $ 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

虽然我们做了一些定义,并且可能已经安装了引导的前提条件,但仍有一些在编译时需要解决的先决条件。CloudStack使用Maven进行依赖性解析。您可以通过运行以下命令,来解决编译CloudStack时的依赖性:

  1. $ mvn3 -P deps

现在我们已经解决了依赖关系,可以使用如下命令编译CloudStack和创建DEB包:

  1. $ dpkg-buildpackage -uc -us

该命令将创建如下debian软件包。应该有如下这些内容:

  1. cloudstack-common-4.3.0.amd64.deb
  2. cloudstack-management-4.3.0.amd64.deb
  3. cloudstack-agent-4.3.0.amd64.deb
  4. cloudstack-usage-4.3.0.amd64.deb
  5. cloudstack-awsapi-4.3.0.amd64.deb
  6. cloudstack-cli-4.3.0.amd64.deb
  7. cloudstack-docs-4.3.0.amd64.deb

设置APT仓库

软件包创建完成后,你需要将软件包拷贝至可以提供HTTP服务的系统上。创建用于存放软件包的目录,并使用 dpkg-scanpackages 命令创建包含归档结构信息的 Packages.gz 文件。在系统中添加这个仓库源,最后使用该APT安装软件包。

第一步是确保你已经安装了 dpkg-dev 软件。一般在使用 debhelper 程序之前就已经安装了。如果你是在其他系统中生成的 Packages.gz 文件,请确保它已经被安装。

  1. $ sudo apt-get install dpkg-dev

下一步是将DEB文件复制到提供HTTP服务的目录中。在示例中,我们使用 ``/var/www/cloudstack/repo``作为示例 ,你也可以更改为更适合你的目录。

  1. sudo mkdir -p /var/www/cloudstack/repo/binary
  2. sudo cp *.deb /var/www/cloudstack/repo/binary
  3. sudo cd /var/www/cloudstack/repo/binary
  4. sudo dpkg-scanpackages . /dev/null | tee Packages | gzip -9 > Packages.gz

注解

你可以忽略缺少覆盖文件的警告信息。

现在你应该可以通过HTTP访问 binary 目录中所有的DEB安装包和 Packages.gz 文件。(在进行下一步前,你需要使用 wgetcurl 命令测试。)

配置使用APT仓库源的主机

现在,我们已经创建了仓库,然后配置你的服务器来使用APT仓库源。你可以在 /etc/apt/sources.list.d 目录中添加仓库文件。使用你喜欢的编辑器来创建``/etc/apt/sources.list.d/cloudstack.list`` 文件并加入类似如下信息:

  1. deb http://server.url/cloudstack/repo binary ./

现在,您已经准备好软件仓库,然后更新以下,使得APT知道从哪里找到CloudStack的软件包。

  1. $ sudo apt-get update

现在可以翻到在Ubuntu上安装CloudStack的一章去了。