突然又对 Go 感兴趣,GOPATH entry cannot start with shell metacharacter 错误

news2024/9/22 13:42:01

打发无聊时间,水文一篇~

在这里插入图片描述

事情是这样的,因为我们上架的渠道包基本是定制化混淆出包,

混淆出包有一个关键点就是指定映射文件,映射文件的内容有一部分是使用外部工具在打包前按照一定规律随机生成包名、类名,

这里使用的外部工具可以是 golang 编写的 exe 程序,映射文件内容类似 Android mapping.txt。

举个例子:

渠道包提审自动化检测通常是不允许包体存在第三方插件或危险代码。

1、广告插件,上架荣耀商店是不允许包体存在其他平台的广告插件。

2、危险代码,上架国内某平台是不允许包体存在诸如 weishu、xposted 等带有危险特征的代码。

所以,定制化混淆出包、加固出包上架提审一定程度上可以躲避自动化检测。

那么我的问题是:测试反馈映射文件随机生成的字符(包名、类名)总是存在敏感字符,影响出包效率,影响提审。

如某平台机审核把 weishu 判定为敏感字符,若包体带有该字符去提审有可能被拒审打回,出包之后就要确保包体不存在危险敏感字符,

希望能够确保映射文件的映射值不存在敏感字符(因为之前反馈的敏感字符基本是因为类映射导致的),

因此我的任务是接受映射文件生成工具,优化随机生成的映射值,确保不存在敏感字符,

需求很简单,最终优化修改、新增的代码不多,工具是使用 Go 编写的,上一次接触这个语言还是在大学那会,对此学习和已掌握的知识不对,

“语言知识工具、技能”,有了良好的编程思维,接触一门新语言还是相对轻松的,那就现学现卖完成了优化需求,

回到家猛一抬头心想:我是不是对 Go 又有了一点点兴趣?趁着现在的无聊时间,不如打开电脑重新拾起!

我对 Go 又有了兴趣~

安装 Go

学习新语言先看官方文档是个不错的切入点,但对英语有一定的门槛,不妨试试国人整理的资料。

Go 中文学习文档

1、下载 go sdk Go sdk all release

我下载的是 Mac ARM64

2、下载开发工具

我还是选择 vscode,golang 虽然很好用但是收费,破解版、激活这些活不想折腾,vscode 轻量好用

3、运行确认环境正确

其实整篇文章只想提这一点,其他都是在水文,运行第一个 go 程序报错了,在 vscode 上遇到一个小问题。

在这里插入图片描述

GOPATH 配置有问题?我可是傻瓜式直接安装下载的 go sdk,一路 next,这也能报错!

go: GOPATH entry cannot start with shell metacharacter ‘~’

go: GOPATH条目不能以shell元字符“~”开头

在终端执行 go env 也是这个错误,查一下环境变量 GOPATH 看看具体是啥,
在这里插入图片描述
在这里插入图片描述

自我感觉没啥不对劲,PATH 也不存在什么以 ~ 开头的字符,尝试下把 GOPATH 前面的 ${PATH} 去掉试试看,修改并保存之后使配置生效执行 source .bash_profile

在这里插入图片描述

关闭 vscode 重新打开没有再提示 GOPATH 错误,在终端运行 go env 也没有错误并输出正常的信息,看来这次尝试偶然解决了运行失败的问题(罗.jpg)。

在这里插入图片描述

写代码配阿里通义灵码也蛮不错,不懂就问~

那就这样吧,在无聊时光中不知道干什么好,刷短视频 ,就找点事情做,人总不能太闲吧~

安装 Go pkg

经过上述操作,在 vscode 中已经可以编写运行 golang 程序了,但是又发现了一个问题:怎么没有代码提示?

预期的正常代码提示是这样的,后知后觉才发现之前输入 fmt 没有提示 Println等函数,没有提示我怎么写代码,我很依赖代码提示、补全功能的。

在这里插入图片描述

vscode 很友好,其实当你创建第一个 go 文件时已经提示安装一些列的,那时我是直接点击安装的,但是最后提示安装这个我是没有特别关注,直到过了两天因一直困惑在没有代码提示功能中才开始关注这个报错。

详细看看日志:

问题(1):go install ******* timeout,install failed

