gitbase 是一个很不错的代码分析工具,我们可以直接使用sql来分析团队的代码,以下是rpm 包的制作

简单说明

rpm 包的制作使用了fpm 一个简单,方便可以跨平台的软件包制作工具

gitbase 编译文件

以下二进制文件是自己编译的一个版本,修改了关于统计没人代码行数,默认文件64kb的问题,增加到了8M(实际不能太大)
参考:
https://github.com/rongfengliang/gitbase/releases

rpm 项目准备

说明,只添加了支持基于systemd 管理的系统

  • systemd service 文件
    gitbase.service
 
  1. [Unit]
  1. Description=gitbase for git
  1. [Service]
  1. Type=simple
  1. User=root
  1. Group=root
  1. EnvironmentFile=-/etc/gitbase/gitbase
  1. ExecStart=/usr/bin/gitbase-linux server $OPTIONS
  1. Restart=always
  1. LimitAS=infinity
  1. LimitRSS=infinity
  1. LimitCORE=infinity
  1. LimitNOFILE=655360
  1. [Install]
  1. WantedBy=multi-user.target
 
 
  • 环境变量配置
    添加了几个默认的,自己可以调整 OPTIONS 为gitbase server 启动的参数
    gitbase
 
  1. EXPERIMENTAL_IN_MEMORY_JOIN=on
  1. MAX_MEMORY_INNER_JOIN=1024
  1. INMEMORY_JOINS=on
  1. OPTIONS=" -p 3306 --host=0.0.0.0 -d /var/lib/gitbase "

配置说明
EXPERIMENTAL_IN_MEMORY_JOIN 以及MAX_MEMORY_INNER_JOIN 主要是加速的,使用基于内存的join 处理
加速运行,/var/lib/gitbase 为 git 代码存储的位置

  • fpm 生成rpm包
 
  1. fpm -s dir -t rpm -n gitbase --rpm-os linux -v v0.24.0-rc2 \
  1. ./gitbase-linux=/usr/bin/ \
  1. ./gitcode=/var/lib/gitbase \
  1. ./gitbase.service=/usr/lib/systemd/system/gitbase.service \
  1. ./gitbase=/etc/gitbase/gitbase
  • 效果
  1. fpm -s dir -t rpm -n gitbase --rpm-os linux -v v0.24.0-rc2 \
  1. ./gitbase-linux=/usr/bin/ \
  1. ./gitcode=/var/lib/gitbase \
  1. ./gitbase.service=/usr/lib/systemd/system/gitbase.service \
  1. ./gitbase=/etc/gitbase/gitbase
  1. Package version 'v0.24.0-rc2' includes dashes, converting to underscores {:level=>:warn}
  1. Created package {:path=>"gitbase-v0.24.0_rc2-1.x86_64.rpm"}

安装效果

  • yum install
  1. yum install -y gitbase-v0.24.0_rc2-1.x86_64.rpm
  • 效果
  1. yum install -y gitbase-v0.24.0_rc2-1.x86_64.rpm
  1. 已加载插件:fastestmirror
  1. 正在检查 gitbase-v0.24.0_rc2-1.x86_64.rpm: gitbase-v0.24.0_rc2-1.x86_64
  1. gitbase-v0.24.0_rc2-1.x86_64.rpm 将被安装
  1. 正在解决依赖关系
  1. --> 正在检查事务
  1. ---> 软件包 gitbase.x86_64.0.v0.24.0_rc2-1 将被 安装
  1. --> 解决依赖关系完成
  1. 依赖关系解决
  1. ===============================================================================================================
  1. Package 架构 版本 大小
  1. ===============================================================================================================
  1. 正在安装:
  1. gitbase x86_64 v0.24.0_rc2-1 /gitbase-v0.24.0_rc2-1.x86_64 43 M
  1. 事务概要
  1. ===============================================================================================================
  1. 安装 1 软件包
  1. 总计:43 M
  1. 安装大小:43 M
  1. Downloading packages:
  1. Running transaction check
  1. Running transaction test
  1. Transaction test succeeded
  1. Running transaction
  1. 正在安装 : gitbase-v0.24.0_rc2-1.x86_64 1/1
  1. 验证中 : gitbase-v0.24.0_rc2-1.x86_64 1/1
  1. 已安装:
  1. gitbase.x86_64 0:v0.24.0_rc2-1
  1. 完毕!
  • systemd 启动
  1. systemctl start gitbasee
  • 查看状态
  1. systemctl status gitbase -l
 
  1. systemctl status gitbase -l
  1. gitbase.service - gitbase for git
  1. Loaded: loaded (/usr/lib/systemd/system/gitbase.service; disabled; vendor preset: disabled)
  1. Active: active (running) since 2019-10-29 21:02:10 CST; 3s ago
  1. Main PID: 13979 (gitbase-linux)
  1. Tasks: 6
  1. Memory: 15.0M
  1. CGroup: /system.slice/gitbase.service
  1. └─13979 /usr/bin/gitbase-linux server -p 3306 --host=0.0.0.0 -d /var/lib/gitbase
  1. 10 29 21:02:10 iZ2zeg7uro1snhd9wqmp2oZ systemd[1]: Started gitbase for git.
  1. 10 29 21:02:10 iZ2zeg7uro1snhd9wqmp2oZ gitbase-linux[13979]: time="2019-10-29T21:02:10+08:00" level=error msg="could not find repositories, assuming non bare format" path=/var/lib/gitbase
  1. 10 29 21:02:10 iZ2zeg7uro1snhd9wqmp2oZ gitbase-linux[13979]: time="2019-10-29T21:02:10+08:00" level=info msg="squash tables rule is enabled"
  1. 10 29 21:02:10 iZ2zeg7uro1snhd9wqmp2oZ gitbase-linux[13979]: time="2019-10-29T21:02:10+08:00" level=info msg="server started and listening on 0.0.0.0:3306"

