gpt4 book ai didi

go - 如何创建一个包罗万象的 Go 环境以满足提出的要求 : "application must compile on shared server"

转载 作者:行者123 更新时间:2023-12-01 22:28:40 26 4
gpt4 key购买 nike

一点背景故事:

我正在为学校创建我的第一个 Go 网络应用程序。教授说我可以用围棋。我问他是否可以使用最新版本 1.13,而不是安装在服务器上的版本 1.10,来利用模块管理功能和更新的错误模块。他没有说我被限制在1.10,甚至给了我服务器管理员的联系方式。我和我的教授 CC'd 联系了服务器管理员,他说他不想在学期中更新服务器的 Go 版本。然后,他在我的主目录中包含了有关如何下载、安装和使用我需要的任何版本的 Go 的说明。

Pick your version:

https://golang.org/dl/

Set it up for your own use:

https://golang.org/doc/install



我安装了 go 1.13 并更新了我自己的环境变量以反射(reflect)这个版本并且一切正常。

嗯,另一个要求是我必须把我的项目交给我的教授,并且它必须在服务器上编译。我在想,如果我给他一个捆绑包并指导他如何构建它,那么到目前为止我在技术上已经满足了项目的要求。

我的问题是,Go 是否有任何东西可以使用我的 Go v1.13 环境并将所有内容打包以便项目可以 编译在目标服务器上?我只能找到“只需将项目二进制文件复制到生产服务器”的解决方案,但这对我没有帮助。我需要它在生产服务器上编译。此外,我尝试将我的二进制文件复制到生产服务器,但它找不到我的 html 模板(存储在 ./ui/html/目录中),但我想这将在本次讨论中得到解决,或者稍后保存为另一个 SO 问题。
student@universityserver:~$ ./web
INFO 2019/09/22 10:21:52 Starting server on :5089
INFO 2019/09/22 10:23:03 <ipaddress>:63527 - HTTP/1.1 GET /
ERROR 2019/09/22 10:23:03 handlers.go:29: open ./ui/html/home.page.tmpl: no such file or directory

我现在唯一能想到的就是基本上添加他们需要的所有东西(go amd64 二进制分发和所有模块)并编写一个处理这一切的脚本(在本地文件夹中提取 go,导出 envvars,构建等)

Dear, Professor.

Copy this tarball to your home directory, extract, run build_my_goapp.sh script.

Sincerely, Your student

最佳答案

我的答案是我可以提供 Makefile这可以做我需要做的任何事情。

(对于上交的项目,这实际上是一种很好的做法,如果不是期望的话。)

要求是我的项目需要在服务器上编译并且我必须提供 Makefile .因此,我的项目的任何 Go 环境的下载、安装和设置都可以完成,只要一切都发生在用户的环境中并且不需要 sudo正确安装。服务器没有 Docker。

关于go - 如何创建一个包罗万象的 Go 环境以满足提出的要求 : "application must compile on shared server",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58050459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com