英文:
Install Go Programming Language on Ubuntu core (snappy)
问题
你好!要在Ubuntu Core(snappy)上安装Go语言并创建一个Web服务器,你可以按照以下步骤进行操作:
-
首先,确保你的Ubuntu Core系统已经连接到互联网。
-
打开终端,使用以下命令安装Go语言的依赖项:
sudo snap install go --classic
这将通过Snap包管理器安装Go语言,并确保它是经典(classic)安装,以便访问系统资源。
-
安装完成后,你可以验证Go语言是否成功安装。在终端中运行以下命令:
go version
如果安装成功,你将看到Go语言的版本信息。
-
现在,你可以开始创建你的Web服务器了。你可以使用Go语言的标准库来创建一个简单的Web服务器。以下是一个示例代码:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) } func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") }
将上述代码保存为一个名为
server.go
的文件。 -
在终端中,使用以下命令编译并运行你的Web服务器:
go run server.go
这将编译并运行你的代码,并将Web服务器监听在本地的8080端口。
现在,你应该已经成功安装并创建了一个简单的Go语言Web服务器。你可以在浏览器中访问http://localhost:8080
来查看服务器的响应。希望对你有帮助!
英文:
I tried to install Go language on Ubuntu Core (snappy) for creating a web server. How to do it? I have problem downloading go-lang archive because there is no 'wget' in ubuntu core. Any solutions?
答案1
得分: 4
一般来说,Snappy应该被视为一个部署目标,而不是一个开发系统。在这方面,它类似于Android或iOS,依赖于第二个系统进行开发。
因此,在Snappy上部署Go应用程序的常规方式可能是这样的:
- 在开发系统上构建应用程序。
- 将二进制文件打包为
.snap
包。 - 在Snappy上部署该包(可以通过商店发布,或手动将其复制到目标系统)。
步骤(1)和(2)最好使用Snapcraft工具完成,该工具内置了对构建Go应用程序的支持。最后一步可以使用目标系统上的snappy install
命令完成。
需要注意的一点是,Snapcraft目前不会帮助你进行交叉编译,所以如果你选择的开发系统具有不同的架构,可能会遇到问题(例如,如果你在x86上进行开发,想要部署到树莓派)。
如果是这种情况,一种选择是使用LXC容器在目标系统上创建一个传统的Ubuntu系统。你可以使用以下命令进行设置(基于这篇文章):
sudo snappy install lxd
lxc remote add images images.linuxcontainers.org
lxc launch images:ubuntu/vivid/armhf dev
然后,你可以使用以下命令在容器中获取一个shell:
lxc exec dev bash
从那里,你可以安装Go和Snapcraft,并构建一个ARM版本的软件包,准备在容器外(或其他ARM设备上)安装。
英文:
In general, Snappy should be viewed as a deployment target rather than a development system. It is similar to Android or iOS in this way, depending on a second system for development.
So the usual way to deploy a Go application on Snappy would be something like:
- build the application on your development system.
- package the binaries as a
.snap
package - deploy the package on Snappy (either by releasing it through the store, or copying it to the target system manually).
Steps (1) and (2) are probably best done using the Snapcraft tool, which has built-in support for building Go applications. The last can be done using the snappy install
command on the target system.
One thing to note is that Snapcraft doesn't do anything to help you with cross-compiling yet, so if your chosen development system has a different architecture you may run into problems (e.g. if you are developing on x86 and want to deploy to a Raspberry Pi).
If this is the case, one option here is to use LXC containers to create a traditional Ubuntu system in a container on the target system. You should be able to set it up with commands like the following (based on this post):
sudo snappy install lxd
lxc remote add images images.linuxcontainers.org
lxc launch images:ubuntu/vivid/armhf dev
You can then get a shell within the container using:
lxc exec dev bash
From there you can install Go and Snapcraft, and build an ARM version of your package ready to be installed outside of the container (or onto other ARM devices).
答案2
得分: 1
另一个选项是使用经典模式:
$ sudo snap install classic --edge --devmode
$ classic
英文:
Another option is to use classic mode:
$ sudo snap install classic --edge --devmode
$ classic
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论