后来了解到,go 有一个东西叫包管理,也就是 go install 安装的就是一系列的包,安装位置就是你配置的 GOPATH(在自己 mac 上首次安装查看环境变量是没有给我指定 GOPATH,我也不知道为啥;但是我在 window 上安装是不需要我手动配置)

安装超时,猜测估计是下载超时,因为我没有梯子。后台得知有一个环境变量 GOPROXY 可以配置代理,指定包下载来源。

在 mac 上配置几个环境变量 vim .bash_profilesource .bash_profile,然后重启 vscode、重新安装能够下载成功了!紧接着第二个问题又来了~

在这里插入图片描述

(2)问题:copy fail,no permission on /usr/local/go/bin,install fail

这个路径就是我当前的 GOROOT go 安装位置下的 bin 目录,查看 bin 目录权限是drwxr-xr-x,修改扩大权限看看,sudo chmod -R 777 bin(你也可以不使用 -R 参数先试试),然后权限变成了drwxrwxrwx,再重启 vscode 重新安装,没有错误了,安装成功了,代码提示也有了~

在这里插入图片描述

在这里插入图片描述

(3)问题:package command-line-arguments is not a main package

这个问题之间随便在当前目录新建 go 文件执行怎么没报错,今天竟然不行(难道是我在这新建目录执行 go mod init 导致的?),不细究缘由,看报错信息较容易读懂,那就创建一个包名 main,把主函数移动到这个包下再运行,一切正常!

在这里插入图片描述

环境具备,终于可以开始跟随官网文档学习了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1381279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flutter使用get库管理路由,并设页面跳转动画和常见动画

get库还是非常强大的一个仓库,里面包含了非常常用的一些方法,比如路由管理,这是最常见和最常用的一个功能了,我们可以先配置一个路由对象,然后在里面配置路由列表,并且设置路由跳转方式。 第一种方式&…

vue3-计算属性

计算属性 模板中的表达式虽然方便&#xff0c;但也只能用来做简单的操作。如果在模板中写太多逻辑&#xff0c;会让模板变得臃肿&#xff0c;难以维护。 根据作者今年是否看过书展示不同信息 <script lang"ts" setup> import { ref, reactive } from "…

java实现局域网内视频投屏播放(五)视频搜索和投屏自动切换下一个

代码链接 这次对ui做了一些调整&#xff0c;整体分成了5个类别分别为 搜索设备播放任务已下载视频列表视频搜索下载任务列表 视频搜索 搜索 点击搜索后&#xff0c;会从执行所有VideoResolver实现类的search方法&#xff0c;将搜索到的结果汇总到一起&#xff0c;根据视频的…

设计模式⑤ :一致性

一、前言 有时候不想动脑子&#xff0c;就懒得看源码又不像浪费时间所以会看看书&#xff0c;但是又记不住&#xff0c;所以决定开始写"抄书"系列。本系列大部分内容都是来源于《 图解设计模式》&#xff08;【日】结城浩 著&#xff09;。该系列文章可随意转载。 …

node-sass@4.7.2 postinstall: `node scripts/build.js`

Can‘t find Python executable “D:\Python36\python.EXE“, you can set the PYTHON env variable.-CSDN博客 gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at Chil…

【DDR】基于Verilog的DDR控制器的简单实现(一)——初始化

在FPGA中&#xff0c;大规模数据的存储常常会用到DDR。为了方便用户使用&#xff0c;Xilinx提供了DDR MIG IP核&#xff0c;用户能够通过AXI接口进行DDR的读写访问&#xff0c;然而MIG内部自动实现了许多环节&#xff0c;不利于用户深入理解DDR的底层逻辑。 本文以美光(Micro…

使用emu8086实现——顺序程序设计

一、实验目的 1. 掌握顺序程序设计方法 2. 掌握汇编语言编程设计方法。 二、实验内容 1.用查表的方法将一位十六进制数转换成它相应的ASCII码。 代码及注释&#xff1a; Data segment ;定义数据段Tab db 30h,31h,32h,33h,34h,35,36h,37h,38h,39h ;定义一个Tab的字节型…

云卷云舒:AI for DB、DB for AI

云卷云舒&#xff1a;算力网络云原生&#xff08;下&#xff09;&#xff1a;云数据库发展的新篇章-CSDN博客https://blog.csdn.net/bishenghua/article/details/135050556 随着数据库和AI技术的分支同向演进&#xff0c;AI 和数据库间的关联越发紧密了。 大模型的演进发展&a…

