编译DEB包
除了引导依赖项,还需要安装几个其他的依赖包。请注意,我们推荐使用的Maven 3,在Ubuntu 12.04.1 LTS目前不支持。所以,还需要添加一个包含Maven 3 的PPA库。运行命令“add-apt-repository”,系统将提示您继续添加GPG密钥后继续。
- $ sudo apt-get update
- $ sudo apt-get install python-software-properties
- $ sudo add-apt-repository ppa:natecarlson/maven3
- $ sudo apt-get update
- $ 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时的依赖性:
- $ mvn3 -P deps
现在我们已经解决了依赖关系,可以使用如下命令编译CloudStack和创建DEB包:
- $ dpkg-buildpackage -uc -us
该命令将创建如下debian软件包。应该有如下这些内容:
- cloudstack-common-4.3.0.amd64.deb
- cloudstack-management-4.3.0.amd64.deb
- cloudstack-agent-4.3.0.amd64.deb
- cloudstack-usage-4.3.0.amd64.deb
- cloudstack-awsapi-4.3.0.amd64.deb
- cloudstack-cli-4.3.0.amd64.deb
- cloudstack-docs-4.3.0.amd64.deb
设置APT仓库
软件包创建完成后,你需要将软件包拷贝至可以提供HTTP服务的系统上。创建用于存放软件包的目录,并使用 dpkg-scanpackages
命令创建包含归档结构信息的 Packages.gz
文件。在系统中添加这个仓库源,最后使用该APT安装软件包。
第一步是确保你已经安装了 dpkg-dev 软件。一般在使用 debhelper 程序之前就已经安装了。如果你是在其他系统中生成的 Packages.gz
文件,请确保它已经被安装。
- $ sudo apt-get install dpkg-dev
下一步是将DEB文件复制到提供HTTP服务的目录中。在示例中,我们使用 ``/var/www/cloudstack/repo``作为示例 ,你也可以更改为更适合你的目录。
- sudo mkdir -p /var/www/cloudstack/repo/binary
- sudo cp *.deb /var/www/cloudstack/repo/binary
- sudo cd /var/www/cloudstack/repo/binary
- sudo dpkg-scanpackages . /dev/null | tee Packages | gzip -9 > Packages.gz
注解
你可以忽略缺少覆盖文件的警告信息。
现在你应该可以通过HTTP访问 binary
目录中所有的DEB安装包和 Packages.gz
文件。(在进行下一步前,你需要使用 wget
或 curl
命令测试。)
配置使用APT仓库源的主机
现在,我们已经创建了仓库,然后配置你的服务器来使用APT仓库源。你可以在 /etc/apt/sources.list.d
目录中添加仓库文件。使用你喜欢的编辑器来创建``/etc/apt/sources.list.d/cloudstack.list`` 文件并加入类似如下信息:
- deb http://server.url/cloudstack/repo binary ./
现在,您已经准备好软件仓库,然后更新以下,使得APT知道从哪里找到CloudStack的软件包。
- $ sudo apt-get update
现在可以翻到在Ubuntu上安装CloudStack的一章去了。