说明

关于fpm 安装的链接 https://www.cnblogs.com/rongfengliang/p/10674023.html

参考资料

https://github.com/rongfengliang/gitbase-rpm
https://github.com/rongfengliang/gitbase
https://www.cnblogs.com/rongfengliang/p/10674023.html

gtibase rpm包制作的更多相关文章

  1. php-7.1.0 rpm包制作

    nginx-1.8.0 rpm包制作见上篇文章:http://www.cnblogs.com/xiaoming279/p/6251149.html spec文件 Name: php Version: ...

  2. RPM包制作教程

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  3. rpm包制作(待实验)

    作者:firefoxbug 时间:July 18, 2014 rpm包命名规范 对于rpm包的命名符合如下规范. %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm N ...

  4. RPM包制作方法

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  5. rpm包制作介绍

    RPM(Rpm Package Management)在ReadHat等发行版下被用作软件包管理程序,其将某个软件相关的文件置入一个.rpm包中,用rpm命令,我们可以方便地完成Linux下软件安装. ...

  6. nginx-1.8.0 rpm包制作

    1.安装rpm-build # yum install rpm-build 2.创建制作RPM包目录 # cat /root/.rpmmacros %_topdir /root/rpmbuild %_ ...

  7. 实战RPM包制作

    在开发中经常会用到一些rpm包,但是一直没有自己手动制作过.今天在制作的时候意外地还解决了自己以前一直困惑的问题,就是怎么制作rpm debuginfo包,类似CentOS官网那样的debuginfo ...

  8. RPM包制作过程(一)

    本机环境:centos7,64位 1. 首先安装工具,rpmbuild可能在rpmdevtools里已经包含 #yum install rpm-devel.x86_64 #yum install rp ...

  9. 简单介绍RPM包制作方法

    RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.使用r ...

随机推荐

  1. JDK9对集合添加的优化

    JDK9对集合添加的优化 JDK9的新特性: list接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素 static <E> List<E&g ...

  2. WPF矢量字体图标(iconfont)

    原文:WPF矢量字体图标(iconfont) 转载:点击打开链接 步骤: 一.下载添加iconfont文件 二.添加到资源文件夹,并设置不复制,且为资源文件 三.增加FIcon.xaml文件 < ...

  3. jsp,servlet文件上传问题完善

    1. 上传文件时文件名中文乱码 upload.setHeaderEncoding("utf-8"); 有个疑惑: 不管设置不设置都不乱码,但是刘帅龙老师讲的时候出现了乱码 . 2. ...

  4. C# 获取系统SysWOW64的方法

    string path = Environment.GetFolderPath(Environment.SpecialFolder.SystemX86); 64位系统获取的SysWOW64 ,32位获 ...

  5. 使用node+vue实现简单的WebSocket聊天功能

    最近学习了一下websocket的即时通信,感觉非常的强大,这里我用node启动了一个服务进行websocket链接,然后再vue的view里面进行了链接,进行通信,废话不多说,直接上代码吧, 首先, ...

  6. jackson 学习资料

    源代码托管地址 https://github.com/FasterXML/jackson https://github.com/FasterXML/jackson-docs http://www.st ...

  7. SpringCloud高并发性能优化

    1. SpringCloud高并发性能优化 1.1. 前言 当系统的用户量上来,每秒QPS上千后,可能就会导致系统的各种卡顿,超时等情况,这时优化操作不可避免 1.2. 优化步骤 第一步:优化大SQL ...

  8. 如何将一个div盒子水平垂直都居中?

    html代码如下: 固定样式: 方法一:利用定位(常用方法,推荐) .parent{ position:relative; } .child{ position:absolute; top:50%; ...

  9. Golang: 创建Web服务

    使用 Go 语言,我们可以轻松创建出 Web 服务,这一点比 Node.js 还要简单,今天就来总结一下 Go 语言中 Web 服务的创建方式. 首先,我们需要引入 net/http 这个包来处理 H ...

  10. Linux service进程管理

    Linux进程基本介绍: 1)在Linux中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个ID号. 2)每一个进程,都对应一个父进程,而这个父进程可以复制多个子进程.例如www服务器. ...