设置依赖项

设置依赖项

我对从源代码编译和运行 juju-core 感兴趣。我该怎么做?涉及哪些风险?

答案1

在开始之前,根据 juju-core 中的 README:

请注意,使用 --upload-tools 会强制实例使用与开发系统相同的系列和架构运行。目前唯一可部署的支持架构是 amd64,因此您必须在 64 位机器上进行开发。

如果您没有 amd64 机器,或者尝试为 i386、ARM 等进行编译,这些步骤可能会不起作用。

设置依赖项

构建 juju-core 需要以下软件包:

sudo apt-get install build-essential bzr zip git-core mercurial golang-go

golang-go软件包将提示您有关匿名使用情况的统计数据,并询问您是否愿意加入。根据您的兴趣选择是或否。

安装后,你需要创建一个GOPATH,这是 go 将用来下载和编译依赖项的目录。你可以将其设置为你选择的任何目录,例如~/go。你可以阅读有关 gopath 的更多信息go help gopath

export GOPATH=${HOME}/go
mkdir -p $GOPATH

然后将 添加GOPATH到您的 的前缀或附加部分PATH。建议您添加 前缀,PATH因为它会默认为您提供编译后的版本。您仍然可以访问其他已安装的 Juju 版本,但您必须使用绝对路径才能访问它们。如果您不希望GOPATH在您的路径中添加 ,您可以跳过此步骤。

PATH="$GOPATH/bin:$PATH"

建筑与安装

设置好环境后,构建 juju-core 是一个相对简单的过程。首先,您需要以 go 知道如何处理的方式获取 juju-core 的最新代码。只需运行以下命令即可获取最新源代码:

go get -v launchpad.net/juju-core/...

这将获取 juju-core 和所有依赖项的源。最后,要构建 juju-core,请运行:

go install -v launchpad.net/juju-core/...

这需要几秒钟才能完成。完成后,您可以通过运行来验证 juju 是否正确编译,which juju如果您在前面添加了PATHGOPATH如果没有,您可以使用 来验证它是否已安装,$GOPATH/bin/juju version这将报告 juju-core 的当前编译版本。

使用

一旦 juju-core 构建完成,您就可以随意使用它了,但需要注意一些注意事项。首先,每当您运行引导程序时,您都需要包含该--upload-tools标志,否则您最终会安装 juju-core 工具的“已发布”版本,而不是新编译的版本。

juju bootstrap -e <your_environment> --upload-tools

此外,juju-core 与之前部署的低于 0.7 版(juju 的 python 版本)的 juju 版本不兼容。您需要创建新的 environment.yaml 定义并使用不同的control-bucket密钥。如果您想维护两个单独的环境文件,可以通过指定环境变量来实现JUJU_HOME

export JUJU_HOME=~/.juju-core
mkdir -p $JUJU_HOME
juju init -w

这将创建一个新的样板environments.yaml文件,~/.juju-core/您可以在其中维护与以前版本的 juju 分开的 juju-core 环境。

移动

如果您希望删除 juju-core 的编译版本,您可以随时通过运行 来删除rm -rf $GOPATH。这将使您的系统恢复到您拥有 juju-core 的编译源版本之前的状态。

相关内容