Centos Go环境搭建

本文详细介绍了如何在国内环境下下载、安装 Golang 1.14 版本,并进行环境变量配置,包括使用镜像源、代理设置、环境变量编辑,以及通过测试代码验证安装成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标准官网:https://golang.org/ 需要墙
镜像官网:https://golang.google.cn/dl/ 【国内推荐】
1、下载文件

wget https://golang.google.cn/dl/go1.14.7.linux-amd64.tar.gz

2、解压文件到 /usr/local
如果之前已经安装过go的版本,先清空下go下面src,不然可能会报一些previous declaration at /usr/local/go/src/runtime/internal/atomic/atomic_amd64.go:16:24的错误

rm -rf /usr/local/go

解压go包

tar -zxf go1.14.7.linux-amd64.tar.gz -C /usr/local

3、配置环境变量,vim指令编辑 /etc/profile

vim /etc/profile

4、在/etc/profile文件末尾添加以下配置,输入 :wq保存
这里的GO111MODULE配置是go1.11后出的一种新的包管理go modules方式代替vendor机制,可以不需要GOPATH,项目代码也不一定要放在GOPATH下面 ,可参考文章
注意:下面的GO111MODULE可以不需要配置了

#golang config
#export GO111MODULE=on
export GOROOT=/usr/local/go 
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

创建 /data/gopath文件夹,个人比较习惯把常用的放在data文件夹下,也可以自行调整,如:/home/gopath

mkdir /data/gopath

5、使环境变量配置生效,并查看golang的版本

source /etc/profile
go version

6、设置代理环境变量,再拉去golang.org的时候就不需要墙了。注意GO1.13及之后支持direct的写法

go env -w GOPROXY=https://goproxy.cn,direct

设置完后用 go env 查看,window和liunx都一样

7、安装完毕写一个helloworld测试
切换到gopath目录,创建一个hello.go

cd /data/gopath
vim hello.go

复制粘贴helloworld代码, :wq保存即可

package main  
import "fmt"  
func main() {  
    fmt.Printf("Hello, world!\n")  
}  

运行代码

go run hello.go
<think>好的,用户想在CentOS 7搭建BPF开发环境,我需要根据提供的引用资料来整理步骤。首先,引用[1]提到用户之前尝试过内核升级,可能需要先检查内核版本是否足够。因为eBPF需要较新的内核,CentOS 7默认的内核是3.10,可能不够,所以需要升级到至少4.x以上。引用[3]中提到在Ubuntu安装依赖库,但CentOS的包管理不同,需要转换对应的依赖包名称,比如libelf-dev在CentOS可能是elfutils-libelf-devel。此外,引用[3]还提到clang和LLVM的版本问题,需要注意安装合适的版本,避免兼容性问题。 接下来,安装必要的工具链,如clang、llvm、bpftool等。根据引用[4],eBPF需要clang将代码编译成字节码,所以安装clang和llvm是必须的。然后,用户可能需要配置环境变量,确保工具链正确识别。引用[1]中的用户遇到了内核版本问题,因此需要指导如何升级内核,可能通过ELRepo仓库来安装mainline版本的内核。 此外,引用[3]提到uprobe组件的性能问题,但用户可能暂时不需要考虑,先搭建基础环境安装完成后,验证环境是否正常工作,比如运行一个简单的eBPF程序,可能需要使用libbpf或者BCC工具。但CentOS 7默认的BCC版本可能较旧,可能需要从源码编译安装。 最后,根据引用[2],如果需要使用Go语言开发,可能需要安装eBPF-Go库,但用户的问题主要是环境搭建,可能暂时不需要涉及具体编程。综上,步骤大致分为:升级内核、安装依赖、配置工具链、验证安装。同时要注意处理可能出现的依赖冲突和版本问题,如引用[3]中提到的clang版本问题,需确保安装的版本兼容。</think>### 在CentOS 7中配置BPF开发环境的步骤 #### 1. 内核升级(必需) eBPF需要Linux内核版本≥4.18,CentOS 7默认内核为3.10,需升级: ```bash # 安装ELRepo仓库 sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # 安装mainline内核 sudo yum --enablerepo=elrepo-kernel install kernel-ml -y # 设置新内核为默认启动项 sudo grub2-set-default 0 sudo reboot ``` 重启后验证内核版本:`uname -r`,应显示≥5.x版本[^1][^4]。 #### 2. 安装开发工具链 ```bash # 基础编译工具 sudo yum install -y gcc make cmake git flex bison ncurses-devel # BPF依赖库 sudo yum install -y elfutils-libelf-devel zlib-devel libffi-devel # Clang/LLVM(需≥10.0版本) sudo yum install -y epel-release sudo yum install -y clang llvm llvm-devel ``` #### 3. 安装BPF专用工具 ```bash # bpftool(内核源码编译) git clone https://github.com/torvalds/linux.git cd linux/tools/bpf/bpftool/ make && sudo make install # BCC工具集(可选,推荐源码编译) git clone https://github.com/iovisor/bcc.git mkdir bcc/build && cd bcc/build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make && sudo make install ``` #### 4. 环境验证 创建测试程序`hello_bpf.c`: ```c #include <linux/bpf.h> #include <bpf/bpf_helpers.h> SEC("tracepoint/syscalls/sys_enter_execve") int hello_bpf(void *ctx) { char msg[] = "BPF triggered!"; bpf_printk("%s\n", msg); return 0; } char _license[] SEC("license") = "GPL"; ``` 编译验证: ```bash clang -O2 -target bpf -c hello_bpf.c -o hello_bpf.o ``` 无报错即表示环境配置成功[^4]。 #### 5. 开发框架选择(可选) - **libbpf**:直接与内核交互,需从源码编译 - **eBPF-Go**:适合Go语言开发,通过`go get github.com/cilium/ebpf`安装[^2] - **BCC**:已安装,提供Python/Lua等高级语言接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值