
dep 卸載完全指南install.sh、Homebrew 與 pacman 三種安裝方式的清理方案【免費(fèi)下載鏈接】depGo dependency management tool experiment (deprecated)項(xiàng)目地址: https://gitcode.com/gh_mirrors/de/depdepGo dependency management tool experiment是 Go 官方早期推出的依賴管理工具實(shí)驗(yàn)項(xiàng)目已于 2020 年正式廢棄并歸檔官方推薦使用自 Go 1.11 起支持的 Go modules見 README.md 與 docs/introduction.md 中的說明。當(dāng)你決定卸載 dep 時(shí)正確的做法取決于當(dāng)初的安裝方式腳本安裝、Homebrew 還是 pacman對(duì)應(yīng)的清理手段完全不同。本文以 docs/uninstalling.md 為主體結(jié)合倉庫內(nèi)的 install.sh、docs/installation.md 與相關(guān)文檔系統(tǒng)講解三種卸載方式、安裝殘留的清理以及卸載后的驗(yàn)證方法幫助你在遷移到 Go modules 時(shí)干凈、徹底地移除 dep。一、卸載前先確認(rèn) dep 是如何安裝的dep 本身是一個(gè)獨(dú)立的命令行二進(jìn)制文件不依賴守護(hù)進(jìn)程、注冊(cè)服務(wù)或全局配置文件因此卸載的核心動(dòng)作就是刪除對(duì)應(yīng)的可執(zhí)行文件。但刪除哪一個(gè)文件、用哪個(gè)包管理器刪除取決于安裝路徑。官方文檔將卸載場(chǎng)景劃分為三類每類對(duì)應(yīng)一種安裝途徑安裝方式平臺(tái)卸載方式install.sh腳本預(yù)編譯二進(jìn)制Linux / macOS / Windows直接刪除二進(jìn)制文件HomebrewmacOSbrew uninstall deppacmanArch Linuxpacman -R dep動(dòng)手之前可以先確認(rèn) dep 的實(shí)際安裝位置與版本$ which dep $ dep version其中dep version會(huì)輸出版本、構(gòu)建日期、git hash、Go 版本與平臺(tái)信息其實(shí)現(xiàn)位于 cmd/dep/version.go。which dep的輸出路徑直接決定了你該刪哪個(gè)文件。二、通過install.sh安裝Linux 與 macOS 直接刪除二進(jìn)制如果你當(dāng)初使用install.sh腳本安裝 dep那么卸載非常簡(jiǎn)單——直接刪除安裝的二進(jìn)制文件即可rm是官方文檔明確推薦的唯一卸載動(dòng)作。$ rm $GOPATH/bin/dep為什么可以放心地直接刪從倉庫根目錄的 install.sh 腳本可以看到該腳本所做的全部工作就是通過uname識(shí)別操作系統(tǒng)與 CPU 架構(gòu)initArch/initOS見 install.sh確定安裝目錄默認(rèn)使用go env GOPATH推導(dǎo)出$GOPATH/binfindGoBinDirectory見 install.sh從 GitHub Releases 下載預(yù)編譯的dep-os-arch壓縮二進(jìn)制chmod x后移動(dòng)到$INSTALL_DIRECTORY/dep見 install.sh。整個(gè)過程只產(chǎn)生一個(gè)獨(dú)立的可執(zhí)行文件沒有任何共享庫、配置目錄或后臺(tái)服務(wù)所以刪除該文件即可完成卸載。若當(dāng)初通過INSTALL_DIRECTORY環(huán)境變量指定了自定義安裝目錄默認(rèn)值為$GOPATH/bin見 install.sh 與 install.sh請(qǐng)按實(shí)際目錄刪除例如$ rm /自定義目錄/dep三、通過install.sh安裝Windows 平臺(tái)刪除dep.exe在 Windows 上install.sh安裝的是$GOPATH/bin/dep.exe。腳本會(huì)為二進(jìn)制名稱追加.exe后綴見 install.sh因此卸載時(shí)刪除該文件即可$ rm $GOPATH/bin/dep.exe需要注意的是install.sh對(duì) Windows 的處理兼容了 Cygwin / MSYS / MinGW 環(huán)境OS_CYGWIN1時(shí)會(huì)將 GOPATH 通過cygpath轉(zhuǎn)換為 sh 兼容路徑見 install.sh 與 install.sh。如果你是在 Git Bash、MSYS2 等模擬環(huán)境下安裝的刪除時(shí)同樣需要讓 shell 能正確解析$GOPATH或者直接使用 Windows 資源管理器定位到%GOPATH%\bin\dep.exe刪除。四、macOS通過 Homebrew 卸載如果你當(dāng)初是通過 Homebrew 安裝的 dep即執(zhí)行過brew install dep參見 docs/installation.md 與 README.md 中的 macOS 安裝說明那么不要手動(dòng)刪除二進(jìn)制而是使用 Homebrew 自身來卸載$ brew uninstall dep這是官方文檔明確建議的方式。使用包管理器卸載的好處是brew會(huì)同步維護(hù)自身的元數(shù)據(jù)與軟鏈接記錄避免出現(xiàn)二進(jìn)制已刪但 brew 仍認(rèn)為已安裝的狀態(tài)不一致。卸載后可以用brew list | grep dep驗(yàn)證包是否已被移除。五、Arch Linux通過 pacman 卸載在 Arch Linux 上安裝 dep 使用的是pacman -S dep見 docs/installation.md對(duì)應(yīng)地卸載也交給 pacman 處理$ pacman -R dep該命令會(huì)移除 dep 軟件包及其在系統(tǒng)中注冊(cè)的文件清單。若希望連包的配置文件一并清除可考慮pacman -Rn dep-n選項(xiàng)會(huì)刪除包相關(guān)的配置文件不過 dep 自身并不在系統(tǒng)層面寫入配置文件通常-R已足夠需要精確到文件級(jí)別驗(yàn)證時(shí)可使用pacman -Ql dep先列出該包安裝的全部文件。六、從源碼安裝go get/go install的情況docs/uninstalling.md未單獨(dú)覆蓋從源碼編譯安裝的場(chǎng)景但 docs/installation.md 記錄了兩種源碼安裝路徑go get -u github.com/golang/dep/cmd/dep開發(fā)用途與go install -ldflags-X main.version$DEP_LATEST ./cmd/dep按發(fā)布版本安裝。按照 Go 工具鏈的默認(rèn)行為這兩種方式編譯出的可執(zhí)行文件同樣會(huì)被安裝到$GOPATH/bin或$GOBIN因此可以推斷其卸載方式與腳本安裝一致——直接刪除該二進(jìn)制文件即可。如果記不清當(dāng)初用的哪種方式用which dep定位真實(shí)路徑后刪除是最穩(wěn)妥的兜底做法。七、卸載二進(jìn)制之后清理項(xiàng)目殘留與本地緩存刪除二進(jìn)制只是移除了 dep 這個(gè)工具本身。如果項(xiàng)目不再需要 dep還應(yīng)按需清理以下幾類殘留它們分屬項(xiàng)目文件與全局緩存兩個(gè)層面1. 項(xiàng)目?jī)?nèi)文件dep 會(huì)在項(xiàng)目根目錄生成Gopkg.toml聲明依賴約束的清單文件、Gopkg.lock鎖定具體版本的鎖文件以及vendor/目錄。這些是 dep 的工作產(chǎn)物若項(xiàng)目已切換到 Go modules可刪除Gopkg.toml、Gopkg.lock并讓vendor交由 Go modules 重新管理。關(guān)于這些文件的語義可參考 docs/Gopkg.toml.md 與 docs/Gopkg.lock.md。2. 本地緩存目錄dep 在磁盤上維護(hù)一份純凈的上游源碼克隆默認(rèn)位于$GOPATH/pkg/dep參見 docs/glossary.md 中 Local cache 詞條也可以通過DEPCACHEDIR環(huán)境變量指定自定義位置見 docs/env-vars.md。卸載 dep 后這份緩存不再有用途可整體刪除以回收磁盤空間。緩存目錄中還會(huì)出現(xiàn)兩個(gè)值得了解的文件sm.lockdep 用來保證同一時(shí)間只有一個(gè)進(jìn)程操作本地緩存的鎖文件見 docs/glossary.md 中 Cache lock 詞條刪掉緩存目錄后它自然也不存在bolt-v1.db啟用元數(shù)據(jù)緩存后生成的內(nèi)置數(shù)據(jù)庫文件由DEPCACHEAGE控制啟用見 docs/env-vars.md。官方文檔明確說明該文件可以安全刪除需要時(shí) dep 會(huì)自動(dòng)重建。3. 環(huán)境變量如果你在 shell 配置如.bashrc、.zshrc中設(shè)置過DEPCACHEDIR、DEPCACHEAGE、DEPPROJECTROOT、DEPNOLOCK等 dep 相關(guān)變量含義詳見 docs/env-vars.md卸載后也應(yīng)一并移除避免殘留變量干擾其他工具。八、卸載后的驗(yàn)證完成上述步驟后可通過以下方式確認(rèn)卸載成功$ which dep # 應(yīng)無輸出或提示 command not found $ dep version # 應(yīng)提示命令不存在對(duì)于包管理器安裝的場(chǎng)景還需確認(rèn)包管理器的狀態(tài)一致例如brew list dep無結(jié)果、pacman -Q dep返回未安裝。若項(xiàng)目中仍留有Gopkg.toml/Gopkg.lock且你想徹底脫離 dep請(qǐng)同步完成 docs/migrating.md 中記錄的遷移流程讓項(xiàng)目平滑過渡到 Go modulesGo 1.11 起官方支持詳見 README.md 中的棄用說明。如此無論是二進(jìn)制、包管理器元數(shù)據(jù)、項(xiàng)目文件還是本地緩存dep 都將被完整、干凈地移除?!久赓M(fèi)下載鏈接】depGo dependency management tool experiment (deprecated)項(xiàng)目地址: https://gitcode.com/gh_mirrors/de/dep創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考