发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名

[经验] 【NanoPi NEO2试用体验】【结项报告】打造自己的版本管理服务器

2017-7-1 15:49:33  1470
分享
0
    虽然是结项报告,但是只是对预计目标的一个结项,后面还会继续发帖进行其他的操作。



    项目的计划:由于有很多程序需要管理,公司、家里、外出,多处修改的程序需要拷来拷去,很容易造成文件不匹配,合并困难等问题。所以打算搭建一个版本管理的服务器,可以随时随地上传下载自己的程序,尤其是一些不愿意公开或不成熟的代码,便于同步。
    要实现这些功能,现在最流行的就是Git Server了。目前Git有多种管理工具可以直接拿来使用,包括一些国产的软件,比如我最看好的Gogs。
    为什么选择Gogs呢?
    首先一个很重要的原因是它采用go语言编写,编译后的可执行文件不需要其他任何的运行库来支持,直接拷贝就能运行,不用安装。而且go语言是编译类型的,执行效率很高。
    其次,gogs很符合我的操作习惯,它不仅支持工具或命令来实现文件的上传下载合并等,还可以在线编辑,或者在线选择文件上传。有时候在外面使用其他电脑没有安装工具的话,也可以直接对文件进行修改,和在线编辑器是一样的。
    最后还有一个主要的原因,它支持SQLite数据库。不想其它有的Git Server一样,必须要MySQL之类的数据库,又占空间又占内存,SQLite只是一个文件,很适合NanoPI NOE2这样的小内存用TF卡来跑系统的板子。当然,Gogs也支持多种数据库,我用不到罢了,毕竟只是我一个人在使用。

    之前提到过,Gogs虽然支持ARM系统,但是官方发布的二进制安装程序中却没有包括,只能自行用go语言来编译源代码生成可执行文件。
    和编译其他程序一样,首先要获取Gogs的源代码。已经搭建好了go语言的环境,这里可以直接用go get来获取。
goget.png
    找到一个合适的目录来运行go get -u -tags "sqlite" github.com/gogits/gogs
    为了支持SQLite数据库,这里一定要加上-tags "sqlite"这个参数。

    根据网速等待一段时间后,所有的代码下载完成,开始编译。
gobuild.png
    go build -tags "sqlite",还是要加上sqlite

    NanoPI NOE2虽然小,但是并不慢,过了几分钟就编译完了。编译后可以在GOPATH中找到gogs,把gogs整个目录拷贝出来,放到/srv下开始运行。
gogsweb.png
    执行的方法为./gogs web,有个web的参数,这样就能从网页访问了。
    gogs默认监听的端口是3000
instlall.png
    打开网页,第一次运行时可以配置一些参数,SQLite数据库要从这里选择。

setting.png
    其他的一些设置。这里需要注意一下,不知道是不是gogs的bug,gogs不能根据访问时输入的网址来提取出URL,也就不能自动判断出内网和外网的地址,所以在输入URL时要输入外网的IP地址或者域名,这样在显示git仓库时可以复制下来的地址就是外网的了,无论从内网还是外网访问都可以支持。

    最后加个用户当作管理员,然后保存,至此一个Gogs的Git Server就搭建完成了,赶紧体验一下。
first.png
    新的,没有任何东西,自己开始建仓库吧。

组织.png
仓库.png
协作者.png
    和github的操作方法一样,只是多了一个私有的选项。这个功能在github上可以收费的呦。

file.png
    红框部分显示的可复制的git地址就是刚才设置中输入的外网域名,只是起到这个作用。

gogsini.png
    来看一下真正保存各种参数的文件,找到/srv/gogs/custom/conf/app.ini文件并打开,各种参数都保存在这里,而且还有很多没有提供设置界面的参数,比如禁止注册新用户等。由于只是我一个人在使用,所以为了安全我禁止了注册,可以根据自己的要求来设置。

    虽然程序可以运行了,功能也都正常,但是它只是个程序,不会在系统启动时自动启动,尤其是在没有远程用户登录的情况下。所以还需要改变一下,让它可以开机自动启动。
    放到rc.local不是一个好方法,因为gogs提供了系统服务的启动脚本,当作服务来运行。
servicefile.png
BootService.png
    这个脚本位于/srv/gogs/scripts/systemd/gogs.service,把这个文件拷贝到/etc/systemd/system/目录下,然后运行service gogs start,这个命令只需要执行一次就可以了,以后每次开机都会自动运行gogs服务的。

    所有的工作都完成了,现在可以放心大胆的使用了,无论在哪里都非常的方便。经过这一段时间的时候,我已经建立了4、5个项目在上面,可以随时随地的上传下载。
    NanoPI NEO2搭建版本管理服务器项目完成。

倪love 2017-7-12 14:44:34
这样还是挺方便的啊
回复

举报

只有小组成员才能发言,加入小组>>

244个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表