Голанг не может изменить имя импортируемого модуля

Я пытаюсь вернуть SkyDNSv1 к жизни и собрать его с моего форка (вот Dockerfile). SkyDNS был действительно хорошим и простым инструментом для быстрого обнаружения услуг, но долгое время не обновлялся.

В процессе сборки произошла ошибка, вызванная сторонней библиотекой. Я не могу понять, почему это происходит:

$ docker build --no-cache -t skydns1 .
Sending build context to Docker daemon 1.566 MB
Sending build context to Docker daemon 
Step 0 : FROM golang:1.4.2
 ---> 3e8cb8e0c765
Step 1 : WORKDIR /go/src
 ---> Running in 3a06cf460ad9
 ---> 1dd14a099164
Removing intermediate container 3a06cf460ad9
Step 2 : RUN go get github.com/codegangsta/cli
 ---> Running in eabcfd6fe621
 ---> c9ea222f2d74
Removing intermediate container eabcfd6fe621
Step 3 : RUN go get github.com/vitalyisaev2/skydns1
 ---> Running in 3264582b2e7a
# github.com/rcrowley/go-metrics/influxdb
github.com/rcrowley/go-metrics/influxdb/influxdb.go:19: undefined: client.ClientConfig
github.com/rcrowley/go-metrics/influxdb/influxdb.go:38: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:44: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:52: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:60: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:70: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:82: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:93: undefined: client.Series
github.com/rcrowley/go-metrics/influxdb/influxdb.go:106: client.WriteSeries undefined (type *client.Client has no field or method WriteSeries)
INFO[0075] The command [/bin/sh -c go get github.com/vitalyisaev2/skydns1] returned a non-zero code: 

Но если вы посмотрите файл, вызывающий эту ошибку, вы заметите, что Голанг сбит с толку influxdb/client, Я думаю, что компилятор не заменяет импортированное имя client с influxClient как следует сделать:

package influxdb

import (
    "fmt"
    influxClient "github.com/influxdb/influxdb/client"
    "github.com/rcrowley/go-metrics"
    "log"
    "time"
) 

Вероятно, я просто упустил очевидную ошибку. Любая помощь будет оценена.

1 ответ

Решение

Компилятор Go ничего не заменяет и не переписывает, код просто неправильный. github.com/rcrowley/go-metrics/influxdb Пакет был написан с некоторым другим клиентским кодом InflowDB, который больше не существует. (Похоже, уже есть несколько проблем с github)

Если вы посмотрите на текущий пакет infxdb / client, вы увидите, что нет Series, ClientConfig, или же Client.WriteSeries совсем. Вам нужно будет отказаться от зависимости от github.com/rcrowley/go-metrics/influxdb для того, чтобы ваш проект построить.

Другие вопросы по тегам