wsl2 ubuntu安装golang
创始人
2025-05-29 11:51:40

目录

下载

golang 导入 wsl 代码

打开一个新项目 一直加载 go list -m json all

Debug 提示gcc 不存在 ,在 Ubuntu 20.04 上安装 GCC

环境变量消失

编辑器里面包报红

#先给权限

#选择项目的时候删除./idea文件试试

异常

Mysql sql model 报错 which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mod e=only_full_group_by"

彻底解决方案

Redis踩坑——MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on


为啥会选择独立安装golang呢,我的本地环境是wsl2+ubuntu+idea,想通过本地虚拟机直接debug,就不能把golang装在dokcer里面了

下载

wget https://golang.google.cn/dl/go1.18.7.linux-amd64.tar.gztar -C /usr/local -xzf go1.18.7.linux-amd64.tar.gzvim /etc/profile
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/home/go
export GOBIN=$GOPATH/bin
#保存
source /etc/profileexport GO111MODULE=on
export GOPROXY='https://goproxy.io'
export GOPROXY=https://mirrors.aliyun.com/goproxy/

golang 导入 wsl 代码

打开一个新项目 一直加载 go list -m json all

Ennnnnnnnnn

记得开代理

Debug 提示gcc 不存在 ,在 Ubuntu 20.04 上安装 GCC

默认的 Ubuntu 软件源包含了一个软件包组,名称为 "build-essential",它包含了 GNU 编辑器集合,GNU 调试器,和其他编译软件所必需的开发库和工具。 想要安装开发工具软件包,以 拥有 sudo 权限用户身份或者 root 身份运行下面的命令:

sudo apt updatesudo apt install build-essential

这个命令将会安装一系列软件包,包括gcc,g++,和make。 你可能还想安装关于如何使用 GNU/Linux开发的手册。

sudo apt-get install manpages-dev

通过运行下面的命令,打印 GCC 版本,来验证 GCC 编译器是否被成功地安装。

gcc --version

在 Ubuntu 20.04 软件源中 GCC 的默认可用版本号为9.3.0:

gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

环境变量消失

#注意查看env环境变量里面的路劲sudo vim ~/.profile
export GOROOT="/usr/local/go"
export GOBIN=$GOROOT/bin
export GOPATH="/home/go"
export PATH=$PATH:$GOPATH/binsudo vim ~/.bashrc
#添加 
export GOROOT="/usr/local/go"
export GOBIN=$GOROOT/bin
export GOPATH="/home/go"
export PATH=$PATH:$GOPATH/bin
#保存
source ~/.bashrc

编辑器里面包报红

#先给权限

#因为你的用个人账户开,比如我的账户test,遇到事情先给权限
sudo chown -R test:test-R /home

#选择项目的时候删除./idea文件试试

异常

Mysql sql model 报错 which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mod e=only_full_group_by"

SELECT @@sql_mode; set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

彻底解决方案

  1. 进入mysql :docker exec -ti 14ea13dd0cf8 /bin/bash

  2. 输入密码:mysql -uroot -p

  3. 查看sql_model:SELECT version(),@@SESSION.sql_mode,@@GLOBAL.sql_mode;

此时发现有ONLY_FULL_GROUP_BY

  1. 执行以下脚本:

mysql -uroot -pSET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';#查询sql model
SELECT version(),@@SESSION.sql_mode,@@GLOBAL.sql_mode;
  1. 此时在看sql_model:SELECT version(),@@SESSION.sql_mode,@@GLOBAL.sql_mode;

  2. 重启项目即可 dokcer restart mysql

Redis踩坑——MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on

不能彻底解决

root@ubuntu:/usr/local/redis/bin# ./redis-cli
127.0.0.1:6379> config set stop-writes-on-bgsave-error no

彻底解决

vim /etc/sysctl.conf 
'vm.overcommit_memory = 1' 
#然后重启
将vm.overcommit_memory改为1有什么作用呢,网上看到一个博客是如下解释,我个人也比较同意0 — 默认设置。个人理解:当应用进程尝试申请内存时,内核会做一个检测。内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。举个例子,比如1G的机器,A进程已经使用了500M,当有另外进程尝试malloc 500M的内存时,内核就会进行check,发现超出剩余可用内存,就会提示失败。
1 — 对于内存的申请请求,内核不会做任何check,直到物理内存用完,触发OOM杀用户态进程。同样是上面的例子,1G的机器,A进程500M,B进程尝试malloc 500M,会成功,但是一旦kernel发现内存使用率接近1个G(内核有策略),就触发OOM,杀掉一些用户态的进程(有策略的杀)。
2 — 当 请求申请的内存 >= SWAP内存大小 + 物理内存 * N,则拒绝此次内存申请。解释下这个N:N是一个百分比,根据overcommit_ratio/100来确定,比如overcommit_ratio=50,那么N就是50%。

相关内容

热门资讯

第一个攻略教程!闲易外挂辅助器... 您好:闲易这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是...
第一个攻略教程!欢乐茶馆外挂辅... 【无需打开直接搜索微信;29290261】 操作使用教程:1.亲,实际上欢乐茶馆是可以开挂的,确实有...
一分钟了解“乐嘉茗都其实可以开... 一分钟了解“乐嘉茗都其实可以开挂”-确实真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的ai...
第一个攻略教程!扎西茶楼外挂辅... 第一个攻略教程!扎西茶楼外挂辅助器(确实有挂)原来真的有挂(有挂总结)详细教程(哔哩哔哩)是一款可以...
第八个攻略!Poker Wor... 自定义Poker World系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器...