第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Go 編程中使用 golang-Debian 包

在 Go 編程中使用 golang-Debian 包

Go
滄海一幻覺 2022-06-01 16:38:34
要理解這個(gè) Go 問題,需要先了解一下 Go modules Debian Packaging 的要點(diǎn)?;旧?,Debian 軟件包的 Go 模塊是這樣設(shè)計(jì)的,它們只能被 Debian 軟件包本身使用,而不能用于我們?nèi)粘5?Go import。但是,因?yàn)樗鼈冎皇俏业牟僮飨到y(tǒng)文件系統(tǒng)中的文件,所以我們肯定有辦法在我們的日常 Go 中使用 Debian 包import。以前有沒有人成功地做到過?我問的原因是,有很多 github 存儲(chǔ)庫包含巨大的模塊,但我想要的只是其中的一小部分,而那部分恰好已經(jīng)打包為 Debian 包。即,如果我可以利用它,使用go get會(huì)給我?guī)砦掖蟛糠植恍枰木薮蟠a庫,同時(shí)可以讓我得到我需要的東西。apt get
查看完整描述

1 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

AFAIK,您需要附加 /usr/share/gocode到您的GOPATH環(huán)境變量(在您自己的私有 Go 工作區(qū)之后,以 分隔:)以使這些包可用于go工具鏈。

請參閱本指南(并查看dpkg -L任何感興趣的已安裝 Go 庫包的輸出——您會(huì)看到包的導(dǎo)入路徑實(shí)際上位于 下/usr/share/gocode/src)。


(擴(kuò)展@Flimzy 在他們對原始帖子的評(píng)論中提出的建議,@JimB 在他們的評(píng)論中進(jìn)行了擴(kuò)展……)

您可能需要清楚地說明自己在開發(fā)時(shí)的意圖是什么。

“問題”是 Debian 和 Go 管理依賴項(xiàng)的方法存在一定的不確定性:

  • Go 社區(qū)建議的常見做法是修復(fù)特定版本的依賴項(xiàng)(這些天 - 通過go modules)并讓工具鏈為您獲取并安裝它們,或者提供您的依賴項(xiàng) - 這在邏輯上是相同的,但在此如果您實(shí)際上將這些依賴項(xiàng)作為代碼庫的一部分?jǐn)y帶(它們只是位于特定目錄中)。

    前者建議用于庫代碼和一般可供第三方重用的代碼,而后者通常用于“最終”產(chǎn)品(通常是內(nèi)部開發(fā))。

  • Debian 采用的方法是集成:可以理解的是,他們拒絕不受控制地嵌入依賴項(xiàng)的想法,并嘗試確保所有與其他任何東西“反向依賴”的東西都被正確打包,理想情況下只有給定的單個(gè)版本庫存在于任何特定的操作系統(tǒng)版本中(但這在現(xiàn)實(shí)生活中并不總是可能的)。

這兩種方法最終都不是“正確的”,因?yàn)樗鼈冞m用于不同的用例。

需要考慮的重要一點(diǎn)是,大多數(shù)(如果不是全部)用 Go 編寫行業(yè)代碼的團(tuán)隊(duì)將底層操作系統(tǒng)視為一個(gè)無聊的實(shí)現(xiàn)細(xì)節(jié)——比如,一個(gè)不太有趣的“東西”塊,只是需要運(yùn)行目標(biāo)產(chǎn)品(如今,通過使用容器將這種方法發(fā)揮到了極致)并自行管理它們的依賴關(guān)系。
這是為什么?
這是一個(gè)哲學(xué)問題。我認(rèn)為這主要?dú)w結(jié)為企業(yè)中普遍缺乏適當(dāng)技能的人員來與目標(biāo)平臺(tái)進(jìn)行適當(dāng)?shù)募?,同時(shí) - 易于維護(hù)您自己的經(jīng)過嘗試和測試的依賴項(xiàng)版本,而不是提供的那些由發(fā)行版。

現(xiàn)在讓我們從另一個(gè)角度看一下 Debian 打包的 Go 庫。
Debian 打包程序通過打包 Go 庫包來解決他們以集成為中心的任務(wù),這種方式使它們可供 Debian 的構(gòu)建助手使用(請參閱參考資料dh-golang)。也就是說,在 Debian 中,當(dāng)您準(zhǔn)備一些用 Go 編寫的程序的包時(shí),您將不可避免地使用dh-golang確保 Go 工具鏈以可以利用已安裝包的方式調(diào)用的東西。

現(xiàn)在考慮相當(dāng)大比例的 Go 庫代碼,并且許多可運(yùn)行程序與平臺(tái)無關(guān),如果您編寫的 Go 代碼旨在通用,因此將發(fā)布在某個(gè)地方(例如在一些流行的 Git托管解決方案),最好以任何開發(fā)人員都可以抓住它并能夠在沒有任何特殊準(zhǔn)備的情況下對其進(jìn)行工作的方式來組織代碼。

所以,我要引導(dǎo)你的是,除非你編寫的代碼肯定只會(huì)Debian 中使用,否則你的方法可能是正確的,但如果你正在編寫“常規(guī)”Go 代碼,我建議將“編寫+維護(hù)代碼”和“Debian 集成”任務(wù)分開——也就是說,按照 Go 社區(qū)推薦的方式編寫代碼,然后編寫使用已安裝依賴項(xiàng)的 Debian 包。
請注意,對于后者,您可能首先需要實(shí)際打包所有缺少的依賴項(xiàng)。


查看完整回答
反對 回復(fù) 2022-06-01
  • 1 回答
  • 0 關(guān)注
  • 125 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)