installGo.sh

#!/bin/bash

# 檢查是否以root用戶運行
if [ "$(id -u)" -ne 0 ]; then
? ? echo "請使用root權限運行此腳本"
? ? exit 1
fi

# 檢查是否安裝了必要的工具
for cmd in curl wget tar; do
? ? if ! command -v $cmd &> /dev/null; then
? ? ? ? echo "錯誤: 需要安裝 $cmd"
? ? ? ? exit 1
? ? fi
done

# 獲取最新版本號
echo "正在獲取最新Go版本..."
LATEST_VERSION=$(curl -s https://go.dev/dl/ | grep -o 'go[0-9.]\+\.linux-amd64.tar.gz' | head -1 | sed 's/go\([0-9.]\+\)\.linux-amd64.tar.gz/\1/')

if [ -z "$LATEST_VERSION" ]; then
? ? echo "無法獲取最新版本信息"
? ? exit 1
fi

echo "最新版本是: $LATEST_VERSION"

# 創建臨時目錄
TMP_DIR=$(mktemp -d)
cd $TMP_DIR

# 帶進度條的下載函數
download_with_progress() {
? ? echo "正在下載Go $LATEST_VERSION..."
? ? wget --progress=bar:force:noscroll -O go.tar.gz "https://go.dev/dl/go$LATEST_VERSION.linux-amd64.tar.gz"
? ? if [ $? -ne 0 ]; then
? ? ? ? echo "下載失敗"
? ? ? ? cleanup
? ? ? ? exit 1
? ? fi
}

# 帶進度條的解壓函數
extract_with_progress() {
? ? echo "正在解壓..."
? ? total_files=$(tar -tf go.tar.gz | wc -l)
? ? current=0
? ??
? ? tar -xzf go.tar.gz --checkpoint=.100 --checkpoint-action="exec=printf '\r已解壓: %.1f%%' \$((100*$current/$total_files))" -C /usr/local
? ??
? ? # 確保顯示100%
? ? echo -e "\r已解壓: 100.0%"
}

# 清理函數
cleanup() {
? ? cd /
? ? rm -rf $TMP_DIR
}

# 陷阱,確保腳本中斷時清理臨時文件
trap cleanup EXIT

# 執行下載
download_with_progress

# 執行解壓
echo "正在安裝到 /usr/local/go..."
rm -rf /usr/local/go
extract_with_progress

# 配置環境變量
echo "正在配置環境變量..."
cat > /etc/profile.d/go.sh <<EOF
export PATH=\$PATH:/usr/local/go/bin
export GOPATH=\$HOME/go
export PATH=\$PATH:\$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=off
EOF

# 使環境變量生效
source /etc/profile.d/go.sh

# 驗證安裝
echo "正在驗證安裝..."
go version

if [ $? -ne 0 ]; then
? ? echo "Go安裝失敗"
? ? exit 1
fi

echo "Go $LATEST_VERSION 安裝成功!"
echo "環境變量已配置,代理已設置為 https://goproxy.cn"
echo "請重新登錄或執行 'source /etc/profile' 使環境變量生效" ? ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86658.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【技術難題】el-table的全局數據排序實現示例,不受分頁影響,以及異步請求帶來的頁面渲染問題

參考鏈接:https://blog.csdn.net/qq_35770559/article/details/131183121 問題代碼 編輯頁面detail.vue <el-form title="列表信息" name="detail"><el-form><el-form-item><el-buttontype="cyan"icon="el-icon-p…

非功能測試

非功能測試范疇&#xff1a;界面測試&#xff0c;易用性測試&#xff0c;兼容性測試&#xff0c;文檔測試&#xff0c;安裝/卸載測試等等 界面測試 1.窗體界面測試 1.窗體定義&#xff1a;指整個軟件窗口&#xff0c;也可稱為窗口&#xff0c;是界面測試的基本單位 2.控件分…

一起endpoint迷路的問題排查總結

今天上班&#xff0c;一到工位上&#xff0c;就有同事和我說有客戶反映自己的容器的一些指標在監控平臺不上報了&#xff0c;我當時一看機器所在的監控&#xff0c;發現確實是這樣 確實存在某個點開始數據就沒了&#xff0c;主要這個點當時也沒有任何的操作變更&#xff0c;于…

官方 Linker Scripts 語法和規則解析(2)

系列文章目錄 官方 Linker Scripts 語法和規則解析&#xff08;1&#xff09; 官方 Linker Scripts 語法和規則解析&#xff08;2&#xff09; 官方 Linker Scripts 語法和規則解析&#xff08;3&#xff09; 鏈接腳本(Linker Scripts)語法和規則解析(自官方手冊) 7.9. 鏈接腳…

CentOS 7 通過YUM安裝MySQL 8.0完整指南

一、準備工作&#xff1a;更新系統與YUM源 # 1. 更換阿里云鏡像源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 2. 清理并重建緩存 yum clean all yum makecache# 3. 升級系統所有包 yum -y update 二、安裝MySQL 8.0 1. 下載…

qq郵箱 新版 怎么去掉個性簽名?

qq郵箱 新版 怎么去掉個性簽名&#xff1f; 新版的qq郵箱&#xff0c;用著還不錯&#xff0c;特別是搜索&#xff0c;比以前好多&#xff0c;以前加載的時候&#xff0c;搜索框里有一行字&#xff0c;加載不完&#xff0c;就沒法搜索&#xff0c;特別菜。現在好多了。 不過現在…

C++:string類(1)

一.初步了解STL STL是Standard Template Library的縮寫&#xff0c;中文譯為標準模板庫&#xff0c;是C標準庫的重要組成部分。它本質上是一套基于模板的通用編程工具&#xff0c;通過模板技術實現了數據結構和算法的抽象與復用&#xff0c;讓開發者無需重復編寫基礎功能&…

如何避免靜態變量初始化中的異常

確保初始化表達式的安全性 基本數據類型初始化 對于基本數據類型&#xff08;如int、double、boolean等&#xff09;的靜態變量初始化&#xff0c;要確保賦值的表達式是合法的。例如&#xff0c;在初始化一個int類型的靜態變量時&#xff0c;避免出現除數為零的情況。 class Sa…

【151】基于Springboot+Vue實現的校園訂餐管理系統小程序(有文檔+PPT+視頻)

系統介紹 視頻演示 基于SpringbootVue實現的校園訂餐管理系統小程序&#xff08;有文檔PPT視頻&#xff09; 基于SpringbootVue實現的校園訂餐管理系統小程序采用前后端分離的架構方式&#xff0c;系統設計了管理員、商家、用戶三種角色&#xff0c;系統分為管理端、小程序端&…

從 0 到 1:基于 Qwen3 Embedding 的 RAG 智能問答系統搭建指南

RAGFlow 是一個基于深度文檔理解的開源 RAG&#xff08;檢索增強生成&#xff09;引擎。 與 LLM 集成后&#xff0c;它能夠提供真實的問答功能&#xff0c;并以來自各種復雜格式數據的可靠引用為支撐。 教程鏈接&#xff1a;OpenBayes 控制臺 使用云平臺:OpenBayes signup -…

Prompt Distillation for Efficient LLM-based Recommendation

題目 基于LLM的高效推薦的快速蒸餾 論文地址&#xff1a;https://dl.acm.org/doi/10.1145/3583780.3615017 摘要 大語言模型&#xff08;LLM&#xff09;在各種任務上表現出了無與倫比的建模能力&#xff0c;例如多步推理&#xff0c;但是這些模型的輸入大部分僅限于純文本&am…

JDBC 工具類:1.0到3.0版本

一、引言 在 Java 開發中&#xff0c;與數據庫的交互是一項常見且重要的任務。JDBC&#xff08;Java Database Connectivity&#xff09;作為 Java 語言訪問數據庫的標準 API&#xff0c;為我們提供了統一的接口來操作各種數據庫。然而&#xff0c;每次進行數據庫操作都編寫大…

實驗室建設案例 | 洛陽職業技術學院—人工智能實驗室

院校簡介 洛陽職業技術學院位于千年古都、牡丹花城、絲路起點洛陽&#xff0c;是一所由洛陽市政府舉辦的公辦高職院校&#xff0c;成立于2011年&#xff0c;辦學歷史可追溯到1945年的豫西公學。學校全面貫徹黨的教育方針&#xff0c;圍繞落實立德樹人根本任務&#xff0c;秉承“…

vue2中,修改對象數組中元素對應的屬性,頁面不更新的問題解決

有如下代碼&#xff1a; // 有一個數組 let dataAry [{name: haha, age: 20},{name: hello, age: 21} ] // 這個數組在模板中使用了v-for進行循環 v-for"one of dataAry" :name"one.name" :address"one.address"// 子組件中使用如下&#xff…

代理模式:控制對象訪問的守門員[特殊字符],優雅實現功能增強與訪問控制!

代理模式&#xff1a;控制對象訪問的守門員&#x1f510;&#xff0c;優雅實現功能增強與訪問控制&#xff01; 文章目錄 代理模式&#xff1a;控制對象訪問的守門員&#x1f510;&#xff0c;優雅實現功能增強與訪問控制&#xff01;前言&#xff1a;為什么需要代理&#xff1…

《人間詞話》PPT課件

《人間詞話》簡介 《人間詞話》是王國維所著的一部文學批評著作。《人間詞話》作于1908&#xff5e;1909年&#xff0c;最初發表于《國粹學報》。該作是作者接受了西洋美學思想之洗禮后&#xff0c;以嶄新的眼光對中國舊文學所作的評論。 《人間詞話》PPT課件下載 夸克網盤分享…

解剖智能運維三基石:Metrics/Logs/Traces

3秒知識卡 三基石關系&#xff1a; Metrics&#xff08;指標&#xff09;→ 系統脈搏&#xff08;CPU/錯誤率&#xff09; Logs&#xff08;日志&#xff09;→ 事件日記&#xff08;錯誤堆棧/用戶行為&#xff09; Traces&#xff08;追蹤&#xff09;→ 血緣地圖&#xff08;…

從代碼學習深度學習 - 情感分析:使用卷積神經網絡 PyTorch版

文章目錄 前言加載數據集一維卷積最大時間匯聚層textCNN模型定義模型加載預訓練詞向量訓練和評估模型總結前言 在之前的章節中,我們探討了如何使用循環神經網絡(RNN)來處理序列數據。今天,我們將探索另一種強大的模型——卷積神經網絡(CNN)——并將其應用于自然語言處理…

深入解析分布式訓練基石:ps-lite源碼實現原理

分布式機器學習框架是現代推薦、廣告和搜索系統的核心支撐。面對海量訓練數據和高維稀疏特征&#xff0c;參數服務器&#xff08;Parameter Server, PS&#xff09; 架構應運而生。作為早期經典實現的ps-lite因其簡潔性和完整性&#xff0c;成為理解PS原理的絕佳切入點。本文將…

IDEA 插件開發:Internal Actions 與 UI Inspector 快速定位 PSI

在開發 IntelliJ 平臺插件的過程中&#xff0c;你常常需要搞清楚 某個 IDE 彈框背后是如何操作 PSI&#xff08;Program Structure Interface&#xff09; 的。下面這篇筆記將介紹如何通過 Internal Actions、UI Inspector 以及調試技巧快速定位 PSI 調用鏈。 1. 啟用 Internal…