如何在非root用户的家目录下安装Golang

如何在非root用户的家目录下安装Golang 你好,

我已经成功将 Go 安装到了我的主目录下的 $HOME/usr/local/bin 中。 像 go mod initgo mod tidy 这样的命令似乎都能正常工作。 我这样做是因为我没有想要安装 Go 语言的服务器的 root 访问权限。

有人尝试过这种方法吗?有什么需要我特别注意的地方吗?

// 代码示例:初始化一个 Go 模块
package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
3 回复

@geosoft1 谢谢。

更多关于如何在非root用户的家目录下安装Golang的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


$HOME 就足够了,没有必要将其放在 /usr/local/bin 子文件夹中。此外,您可以使用下面的工具来自动安装所有内容。

GitHub

GitHub - geosoft1/tools: 用于 Golang 的各种工具,如安装程序、…

用于 Golang 的各种工具,如安装程序、github 工具和云功能。 - GitHub - geosoft1/tools: 用于 Golang 的各种工具,如安装程序、github 工具和云功能。

在非root用户的家目录下安装Golang是可行的方案,需要注意环境变量配置和权限问题。以下是具体实现:

# 1. 下载并解压Go到主目录
cd ~
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
tar -C $HOME/usr/local -xzf go1.21.0.linux-amd64.tar.gz

# 2. 设置环境变量(添加到~/.bashrc或~/.profile)
export GOROOT=$HOME/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

# 3. 验证安装
source ~/.bashrc
go version
// 测试模块创建和工作区功能
// go.mod
module example.com/user/project

go 1.21

require (
    github.com/gorilla/mux v1.8.0
)

// main.go
package main

import (
    "fmt"
    "net/http"
    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Go installed in home directory")
    })
    
    http.ListenAndServe(":8080", r)
}
# 4. 设置模块代理(避免网络问题)
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOPRIVATE=*.corp.example.com

# 5. 编译测试
go build -o myapp main.go
./myapp

需要注意:

  • 确保$HOME/usr/local目录有写入权限
  • 如果使用不同shell,环境变量配置文件可能是~/.zshrc~/.bash_profile
  • 编译的二进制文件会默认放在$GOPATH/bin目录下

这种安装方式完全支持Go模块、依赖管理和标准工具链的所有功能。

回到顶部