go - 尝试在 AWS EC2 用户数据中设置 GOPATH 和 GOROOT,但它不起作用
问题描述
我正在尝试在我的AWS EC2 Ubuntu 20.04
用户数据中设置 GOPATH GOROOT,但它从来没有用过,每次我连接到AWS EC2
并查看日志时/var/log/cloud-init-output.log
它总是说
go: not found
,但如果我键入 echo 部分它会起作用。我正在尝试以此为基础设置多个 EC2,因此我无法自己键入每个实例。CloudFormation yaml 用户数据部分如下:
UserData:
Fn::Base64: |
#!/bin/bash
wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz
tar -C /usr/local -zxvf go1.14.4.linux-amd64.tar.gz
mkdir -p ~/go/{bin,pkg,src}
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOPATH/bin:$GOROOT/bin' >> ~/.bashrc
echo 'export GO111MODULE=auto' >> ~/.bashrc
source ~/.bashrc
apt -y update
apt -y install mongodb wget git
systemctl start mongodb
apt -y install git gcc cmake autoconf libtool pkg-config libmnl-dev libyaml-dev
go get -u github.com/sirupsen/logrus
cd ~
git clone --recursive https://github.com/williamlin0504/free5gcWithOCF.git
cd free5gcWithOCF
make
这是/var/log/cloud-init-output.log
用户数据运行时Error里面的错误
有没有人熟悉这个,请我需要一些帮助~
解决方案
在您的错误消息中,在第 30 行的 Makefile 中有一个程序 bin/amf 正在使用
这个程序似乎是一个 shell 脚本,第 1 行有问题
问题的本质是“go: not found”
如果你在 shell 脚本的第 1 行有一个简单的单词“go”并且路径找不到它,那么这就是将会发生的事情
可能您需要更改 userdata shell 脚本的最后一行
PATH=/usr/local/go/bin:$PATH make
我知道你source
在脚本前面有一个命令应该设置它,但它并没有做你认为它做的事情
推荐阅读
- java - 在我的汽车类中通过布尔方法比较两个对象
- python - pip install iconsdk:命令“python setup.py egg_info”失败,错误代码为 1
- netsuite - 使用标签的 Netsuite 客户端脚本
- mysql - MySQL 一对多与首选
- sql - GetDate() 返回常量字面错误,如何解决?
- javascript - Ionic 3动态单选按钮formBuilder验证如果全部选中则启用按钮
- node.js - 如何在不使用 npm install 的情况下安装漂白模块?
- javascript - Javascript如何使用递归从对象中打印值
- android - Android 应用已成功在 Google Play 上发布,但无法在 Google Play 商店中搜索
- mysql - MYSQL 数据库 - HUE 连接失败 | 无法使用提供的凭据连接到主机 1 上的数据库