亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

glog 標志重新定義錯誤

glog 標志重新定義錯誤

Go
米脂 2022-01-10 16:59:21
我在我的項目中使用 glog 標志 log_dir。最近我導入了 kubernetes 庫并開始出現這種運行時恐慌恐慌:./aaa.test 標志重新定義:log_dirMay 16 23:51:35 ecmdev03-core01 docker[26867]: goroutine 1 [running]:May 16 23:51:35 ecmdev03-core01 docker[26867]: panic(0x15ebc60, 0xc8201aae90)May 16 23:51:35 ecmdev03-core01 docker[26867]:         /usr/local/go/src/runtime/panic.go:464 +0x3e6May 16 23:51:35 ecmdev03-core01 docker[26867]: flag.(*FlagSet).Var(0xc8200160c0, 0x7f561118c1c0, 0xc8201aae40, 0x1bddd70, 0x7, 0x1d75860, 0x2f)May 16 23:51:35 ecmdev03-core01 docker[26867]:         /usr/local/go/src/flag/flag.go:776 +0x454May 16 23:51:35 ecmdev03-core01 docker[26867]: flag.(*FlagSet).StringVar(0xc8200160c0, 0xc8201aae40, 0x1bddd70, 0x7, 0x0, 0x0, 0x1d75860, 0x2f)May 16 23:51:35 ecmdev03-core01 docker[26867]:         /usr/local/go/src/flag/flag.go:679 +0xc7May 16 23:51:35 ecmdev03-core01 docker[26867]: flag.(*FlagSet).String(0xc8200160c0, 0x1bddd70, 0x7, 0x0, 0x0, 0x1d75860, 0x2f, 0xc8201aae30)May 16 23:51:35 ecmdev03-core01 docker[26867]:         /usr/local/go/src/flag/flag.go:692 +0x83May 16 23:51:35 ecmdev03-core01 docker[26867]: flag.String(0x1bddd70, 0x7, 0x0, 0x0, 0x1d75860, 0x2f, 0xba3950)May 16 23:51:35 ecmdev03-core01 docker[26867]:         /usr/local/go/src/flag/flag.go:699 +0x5f看起來 k8s 提供的 glog 庫與我正在使用的庫沖突。引入供應商目錄是否可以解決此問題?我應該使用 glide、govendor、gb 等供應商庫嗎?如果是,哪個是首選?
查看完整描述

3 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

該錯誤與沖突庫無關,它是一個沖突標志 ( log_dir)。這意味著您正在添加一個“--log_dir”標志,并且 kubernetes 使用的 glog 庫也有一個log_dir標志。這是在包初始化期間在庫中添加標志的問題。不幸的是,供應商不會改變任何事情。您可以通過在導入日志庫或 kubernetes 時操縱flag.CommandLine全局變量指向不同的變量來解決此flag.FlagSet問題,但這會很棘手,因為它取決于導入順序。


查看完整回答
反對 回復 2022-01-10
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

在使用 glide 供應我的依賴項時,我遇到了類似的問題。

根據https://github.com/kubernetes/kubernetes/issues/25572 kubernetes 沒有 glide.lock / glide.yml,依賴扁平化不會發生,最后 glog 被定義兩次,因為 vendor/k8s.io/ kubernetes/vendor 也包括在內。

上述鏈接的解決方法對我很有用:

glide install --strip-vendor --strip-vcs


查看完整回答
反對 回復 2022-01-10
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

我使用 k8s 庫也遇到了flag redefined: log_dir問題。我發現幾個kubernetes包不在我的供應商中govendor add。然后我他們,然后它被修復了。

我猜當在我的供應商文件夾中找不到這些軟件包時,構建了兩個 glog 副本(一個在我的供應商文件夾中,一個在我的 $GOPATH 中的 k8s.io/kubernetes/vendor 中)。

如何找出丟失的包裹?我用笨辦法,把$GOPATH/src/k8s.io改成別的名字,然后自己建項目,看看沒找到什么的,再添加吧~


查看完整回答
反對 回復 2022-01-10
  • 3 回答
  • 0 關注
  • 313 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號