编译frp程序

deny
2018-02-01 / 0 评论 / 202 阅读 / 正在检测是否收录...

说明

上一次更新博客还是去年(2017)的事了,由于最近的一些经历让我感觉到博客的重要性,不过说不定突然的又不想更新博客了。

关于frp

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。使用GO语言编写,功能强大。并且作者也将其开源在github社区。(非常感谢作者的无私奉献!)

前言

说到底还是折腾的事,虽然上次折腾成功过了,但是由于没有记录,导致这次折腾的时候又得重头开始。固然浪费了很多时间,所以这次决定写博客以记录一些过程及细节避免自己或别人在同样的事情上浪费时间和精力。

正文

我只是粗略的学习过一点GO语言知识,所以一开始也是直接使用作者编译的程序。后来实在是觉得程序自带的404页面不太好看,就开始了自己编译的路子。这次的折腾是因为作者对程序进行了更新,于是打算把正在“服役”的程序跟进作者进行更新。顺便配置好持续集成,以便下一次更新时自动的进行持续编译。
我使用的是Linux操作系统,需要以下操作。(在此略过GO的安装过程)

  1. 将项目中的依赖移动到$GOROOT/src目录下:
    mv vendor/* /usr/local/go/src
  1. 将项目(frp文件夹)复制到/usr/local/go/src/github.com/fatedier:
    cp -r frp /usr/local/go/src/github.com/fatedier
  1. 执行项目下的sh脚本进行编译:
    ./package.sh

或使用以下方法:

  1. /usr/local/go/src目录下建立github.com/fatedier文件夹 :
    mkdir -p /usr/local/go/src/github.com/fatedier
  1. 将项目复制到刚才新建的文件夹下:
    cp -r frp /usr/local/go/src/github.com/fatedier
  1. 切换到该目录:
    cd /usr/local/go/src/github.com/fatedier
  1. 执行sh脚本进行编译:
    ./package.sh

等待编译完成,编译后的文件处于 packages 文件夹中。

问题及解决

Go程序编译时的依赖问题:
编译器会在$GOPATH/src$GOROOT/src目录中查找项目引用的依赖,虽然Go语言可以在项目中的vendor文件夹下找寻依赖,但是仅限于项目处于$GOROOT/src目录下。

0

评论 (0)

取消