GVKun编程网logo

Windows+Linux系统下Go语言环境安装配置过程(linux go语言安装)

3

在本文中,我们将为您详细介绍Windows+Linux系统下Go语言环境安装配置过程的相关知识,并且为您解答关于linuxgo语言安装的疑问,此外,我们还会提供一些关于AdDuplex:Windows

在本文中,我们将为您详细介绍Windows+Linux系统下Go语言环境安装配置过程的相关知识,并且为您解答关于linux go语言安装的疑问,此外,我们还会提供一些关于AdDuplex:Windows 10 21H1 和 Windows 11 首次进入快速增、C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10、Linux/Wine:windows 应用程序启动 windows 控制台命令并在 windows 上等待时在 linux 上不等待:如何修复?、MariaDB docker 从主机 Windows 10 和 Linux 访问 更新您的命令以在 Ubuntu 系统中的 docker 中运行 mysql:在 Windows 和 Linux 中检查 WSL 网络适配器的 IPv4 地址从windows连接到linux服务器Linux 上的 Docker 与 Windows 上的对比的有用信息。

本文目录一览:

Windows+Linux系统下Go语言环境安装配置过程(linux go语言安装)

Windows+Linux系统下Go语言环境安装配置过程(linux go语言安装)

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。

在这里插入图片描述

1. Windows安装配置

1️⃣ 下载SDK

SDK 的全称是Software Development Kit(软件开发工具包) ,包含了对应开发语言的工具包

  • 国外官方:https://golang.org/dl/
  • 中文镜像:https://golang.google.cn/dl/
  • 中文网站:https://studygolang.com/dl(推荐)

image-20210405003749354

Windows 下:根据自己系统是 32 位还是 64 位进行下载

  • 32 位系统:windows-386.zip
  • 64 位系统:windows-amd64.zip

下载后解压得到以下目录

image-20210405004835586

目录中各个文件夹的含义如下表所示

目录名 说明
api 每个版本的 api 变更差异
bin go 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
doc 英文版的 Go 文档
lib 引用的一些库文件
misc 杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
pkg Windows 平台编译好的中间文件
src 标准库的源码
test 测试用例

2️⃣ 配置环境变量

环境变量 说明
GOROOT 指定SDK的安装路径 export GOROOT=/usr/local/bin
GOPATH 工作目录,将来我们的go项目的工作路径 export GOPATH=$HOME/go
PATH 添加SDK的/bin目录到系统环境变量 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

系统变量中添加GOROOT对应SDK的安装路径

image-20210405010738034

然后添加GOPATH对应工作目录

image-20210405011035657

最后在Path中添加SDK的/bin目录

image-20210405010842724

最后cmd中输入go version/go env看是否配置成功,出现如下结果则成功

C:\Users\zsr204>go version
go version go1.16.3 windows/amd64

C:\Users\zsr204>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\zsr204\AppData\Local\go-build
set GOENV=C:\Users\zsr204\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\学习\Go project\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\学习\Go project
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\Go Environment\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Go Environment\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16.3
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\zsr204\AppData\Local\Temp\go-build3653787397=/tmp/go-build -gno-record-gcc-switches

3️⃣ 配置go代理

通过 go get 命令下载各种依赖时,经常需要访问 github/google 等网站。我们可以配置代理后,快速稳定的下载访问,推荐 GOPROXY.IO - 一个全球代理 为 Go 模块而生

goproxy.io 是全球最早的 Go modules 镜像代理服务之一, 采用 CDN 加速服务为开发者提供依赖下载, 该服务由一批热爱开源, 热爱 Go 语言的年轻人开发维护。从 Go 1.11 开始 Go 语言开始支持 Go modules 来解决大家长久以来诟病的依赖管理问题,目前 Go modules 功能已经符合生产环境标准。

image-20210527133434546

配置方式:

