問題
在使用go mod的情況下,添加依賴go-systemd或者etcd的golang庫的時(shí)候容易出現(xiàn)no matching versions for query "latest" 的問題。
解決方案
在go.mod當(dāng)中添加如下文本內(nèi)容。
replace github.com/coreos/go-systemd => github.com/coreos/go-systemd/v22 v22.1.0
使用replace代理下go-systemd的庫。
原因
這主要是因?yàn)間o.mod使用semver標(biāo)記版本的方法。go-systemd這個(gè)包的名字就被標(biāo)記為github.com/coreos/go-systemd/v22 可以從下面這個(gè)URL查看。https://github.com/coreos/go-systemd/blob/master/go.mod 。
這種情況下如果我們想使用go-systemd/dbus這個(gè)功能就必須使用如下的方式進(jìn)行引用。
github.com/coreos/go-systemd/v22/dbus
否則,如果我們不想在庫后面跟上版本號(hào)。就必須使用replace的方法對(duì)go-systemd進(jìn)行替代。
這主要是go-systemd這個(gè)項(xiàng)目和go.mod本身一些使用習(xí)慣的沖突問題。后面在有必要的情況下。我想coreos可能會(huì)解決這個(gè)問題。