Can not install acme-dns

I already asked this on Github but got no reply. I have issues installing acme-dns on debian 9.9 latest update. On my local Laptop the installation ran without issues. On the test server, the installation fails. It throws a load of errors and never creates the executable in $GOPATH as described by the documentation.

    root@test-server ~ # go get github.com/joohoi/acme-dns
# github.com/joohoi/acme-dns/vendor/github.com/lib/pq
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:13: undefined: driver.NamedValue
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:31: undefined: driver.NamedValue
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:45: undefined: driver.TxOptions
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:48: undefined: sql.IsolationLevel
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:49: undefined: sql.LevelDefault
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:51: undefined: sql.LevelReadUncommitted
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:53: undefined: sql.LevelReadCommitted
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:55: undefined: sql.LevelRepeatableRead
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/conn_go18.go:57: undefined: sql.LevelSerializable
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/notify.go:790: undefined: time.Until
.go/src/github.com/joohoi/acme-dns/vendor/github.com/lib/pq/notify.go:790: too many errors
# github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:301: hello.SupportedProtos undefined (type *tls.ClientHelloInfo has no field or method SupportedProtos)
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:311: hello.SignatureSchemes undefined (type *tls.ClientHelloInfo has no field or method SignatureSchemes)
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:314: hello.SignatureSchemes undefined (type *tls.ClientHelloInfo has no field or method SignatureSchemes)
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:315: undefined: tls.SignatureScheme
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:317: undefined: tls.ECDSAWithP256AndSHA256
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:318: undefined: tls.ECDSAWithP384AndSHA384
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:318: undefined: tls.ECDSAWithP521AndSHA512
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:344: undefined: tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
.go/src/github.com/joohoi/acme-dns/vendor/golang.org/x/crypto/acme/autocert/autocert.go:347: undefined: tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
# github.com/joohoi/acme-dns/vendor/github.com/miekg/dns
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/client.go:469: undefined: time.Until
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/dnssec_keyscan.go:295: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/msg_helpers.go:144: base32.HexEncoding.WithPadding undefined (type *base32.Encoding has no field or method WithPadding)
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/msg_helpers.go:144: undefined: base32.NoPadding
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/msg_helpers.go:270: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/serve_mux.go:43: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/types.go:440: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/types.go:464: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/types.go:513: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/types.go:523: undefined: strings.Builder
.go/src/github.com/joohoi/acme-dns/vendor/github.com/miekg/dns/types.go:464: too many errors

What’s going wrong here?

Hi @maniacos, welcome the community forum :wave:

Can you share the output from go version on your Debian server? Did you install Go from the package manager?

Based on the errors I’d guess you’re using an old Go version that isn’t compatible with acme-dns. If I’m correct I recommend that you remove the old Go version and install Go 1.12.x by-hand using the upstream Go project’s installation instructions. The packaged Go version in Ubuntu/Debian is often a real fossil.

Another option is to avoid installing Go at all and just use acme-dns's binary releases. It looks like the project publishes binaries for 64bit Linux that will likely work out-of-box on your Debain system (e.g. https://github.com/joohoi/acme-dns/releases/download/v0.7.2/acme-dns_0.7.2_linux_amd64.tar.gz)

Hi!

Yes it’s an debian stable server that wasn’t yet updated to 10 because websites running on it need more testing.
Go was installed from distributor sources:

go version go1.7.4 linux/amd64

1 Like

Thanks I will try the bin, seems to work however I prefered git since it’s easier to update

1 Like

You could also simply compile it yourself (from git) on another machine, and then push it over to that server. Since go binaries are statically linked (AFAIK), this should be no problem.

(I’ve one utility in form of a Go binary I built under Ubuntu 14.04 IIRC some years back, and used it with Debian Jessie, Stretch and now Buster without problems.)

1 Like