V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firefox12
V2EX  ›  程序员

golang 如何获取所有依赖?

  •  
  •   firefox12 · 2015-11-23 18:07:32 +08:00 · 14496 次点击
    这是一个创建于 3272 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想编译一个 go 项目

    应该如何获取所有的 go 的依赖源码呢?

    比如 kubernetes

    https://github.com/kubernetes/kubernetes

    我现在知道的是去每个子目录下面去运行 go get?
    21 条回复    2015-11-26 14:10:59 +08:00
    Shadas
        1
    Shadas  
       2015-11-23 18:09:41 +08:00
    是 go get ... 嘛?
    holmesabc
        2
    holmesabc  
       2015-11-23 18:12:56 +08:00
    那你直接 go get github.com/kubernetes/kubernetes
    不要自己 git clone 呗
    w3hacker
        3
    w3hacker  
       2015-11-23 18:24:21 +08:00
    go get ./...
    carmark
        4
    carmark  
       2015-11-23 19:19:07 +08:00
    godep 呀, kubernetes 就是用 godep 管理的。


    针对 k8s 这么庞大的项目,还是用它给的默认的编译脚本吧。
    firefox12
        5
    firefox12  
    OP
       2015-11-23 22:07:11 +08:00
    [root@default godep]# ./godep get github.com/kubernetes/kubernetes
    package github.com/kubernetes/kubernetes
    imports github.com/kubernetes/kubernetes
    imports github.com/kubernetes/kubernetes: no buildable Go source files in /root/go2/src/github.com/kubernetes/kubernetes
    godep: exit status 1
    hst001
        6
    hst001  
       2015-11-23 22:50:27 +08:00
    在不考虑 GFW 的情况下.........!!!go get 是会自动下所有依赖的
    firefox12
        7
    firefox12  
    OP
       2015-11-23 23:32:02 +08:00
    我的服务器在国外 不存在 gfw 的问题 虽然只是个 vps,网络没有问题
    u
        8
    u  
       2015-11-23 23:44:14 +08:00
    唉 正好这几天也在编译 K8S ,国内的网络环境,蛋疼死了

    顺便请教一下,默认脚本是从 golang.org/x 获取包的,被 qiang 了,如何改成 github 上 go 的地址?刚接触 go 语言,不太会。。。


    @carmark
    @firefox12
    firefox12
        9
    firefox12  
    OP
       2015-11-23 23:49:43 +08:00
    国外直接获取的

    但是 gopkg 里面的 fnotify 是手动改的 这个是 docker 的编译,可惜 也没编过。因为 vps 上没有 docker
    carmark
        10
    carmark  
       2015-11-24 09:17:27 +08:00
    @u

    这个貌似没有太好的办法,我是直接翻墙编译的。

    你想这么干的话,估计你只能改代码了,但是有点多,反正不太好办。

    如果你想试用 kubernetes ,你可以直接 hack/build-go.sh ,这是编译代码,然后在单 node 上面运行 hack/local-up-cluster.sh ,这样你就可以用 kubectl 了。
    janxin
        11
    janxin  
       2015-11-24 09:42:55 +08:00
    @u 把代码手工翻墙下载,放在指定的文件夹下,$GOPATH/src/golang.org/x/...下面就行了
    windyboy
        12
    windyboy  
       2015-11-24 09:53:57 +08:00
    golang.org/x 的包,可以从 github.com 的镜像直接 clone 进去
    u
        13
    u  
       2015-11-24 21:54:30 +08:00
    @janxin
    @windyboy
    谢谢,不过编译 kubernetes 有些特殊,目前做的这个需要在每个 container 中都手动指定包,还是有些麻烦
    u
        14
    u  
       2015-11-24 21:55:28 +08:00
    @carmark 最后在前面插了一个安了 SS 的路由器,终于搞定了
    janxin
        15
    janxin  
       2015-11-24 23:56:47 +08:00
    @u 虽然没编译过,但是所谓的每个 container 指定包是什么意思? kubernetes 不是一个管理工具么?
    u
        16
    u  
       2015-11-25 00:05:33 +08:00
    @janxin 抱歉没说清楚,我是按照这篇 doc 进行的,主要是测试 K8S 和 Mesos 的集成:

    Getting Started With Kubernetes on Mesos on Docker

    https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/getting-started-guides/mesos-docker.md
    janxin
        17
    janxin  
       2015-11-25 00:33:53 +08:00
    @u 看了一下步骤没有吧,只是有个 build mac 或者是 linux 的 binary 。 build locally 的话应该没有问题吧,具体卡在哪一步了?
    u
        18
    u  
       2015-11-25 01:13:39 +08:00
    @janxin 直接执行第二步的话,出错的信息是:

    <script src="https://gist.github.com/anonymous/72c25d69a1a54be52c77.js"></script>

    build locally 是直接在 kubernetes 的目录中执行么?报错的信息是:

    <script src="https://gist.github.com/anonymous/b0cab8cc1a3db2ab4ffd.js"></script>
    u
        19
    u  
       2015-11-25 01:15:24 +08:00
    u
        20
    u  
       2015-11-25 01:16:15 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2591 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:35 · PVG 23:35 · LAX 07:35 · JFK 10:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.