Проблема с импортом зависимостей поставщиков при сборке проекта Go 1.7 с использованием govendor, dh-make-golang

Я пытался создать проект go в пакете Debian.

Я просмотрел dh-make-golang и у меня есть красивая и блестящая папка debian в моем репозитории. Когда я пытаюсь использовать gbp buildpackage --git-pbuilder, возникает ошибка из-за того, что все мои зависимости не найдены. Кажется, что dh-make-golang игнорирует папку vendor, когда копирует все из репозитория git моего проекта, и я использую govendor, поэтому все мои зависимости находятся там.

Как я могу решить эту проблему с зависимостями и правильно собрать проект как пакет .deb? Для справки, ошибка, которую я получаю:

src/github.com/project/project/project.go:15:2: cannot find package "google.golang.org/grpc/grpclog" in any of: /usr/lib/go-1.7/src/google.golang.org/grpc/grpclog (from $GOROOT) /tmp/project/obj-x86_64-linux-gnu/src/google.golang.org/grpc/grpclog (from $GOPATH)


person baisang    schedule 29.03.2017    source источник


Ответы (2)


Проблема заключалась в ошибке в dh-make-golang, связанной с импортом зависимостей поставщиков. Только сегодня исправили.

https://github.com/Debian/dh-make-golang/issues/ 46

person baisang    schedule 29.03.2017

Взгляните на goxc — он может сделать это за вас!

Вам просто нужно добавить .goxc.json в корень вашего каталога, который выглядит так

{
    "AppName": "my_app",
    "ArtifactsDest": "downloads",
    "Tasks": [
        "interpolate-source"
        "deb",
    ],
    "BuildConstraints": "linux,amd64 windows,amd64 darwin,amd64 linux,arm",
    "ResourcesInclude": "INSTALL*,README*,LICENSE*,config/*,static/*,templates/*",
    "PackageVersion": "0.9.3",
    "TaskSettings": {
        "deb": {
            "metadata": {
                "description": "my app",
                "maintainer": "me",
                "maintainer-email": "[email protected]"
            },
            "metadata-deb": {
                "Homepage": "https://example.com"
            },
            "other-mapped-files": {
                "/": "debian/",
                "/usr/share/something/static": "static/",
                "/usr/share/something/templates": "templates/"
            }
        }
    },
    "ConfigVersion": "0.9"
}

Затем запустите goxc, и он сделает всю работу за вас.

person jaxxstorm    schedule 29.03.2017
comment
От автора: ПРИМЕЧАНИЕ: goxc уже давно находится в режиме обслуживания. С тех пор, как Go1.5 поддерживал простую кросс-компиляцию, этот инструмент потерял большую часть своей ценности. . . Я очень люблю go, но сам давно не нуждался в goxc. Так что, ИМХО, не тратьте время на проверку, что я и сделал после этого ответа. :-( - person xpt; 27.05.2018