Я заинтересован в компиляции и запуске juju-core из исходного кода. Как я могу это сделать? Какие существуют риски?
Прежде чем перейти к этому, согласно README в juju-core:
Обратите внимание, что использование --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 является относительно простым процессом. Сначала вам нужно получить последний код для juju-core таким образом, чтобы вы знали, что делать. Просто запустите следующую команду, чтобы получить последний источник:
go get -v launchpad.net/juju-core/...
Это будет идти за ядром juju-core и источником всех зависимостей. И наконец, чтобы собрать ядро juju-core:
go install -v launchpad.net/juju-core/...
Это должно занять несколько секунд. После завершения вы можете проверить правильность компиляции juju, запустив which juju
, если вы префиксили PATH
с GOPATH
. Если нет, вы можете проверить, установлен ли он с $GOPATH/bin/juju version
, который должен сообщать о текущей скомпилированной версии juju-core.
Как только ядро juju построено и вы можете использовать его по своему усмотрению, есть несколько предостережений, о которых нужно знать. Во-первых, всякий раз, когда вы запускаете загрузчик, вам нужно будет включить флаг --upload-tools
, в противном случае у вас будет установлена «выпущенная» версия инструментов juju-core вместо вновь скомпилированных.
juju bootstrap -e <your_environment> --upload-tools
Кроме того, juju-core не совместима с ранее развернутыми версиями juju менее 0.7 (версия juju на python). Вам нужно будет создать новые определения environment.yaml и использовать разные ключи control-bucket
. Если вы хотите сохранить два отдельных файла окружения, вы можете сделать это, указав переменную окружения JUJU_HOME
:
export JUJU_HOME=~/.juju-core
mkdir -p $JUJU_HOME
juju init -w
Это создаст новый шаблонный файл environments.yaml
в ~/.juju-core/
, где вы можете сохранить свой Среда juju-core отличается от предыдущих версий juju.
Если вы хотите удалить скомпилированную версию juju-core, вы можете сделать это в любое время, запустив rm -rf $GOPATH
. Это должно вернуть вашу систему в состояние до того, как у вас была скомпилированная исходная версия juju-core.