1. 右键 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量
2. 在 “[你的用户名]的用户变量” 中点击 ”新建“ 按钮
3. 在 “变量名” 输入框并新增 “GOPROXY”
4. 在对应的 “变量值” 输入框中新增 “https://goproxy.io,direct”
5. 最后点击 “确定” 按钮保存设置

image-20210527133728882

再次用go env命令即可看到配置的代理

image-20210527133953613


2. Linux安装配置

1️⃣ 下载SDK

这里的环境为腾讯云CentOS7服务器,推荐到Go语言中文网下载

国外官方:https://golang.org/dl/

中文镜像:https://golang.google.cn/dl/

中文网站:https://studygolang.com/dl(推荐)

image-20210525113741523

下载后通过xftp上传到云服务器

image-20210525114339780

然后解压到usr/local目录下

tar -zxvf go1.16.4.linux-amd64.tar.gz -C /usr/local 

2️⃣ 配置环境变量

环境变量 说明
GOROOT 指定SDK的安装路径 export GOROOT=/usr/local/bin
GOPATH 工作目录,将来我们的go项目的工作路径 export GOPATH=$HOME/go
PATH 添加SDK的/bin目录到系统环境变量 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

然后修改根目录下的bashrc文件

[root@zsr ~]# vim ~/.bashrc 
[root@zsr ~]# cat ~/.bashrc 
# .bashrc

# User specific aliases and functions

alias rm=''rm -i''
alias cp=''cp -i''
alias mv=''mv -i''

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# 设置go语言的路径
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

然后重新加载该文件

[root@zsr ~]# source ~/.bashrc

到此环境变量配置完毕,然后输入go version/go env指令查看是否安装成功

[root@zsr go]# go version
go version go1.16.4 linux/amd64
[root@zsr go]# go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.16.4"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2887101268=/tmp/go-build -gno-record-gcc-switches"

3️⃣ 配置go代理

通过 go get 命令下载各种依赖时,经常需要访问 github/google 等网站。我们可以配置代理后,快速稳定的下载访问,推荐 GOPROXY.IO - 一个全球代理 为 Go 模块而生

goproxy.io 是全球最早的 Go modules 镜像代理服务之一, 采用 CDN 加速服务为开发者提供依赖下载, 该服务由一批热爱开源, 热爱 Go 语言的年轻人开发维护。从 Go 1.11 开始 Go 语言开始支持 Go modules 来解决大家长久以来诟病的依赖管理问题,目前 Go modules 功能已经符合生产环境标准。

image-20210527133434546

配置方式:

# 设置你的 bash 环境变量
echo "export GOPROXY=https://goproxy.io,direct" >> ~/.bashrc && source ~/.bashrc

再次用go env命令即可看到配置的代理

image-20210527134444629

以上就是Windows+Linux系统下Go语言环境搭建配置过程的详细内容,更多关于Go语言环境搭建的资料请关注其它相关文章!

您可能感兴趣的文章:
  • GO语言运行环境下载、安装、配置图文教程
  • linux中用shell快速安装配置Go语言的开发环境
  • Ubuntu下安装Go语言开发环境及编辑器的相关配置
  • Windows下使用go语言写程序安装配置实例
  • 在go语言中安装与使用protobuf的方法详解
  • Go语言运行环境安装详细教程

AdDuplex:Windows 10 21H1 和 Windows 11 首次进入快速增

AdDuplex:Windows 10 21H1 和 Windows 11 首次进入快速增

AdDuplex 关于 Windows 10 统计数据的最后一份报告是几个月前的。从那以后发生了很多事情。因为Windows 10 2004的比例明显缩水,Windows 10 21H1的比例有所增加。

AdDuplex:Windows 10 21H1 和 Windows 11 首次进入快速增长 - 2021 年 7 月

事实上,现在有 26.6% 的用户在使用 Windows 10 21H1。Windows 10 20H2 的份额从 40.1% 下降到 36.3%,而 2004 年的份额从 40.6% 下降到“仅”24.6%。

