在Debian上安装Golang有两种主要方式:包管理器安装(简单快捷)和手动下载安装(版本可控)。
sudo apt update && sudo apt install golang-go -y
go1.25.linux-amd64.tar.gz),下载后解压至/usr/local:wget https://golang.org/dl/go1.25.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.25.linux-amd64.tar.gz
~/.bashrc(或~/.zshrc),添加以下内容以设置GOROOT(Go安装路径)、GOPATH(工作目录)和PATH(可执行文件路径):export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
运行source ~/.bashrc使配置生效。go version,若输出类似go version go1.25 linux/amd64,则说明安装成功。GOPATH的繁琐配置。在项目目录下运行:mkdir -p $GOPATH/src/myproject && cd $GOPATH/src/myproject
go mod init myproject # 初始化模块,生成go.mod文件
Go语言内置强大的标准库,适合开发网络服务、系统工具、并发程序等系统级应用。
main.go文件,编写以下代码:package main
import (
"fmt"
"net"
)
func main() {
listener, err := net.Listen("tcp", ":8080") // 监听8080端口
if err != nil {
fmt.Println("监听失败:", err)
return
}
defer listener.Close()
fmt.Println("服务器启动,等待连接...")
for {
conn, err := listener.Accept() // 接受客户端连接
if err != nil {
fmt.Println("连接失败:", err)
continue
}
go handleConnection(conn) // 启动goroutine处理连接
}
}
func handleConnection(conn net.Conn) {
defer conn.Close()
buffer := make([]byte, 1024)
n, err := conn.Read(buffer) // 读取客户端数据
if err != nil {
fmt.Println("读取失败:", err)
return
}
fmt.Printf("收到客户端消息: %s\n", string(buffer[:n]))
conn.Write([]byte("Hello from Debian Go Server!\n")) // 发送响应
}
package main
import (
"fmt"
"time"
)
func printNumbers(ch chan int) {
for i := 1; i <= 5; i++ {
ch <- i // 发送数据到channel
time.Sleep(time.Second)
}
close(ch) // 关闭channel
}
func main() {
ch := make(chan int)
go printNumbers(ch) // 启动goroutine
for num := range ch { // 从channel接收数据
fmt.Println("数字:", num)
}
}
go run命令快速执行代码(无需生成可执行文件):go run main.go
go build生成二进制文件(适用于部署):go build -o myserver # 生成名为myserver的可执行文件
./myserver # 运行程序
-ldflags="-s -w"减少体积,CGO_ENABLED=0禁用Cgo(避免依赖动态库):CGO_ENABLED=0 go build -ldflags="-s -w" -o myserver_static
go get安装第三方库(如go get github.com/gorilla/mux),Go Modules会自动管理版本。gofmt工具统一代码风格(如gofmt -w main.go)。Delve调试器(dlv debug启动调试)。make([]int, 0, 100))、使用sync.Pool复用对象、启用编译器优化(-gcflags="-m"查看逃逸分析)。/etc/systemd/system/myserver.service),实现开机自启和进程管理。通过以上步骤,你可以在Debian系统上高效地使用Go语言进行系统开发,从环境搭建到程序部署,覆盖系统级应用的全生命周期。