mybatisplus配置

一、新建项目&#xff1a;com.saas.plusdemo 二、配置pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…

借助Gitee将typora图片上传CSDN

概述 前面已经发了一个如何借助Github将typora上的图片上传到csdn上&#xff0c;但这有个缺陷&#xff1a;需要科学上网才能加速查看已经上传到github上的图片&#xff0c;否则就会出现已经上传的图片&#xff0c;无法正常查看的问题 如何解决&#xff1f; 那就可以使用Gite…

WEB 3D技术 three.js 聚光灯

本文 我们来说说 点光源和聚光灯 点光源 就像一个电灯泡一样 想四周发散光 而聚光灯就像手电筒一样 像一个方向射过去 距离越远范围越大 光越弱 我们先来看一个聚光灯的效果 我们可以编写代码如下 import ./style.css import * as THREE from "three"; import { O…

陪诊小程序|北京陪诊系统满足医疗陪诊需求的便捷工具

陪诊小程序是一种创新的线上医疗服务工具&#xff0c;旨在为用户提供便捷的医疗陪诊服务。通过陪诊小程序&#xff0c;用户可以轻松预约陪诊服务&#xff0c;选择合适的服务时间和医院科室&#xff0c;并了解服务详情和其他用户的评价。同时&#xff0c;陪诊员也可以利用小程序…

二、Sharding-JDBC系列02:自定义主键生成策略

目录 一、概述 二、自定义主键生成策略 (1)、自定义MyShardingKeyGenerator (2)、SPI接口配置 (3)、配置主键ID生成策略 (4)、测试数据插入 一、概述 实际应用中&#xff0c;大部分场景按照MySQL主键ID自增就能满足需求&#xff0c;但是在分库分表后&#xff0c;MySQL的…

弟12章 1 网络编程

文章目录 网络协议概述 p164TCP协议与UDP协议的区别 p165 网络协议概述 p164 ipv4&#xff1a;十进制点分制 ipv6&#xff1a;十六进制冒号分隔 TCP协议与UDP协议的区别 p165 tcp协议的三次握手&#xff1a;

双向冒泡排序的数据结构实验报告

目录 实验目的&#xff1a; 实验内容&#xff08;实验题目与说明&#xff09; 算法设计&#xff08;核心代码或全部代码&#xff09; 运行与测试&#xff08;测试数据和实验结果分析&#xff09; 总结与心得&#xff1a; 实验目的&#xff1a; 理解双向冒泡排序算法的原…

FreeRTOS 学习相关笔记 附C语言内容补充

学习视频为【正点原子】手把手教你学FreeRTOS实时系统 文章目录 RTOS 入门裸机RTOSFreeRTOS任务调度方式任务状态 FreeRTOS 移植系统配置文件 API函数任务创建和删除动态方式创建任务静态方式创建任务删除任务 任务挂起和恢复函数调度器挂起与恢复临界区任务调度器的挂起和恢复…

估算监控最低可以存储的时长

监控可以存储的时长&#xff0c;主要取决于码率&#xff0c;知道了码率就知道一天可以的视频产生多少视频数据。 以乐橙官网给出的计算&#xff0c;我们可以推出这个设备8MP本地的录像码率大概在4Mbps左右。 同样的我们这里附一张表格&#xff0c;大家可以根据这个来估算存储…

leetcode14. 最长公共前缀

题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 解题方法&#xff1a; 1.首先找到数组中长度最短的数据&#xff0c;与数组第一个数进行交换&#xff08;公共前缀的长度肯定不会大于列表中长度最短的字符串&#x…

大模型实战营Day3 作业

基础作业&#xff1a; 复现课程知识库助手搭建过程 (截图) 进阶作业&#xff1a; 选择一个垂直领域&#xff0c;收集该领域的专业资料构建专业知识库&#xff0c;并搭建专业问答助手&#xff0c;并在 OpenXLab 上成功部署&#xff08;截图&#xff0c;并提供应用地址&#xf…

pyenv虚拟环境安装和配合pipenv多版本创建

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、下载配置pyenv二、配置多版本虚拟环境总结 前言 最近公司编写了一个自动化用例编写软件&#xff0c;需要适配win7和win10系统&#xff0c;需要同时编译3.8…