在 Fedora 上配置 Go 语言(Golang)开发环境

1. 安装 Go 语言

Fedora 的 dnf 仓库通常提供相对较新且稳定的 Go 版本。

复制代码
# 更新系统软件包列表
sudo dnf update

# 安装 golang
sudo dnf install golang

验证安装:

复制代码
go version
# 输出示例: go version go1.2x.x linux/amd64

2. 配置环境变量

虽然现代 Go 版本的 GOPATH 默认为 $HOME/go,但为了开发方便,建议将 Go 的二进制目录添加到 PATH 中。

编辑你的 shell 配置文件(通常是 ~/.bashrc~/.zshrc):

复制代码
# 将以下内容添加到文件末尾
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

执行 source ~/.bashrc 使其立即生效。


3. 开发工具推荐

在 Fedora 上,你有几个优秀的选择:

Visual Studio Code (最流行)

  1. 安装: 可以在软件中心搜索,或使用 sudo dnf install code

  2. 插件: 安装由 Google 提供的 "Go" 扩展插件

  3. 工具安装: 打开一个 .go 文件,VS Code 会提示你安装 gopls(语言服务器)、dlv(调试器)等工具,点击 "Install All" 即可。

GoLand (专业级)

JetBrains 出品的 IDE,如果你有教育版或专业版授权,这是功能最强大的选择。Fedora 用户可以通过 flatpaktoolbox 安装。

Neovim / Vim (硬核)

使用 lazy.nvim 配合 nvim-lspconfigmason.nvim 可以快速搭建极简且高效的 Go 环境。


4. 验证开发环境 (Hello World)

按照现代 Go 的标准流程(Go Modules):

  1. 创建项目目录:

    复制代码
    mkdir -p ~/projects/hello-go
    cd ~/projects/hello-go
  2. 初始化模块:

    复制代码
    go mod init hello-go
  3. 编写代码: 创建 main.go 并输入:

    复制代码
    package main
    import "fmt"
    
    func main() {
        fmt.Println("你好,Fedora Go 开发者!")
    }
  4. 运行:

    复制代码
    go run main.go

5. 进阶提示:GOPROXY

如果你在中国境内开发,由于网络限制,建议配置代理以加速依赖下载:

复制代码
go env -w GOPROXY=https://goproxy.cn,direct

6. 使用 Toolbox (可选,推荐)

如果你喜欢保持系统干净,Fedora 独有的 Toolbox 容器是开发 Go 的绝佳场所:

复制代码
# 创建一个专门用于 Go 开发的容器
toolbox create -c go-dev
toolbox enter -c go-dev
# 在容器内执行 sudo dnf install golang

这样你的开发工具和库都在容器内,不会污染宿主机系统。

相关推荐
AI+程序员在路上3 分钟前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
invicinble9 分钟前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
小码哥_常9 分钟前
MyBatis-Plus:让数据库操作飞起来的神器
后端
catchadmin18 分钟前
使用 PHP TrueAsync 改造 Laravel 协程异步化的可行路径
开发语言·php·laravel
wbs_scy24 分钟前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·开发语言
2301_811274311 小时前
基于SpringBoot的智能家居管理系统
spring boot·后端·智能家居
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
舒一笑1 小时前
我把设备指纹生成逻辑拆开了:它到底凭什么区分不同设备?
后端·程序员·掘金技术征文
Nicander1 小时前
多数据源下@transcation事务踩坑
java·后端
KeyonY1 小时前
车联网MQTT 消息处理的高并发优化
mqtt·golang·车联网