有趣的是内部版本用户数量的增加。这里的比例通常最多在 0.4% 和 0.7% 之间波动。但现在仅 Windows 11 就已经拥有 0.9% 的份额,Windows 10 Insider 已经拥有 0.2% 的份额。现在已经总结了旧版本的比例。与 1903 年和 1909 年一起是 11.5%。

C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10

C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10

如何解决C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10

我编写了一个应用程序来帮助用户使用 C# 生成字母。我创建了以富文本格式保存在 sql Server 数据库中的模板。我的开发机器是 Windows 7,我使用 Visual Studio 2019 来编写应用程序。我使用 NuGet 添加 Word 的互操作引用。该应用程序配置为面向 x86 的 Release、平台 Active(Any cpu)。它是一个 ClickOnce 应用程序,从共享驱动器安装在一个单独的目录中,但与保存字母的驱动器相同。

该应用程序在我的机器上正常运行,但在 Windows 10 用户机器上运行不正常。当它尝试保存文件时,她收到一条错误消息,提示“抱歉,我们找不到该文件”。我们都有 Word 2016。两台机器都是 64 位。我将这封信保存为 Word 中的备份,然后导出为 PDF。在导出为 PDF 之前,代码无法保存 Word 文档。请参阅下面的代码片段:

  1. public static void SavetoWord2(string CoverLetter,string LetterText,string FileSave,string BackUpSave,ref string ErrorString)
  2. {
  3. try
  4. {
  5. Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
  6. string headerfooterFile = Properties.FileResources.headerfooterTemplate;
  7. Document odoc = new Document();
  8. odoc = oWord.Documents.Add(@headerfooterFile);
  9. odoc.Activate();
  10. try
  11. {
  12. Clipboard.Clear();
  13. Clipboard.SetText(CoverLetter,TextDataFormat.Rtf);
  14. odoc.ActiveWindow.Selection.Paste();
  15. Clipboard.Clear();
  16. Clipboard.SetText(LetterText,TextDataFormat.Rtf);
  17. odoc.ActiveWindow.Selection.Paste();
  18. //01/26/2021 JS having trouble with the save on Pam''s machine so going to try to capture the correct error.
  19. try
  20. {
  21. odoc.SaveAs(@BackUpSave);
  22. }
  23. catch (Exception exBU)
  24. {
  25. ErrorString = "Error trying to save " + @BackUpSave + ": " + exBU.Message;
  26. }
  27. try
  28. {
  29. odoc.ExportAsFixedFormat(@FileSave,WdExportFormat.wdExportFormatPDF);
  30. }
  31. catch (Exception exPDF)
  32. {
  33. if (string.IsNullOrEmpty(ErrorString))
  34. {
  35. ErrorString = "Error trying to save " + @FileSave + " PDF: " + exPDF.Message;
  36. }
  37. else
  38. {
  39. ErrorString += " and Error trying to save " + @FileSave + " PDF: " + exPDF.Message;
  40. }
  41. }
  42. }
  43. catch (Exception exInner)
  44. {
  45. ErrorString = exInner.Message;
  46. MessageBox.Show(exInner.Message,Properties.LetterResources.SavetoWord,MessageBoxButtons.OK,MessageBoxIcon.Error);
  47. }
  48. Clipboard.Clear();
  49. oWord.Quit(SaveChanges: 0);
  50. Marshal.FinalReleaseComObject(oWord);
  51. //oWord.Visible = true;
  52. }
  53. catch (Exception ex)
  54. {
  55. ErrorString = ex.Message;
  56. MessageBox.Show(ex.Message,MessageBoxIcon.Error);
  57. }
  58. }

错误发生在 odoc.SaveAs 行上,但仅在从 Windows 10 计算机运行时发生。最初,我使用了我机器上的互操作,但后来将其更改为 NuGet 互操作,但这并没有解决问题。我尝试将 Embed Interop Types 更改为 False 但这并没有解决任何问题,因此我将其改回。互操作引用的别名属性是全局的,特定版本属性是 True。由于富文本,我担心更改文档编写器的类型。应用程序的其余部分对于 Windows 10 用户来说运行良好。有什么想法吗?

