在 Fedora 上配置 Go 语言(Golang)开发环境
<h2 data-path-to-node="1">1. 安装 Go 语言</h2><p data-path-to-node="2">Fedora 的 <code data-path-to-node="2" data-index-in-node="9">dnf</code> 仓库通常提供相对较新且稳定的 Go 版本。</p>
<div class="code-block ng-tns-c1976125850-27 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQTw">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-27 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-27 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-27">
<div class="animated-opacity ng-tns-c1976125850-27">
<pre class="ng-tns-c1976125850-27 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code># 更新系统软件包列表
sudo dnf update
# 安装 golang
sudo dnf install golang</code></pre>
</div>
</div>
</div>
<p data-path-to-node="4"><strong data-path-to-node="4" data-index-in-node="0">验证安装:</strong></p>
<div class="code-block ng-tns-c1976125850-28 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQUA">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-28 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-28 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-28">
<div class="animated-opacity ng-tns-c1976125850-28">
<pre class="ng-tns-c1976125850-28 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code>go version
# 输出示例: go version go1.2x.x linux/amd64</code></pre>
</div>
</div>
</div>
<hr data-path-to-node="6">
<h2 data-path-to-node="7">2. 配置环境变量</h2>
<p data-path-to-node="8">虽然现代 Go 版本的 <code data-path-to-node="8" data-index-in-node="12">GOPATH</code> 默认为 <code data-path-to-node="8" data-index-in-node="23">$HOME/go</code>,但为了开发方便,建议将 Go 的二进制目录添加到 <code data-path-to-node="8" data-index-in-node="57">PATH</code> 中。</p>
<p data-path-to-node="9">编辑你的 shell 配置文件(通常是 <code data-path-to-node="9" data-index-in-node="20">~/.bashrc</code> 或 <code data-path-to-node="9" data-index-in-node="32">~/.zshrc</code>):</p>
<div class="code-block ng-tns-c1976125850-29 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQUQ">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-29 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-29 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-29">
<div class="animated-opacity ng-tns-c1976125850-29">
<pre class="ng-tns-c1976125850-29 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code># 将以下内容添加到文件末尾
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin</code></pre>
</div>
</div>
</div>
<p data-path-to-node="11">执行 <code data-path-to-node="11" data-index-in-node="3">source ~/.bashrc</code> 使其立即生效。</p>
<hr data-path-to-node="12">
<h2 data-path-to-node="13">3. 开发工具推荐</h2>
<p data-path-to-node="14">在 Fedora 上,你有几个优秀的选择:</p>
<h3 data-path-to-node="15"><strong data-path-to-node="15" data-index-in-node="0">Visual Studio Code (最流行)</strong></h3>
<ol start="1" data-path-to-node="16">
<li>
<p data-path-to-node="16,0,0"><strong data-path-to-node="16,0,0" data-index-in-node="0">安装:</strong> 可以在软件中心搜索,或使用 <code data-path-to-node="16,0,0" data-index-in-node="18">sudo dnf install code</code>。</p>
</li>
<li>
<p data-path-to-node="16,1,0"><strong data-path-to-node="16,1,0" data-index-in-node="0">插件:</strong> 安装由 Google 提供的 <strong data-path-to-node="16,1,0" data-index-in-node="19">"Go" 扩展插件</strong>。</p>
</li>
<li>
<p data-path-to-node="16,2,0"><strong data-path-to-node="16,2,0" data-index-in-node="0">工具安装:</strong> 打开一个 <code data-path-to-node="16,2,0" data-index-in-node="11">.go</code> 文件,VS Code 会提示你安装 <code data-path-to-node="16,2,0" data-index-in-node="33">gopls</code>(语言服务器)、<code data-path-to-node="16,2,0" data-index-in-node="46">dlv</code>(调试器)等工具,点击 <strong data-path-to-node="16,2,0" data-index-in-node="61">"Install All"</strong> 即可。</p>
</li>
</ol>
<h3 data-path-to-node="17"><strong data-path-to-node="17" data-index-in-node="0">GoLand (专业级)</strong></h3>
<p data-path-to-node="18">JetBrains 出品的 IDE,如果你有教育版或专业版授权,这是功能最强大的选择。Fedora 用户可以通过 <code data-path-to-node="18" data-index-in-node="57">flatpak</code> 或 <code data-path-to-node="18" data-index-in-node="67">toolbox</code> 安装。</p>
<h3 data-path-to-node="19"><strong data-path-to-node="19" data-index-in-node="0">Neovim / Vim (硬核)</strong></h3>
<p data-path-to-node="20">使用 <code data-path-to-node="20" data-index-in-node="3">lazy.nvim</code> 配合 <code data-path-to-node="20" data-index-in-node="16">nvim-lspconfig</code> 和 <code data-path-to-node="20" data-index-in-node="33">mason.nvim</code> 可以快速搭建极简且高效的 Go 环境。</p>
<hr data-path-to-node="21">
<h2 data-path-to-node="22">4. 验证开发环境 (Hello World)</h2>
<p data-path-to-node="23">按照现代 Go 的标准流程(Go Modules):</p>
<ol start="1" data-path-to-node="24">
<li>
<p data-path-to-node="24,0,0"><strong data-path-to-node="24,0,0" data-index-in-node="0">创建项目目录:</strong></p>
<div class="code-block ng-tns-c1976125850-30 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQUg">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-30 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-30 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-30">
<div class="animated-opacity ng-tns-c1976125850-30">
<pre class="ng-tns-c1976125850-30 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code>mkdir -p ~/projects/hello-go
cd ~/projects/hello-go</code></pre>
</div>
</div>
</div>
</li>
<li>
<p data-path-to-node="24,1,0"><strong data-path-to-node="24,1,0" data-index-in-node="0">初始化模块:</strong></p>
<div class="code-block ng-tns-c1976125850-31 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQUw">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-31 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-31 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-31">
<div class="animated-opacity ng-tns-c1976125850-31">
<pre class="ng-tns-c1976125850-31 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code>go mod init hello-go</code></pre>
</div>
</div>
</div>
</li>
<li>
<p data-path-to-node="24,2,0"><strong data-path-to-node="24,2,0" data-index-in-node="0">编写代码:</strong> 创建 <code data-path-to-node="24,2,0" data-index-in-node="9">main.go</code> 并输入:</p>
<div class="code-block ng-tns-c1976125850-32 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQVA">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-32 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-32 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-32">
<div class="animated-opacity ng-tns-c1976125850-32">
<pre class="ng-tns-c1976125850-32 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code>package main
import "fmt"
func main() {
fmt.Println("你好,Fedora Go 开发者!")
}</code></pre>
</div>
</div>
</div>
</li>
<li>
<p data-path-to-node="24,3,0"><strong data-path-to-node="24,3,0" data-index-in-node="0">运行:</strong></p>
<div class="code-block ng-tns-c1976125850-33 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQVQ">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-33 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-33 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-33">
<div class="animated-opacity ng-tns-c1976125850-33">
<pre class="ng-tns-c1976125850-33 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code>go run main.go</code></pre>
</div>
</div>
</div>
</li>
</ol>
<hr data-path-to-node="25">
<h2 data-path-to-node="26">5. 进阶提示:GOPROXY</h2>
<p data-path-to-node="27">如果你在中国境内开发,由于网络限制,建议配置代理以加速依赖下载:</p>
<div class="code-block ng-tns-c1976125850-34 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQVg">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-34 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-34 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-34">
<div class="animated-opacity ng-tns-c1976125850-34">
<pre class="ng-tns-c1976125850-34 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code>go env -w GOPROXY=https://goproxy.cn,direct</code></pre>
</div>
</div>
</div>
<h2 data-path-to-node="29">6. 使用 Toolbox (可选,推荐)</h2>
<p data-path-to-node="30">如果你喜欢保持系统干净,Fedora 独有的 <strong data-path-to-node="30" data-index-in-node="23">Toolbox</strong> 容器是开发 Go 的绝佳场所:</p>
<div class="code-block ng-tns-c1976125850-35 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahcKEwiKzMen0cuTAxUAAAAAHQAAAAAQVw">
<div class="code-block-decoration header-formatted gds-title-s ng-tns-c1976125850-35 ng-star-inserted">
<div class="buttons ng-tns-c1976125850-35 ng-star-inserted"> </div>
</div>
<div class="formatted-code-block-internal-container ng-tns-c1976125850-35">
<div class="animated-opacity ng-tns-c1976125850-35">
<pre class="ng-tns-c1976125850-35 highlighter-prismjs language-none prismjs-lines-highlighted" tabindex="0" data-dark-theme="true"><code># 创建一个专门用于 Go 开发的容器
toolbox create -c go-dev
toolbox enter -c go-dev
# 在容器内执行 sudo dnf install golang</code></pre>
</div>
</div>
</div>
<p data-path-to-node="32">这样你的开发工具和库都在容器内,不会污染宿主机系统。</p>
</div>
<div id="MySignature" role="contentinfo">
<p>本文来自博客园,作者:木子欢儿,转载请注明原文链接:https://www.cnblogs.com/HGNET/p/19805603</p><br><br>
来源:https://www.cnblogs.com/HGNET/p/19805603
頁:
[1]