解决方法

OpenXML 没有成功,因为它不允许我正确添加标题或导出为 PDF。尽管我非常希望使用 OpenXML,但我最终还是回到了 Word Interop。我能够通过如下设置参考属性来解决这个问题:

嵌入互操作类型 = False 复制本地 = True

现在无论哪个操作系统运行程序,保存都有效。我有上面的部分答案,但忽略了 Copy Local = true 部分。

Linux/Wine:windows 应用程序启动 windows 控制台命令并在 windows 上等待时在 linux 上不等待:如何修复?

Linux/Wine:windows 应用程序启动 windows 控制台命令并在 windows 上等待时在 linux 上不等待:如何修复?

如何解决Linux/Wine:windows 应用程序启动 windows 控制台命令并在 windows 上等待时在 linux 上不等待:如何修复??

除了一项功能外,我还使用 Wine 成功运行了 Windows 程序。该程序可以设置为在 texlive 发行版中启动 pdflatex,当它启动时,它等待查看结果是否成功,然后复制/移动文件。但是在 Linux 上,我无法安排它像在 Windows 上那样等待 pdflatex 完成,因此过早地复制/移动文件并且 pdflatex 无法找到它们。

有一个对话框可以用来保存任意命令,当我按下应用程序中的 pdflatex 按钮时,该命令将被执行。我将此对话框指向 Windows 上的 C:\texlive\2020\bin\win32\pdflatex.exe 并且它可以工作。除了不等待的问题外,我成功地放置了这个命令,以便在Linux上使用wine运行pdflatex。

Z:/usr/bin/gnome-terminal --wait -- /home/nonnull/bin/runlatex/runlatex.sh "%f"

通过将 runlatex.sh 中的最后一个命令设为 exec /bin/bash,终端保持打开状态,因此我可以看到 pdflatex 的所有输出,并知道它正在使用 runlatex.sh 必须找出的正确文件运行通过将传递给它的 Windows 路径转换为其实际路径。 pdflatex 以各种方式抱怨它在那里创建的文件,然后在运行期间不存在。即使终端是打开的,所以没有完成执行,应用程序抱怨 pdflatex 没有正确完成,甚至在 pdflatex 的输出文本完成向下滚动终端之前。当我省略 exec 时,应用程序的行为不会改变终端立即关闭时的命令 pdflatex 完成。

Wine 是怎么回事,命令在完成运行之前不会保持附加状态?我该怎么办?对可以绕过这个困难的命令或机制有什么建议吗?如果需要的话,我准备编写一个 win32 程序来进行调解。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

MariaDB docker 从主机 Windows 10 和 Linux 访问 更新您的命令以在 Ubuntu 系统中的 docker 中运行 mysql:在 Windows 和 Linux 中检查 WSL 网络适配器的 IPv4 地址从windows连接到linux服务器Linux 上的 Docker 与 Windows 上的对比

MariaDB docker 从主机 Windows 10 和 Linux 访问 更新您的命令以在 Ubuntu 系统中的 docker 中运行 mysql:在 Windows 和 Linux 中检查 WSL 网络适配器的 IPv4 地址从windows连接到linux服务器Linux 上的 Docker 与 Windows 上的对比

如何解决MariaDB docker 从主机 Windows 10 和 Linux 访问 更新您的命令以在 Ubuntu 系统中的 docker 中运行 mysql:在 Windows 和 Linux 中检查 WSL 网络适配器的 IPv4 地址从windows连接到linux服务器Linux 上的 Docker 与 Windows 上的对比

事实证明,下面询问的 Docker/Windows 问题的原因是我这边的 Hyper-V 的本地网络问题。所以它与 Windows 和 Linux 上的 Docker 之间的区别无关,也与 MariaDB 没有任何关系。我想删除这个问题,但不鼓励这样做,因为它已经有了答案。


我是 docker 新手,但不是 MysqL 的新手。我想在 Docker 中使用 MariaDB。我在 Windows 10 和 Ubuntu 上都安装了 Docker。

对于 MariaDB 容器,我遵循了此处的描述 https://mariadb.com/kb/en/installing-and-using-mariadb-via-docker/,因为它似乎比此更准确:https://hub.docker.com/_/mariadb。

我使用以下方法创建了一个 MariaDB 容器:

docker run --name mariadb -e MysqL_ROOT_PASSWORD=test -d mariadb:latest

“最新”拉取了 MariaDB 服务器 10.5.8。

我确认在 my.cnf 中启用了通过端口 3306 的 tcp 访问

[client-server]
port=3306

从容器内部运行 MysqL 客户端是可行的

docker exec -it MariaDB MysqL -u root -p

从主机运行 MysqL 客户端

MysqL -h 172.17.0.2 -u root -p

适用于我的 Ubuntu 主机,但不适用于我的 Windows 10 主机。在 Windows 上,该命令会在一段时间后返回,没有任何消息。

你能告诉我原因并帮助我吗?

解决方法

更新您的命令以在 Ubuntu 系统中的 docker 中运行 mysql:

docker run --name mariadb -e MYSQL_ROOT_PASSWORD=test -d mariadb:latest --port 3306:3306

在 Windows 和 Linux 中检查 WSL 网络适配器的 IPv4 地址

打开powershell并执行ifconfig命令,然后找到WSL网络适配器:

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::e96c:c3d6:464e:2a3b%72
   IPv4 Address. . . . . . . . . . . : 172.20.240.1
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :

您的 Windows IP 是 172.20.240.1

现在使用 ip a 命令找出 Linux 主机 IP,并查看与 Windows 相同网络中的 IP:

5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:ce:28:8e brd ff:ff:ff:ff:ff:ff
    inet 172.20.252.177/20 brd 172.20.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fece:288e/64 scope link
       valid_lft forever preferred_lft forever

从windows连接到linux服务器

mysql -u root -h 172.20.252.177 -P 3306 -p

Linux 上的 Docker 与 Windows 上的对比

在 Linux 上,docker 在您的系统中以本机方式工作。没有适用于 Windows 的官方 docker 版本。这意味着您需要在 Windows(以及 MacOS)中模拟 linux 机器并在那里运行 docker 守护进程。

当您模拟 linux 时,虚拟机管理程序会为您的模拟系统创建新网络,因此 docker 不在本地主机上运行。

作为用户的主要区别在于,您无法像 localhost 一样访问在 docker 中运行的应用程序,因为它运行在具有自己网络 IP 的 VM 中。

另一个区别是资源可用性。 在 linux docker deamon 可以访问您的所有资源(CPU、内存、硬盘、网络等)。当然,您可以为其创建配额,但目前不关心。

在 Windows 中,您运行 VM 并将一些有限的资源分配给模拟的 Linux。例如 20 GB 硬盘、1vCPU 和 2GB 内存。这对于您的应用程序的性能很重要。它们在 Windows 中会比在 Linux 中慢(如果需要更多资源)。

但是当我在 Windows 上工作时。我喜欢它,因为我可以创建 docker VM 的快照,并且可以将其复制到另一台计算机。这很神奇,因为您在安装或更换计算机时无需配置系统。

今天关于Windows+Linux系统下Go语言环境安装配置过程linux go语言安装的分享就到这里,希望大家有所收获,若想了解更多关于AdDuplex:Windows 10 21H1 和 Windows 11 首次进入快速增、C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10、Linux/Wine:windows 应用程序启动 windows 控制台命令并在 windows 上等待时在 linux 上不等待:如何修复?、MariaDB docker 从主机 Windows 10 和 Linux 访问 更新您的命令以在 Ubuntu 系统中的 docker 中运行 mysql:在 Windows 和 Linux 中检查 WSL 网络适配器的 IPv4 地址从windows连接到linux服务器Linux 上的 Docker 与 Windows 上的对比等相关知识,可以在本站进行查询。

本文标签: