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

简单说明

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

gitbase 编译文件

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

rpm 项目准备

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

  • systemd service 文件
    gitbase.service
 
[Unit]
Description=gitbase for git
[Service]
Type=simple
User=root
Group=root
EnvironmentFile=-/etc/gitbase/gitbase
ExecStart=/usr/bin/gitbase-linux server $OPTIONS
Restart=always
LimitAS=infinity
LimitRSS=infinity
LimitCORE=infinity
LimitNOFILE=655360
[Install]
WantedBy=multi-user.target
 
 
  • 环境变量配置
    添加了几个默认的,自己可以调整 OPTIONS 为gitbase server 启动的参数
    gitbase
 
EXPERIMENTAL_IN_MEMORY_JOIN=on
MAX_MEMORY_INNER_JOIN=1024
INMEMORY_JOINS=on
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包
 
fpm -s dir -t rpm -n gitbase --rpm-os linux -v v0.24.0-rc2 \
  ./gitbase-linux=/usr/bin/ \
  ./gitcode=/var/lib/gitbase \
  ./gitbase.service=/usr/lib/systemd/system/gitbase.service \
  ./gitbase=/etc/gitbase/gitbase
  • 效果
fpm -s dir -t rpm -n gitbase --rpm-os linux -v v0.24.0-rc2 \
  ./gitbase-linux=/usr/bin/ \
  ./gitcode=/var/lib/gitbase \
  ./gitbase.service=/usr/lib/systemd/system/gitbase.service \
  ./gitbase=/etc/gitbase/gitbase
Package version 'v0.24.0-rc2' includes dashes, converting to underscores {:level=>:warn}
Created package {:path=>"gitbase-v0.24.0_rc2-1.x86_64.rpm"}

安装效果

  • yum install
yum install -y gitbase-v0.24.0_rc2-1.x86_64.rpm
  • 效果
yum install -y gitbase-v0.24.0_rc2-1.x86_64.rpm
已加载插件:fastestmirror
正在检查 gitbase-v0.24.0_rc2-1.x86_64.rpm: gitbase-v0.24.0_rc2-1.x86_64
gitbase-v0.24.0_rc2-1.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 gitbase.x86_64.0.v0.24.0_rc2-1 将被 安装
--> 解决依赖关系完成
依赖关系解决
===============================================================================================================
 Package 架构 版本 源 大小
===============================================================================================================
正在安装:
 gitbase x86_64 v0.24.0_rc2-1 /gitbase-v0.24.0_rc2-1.x86_64 43 M
事务概要
===============================================================================================================
安装 1 软件包
总计:43 M
安装大小:43 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装 : gitbase-v0.24.0_rc2-1.x86_64 1/1 
  验证中 : gitbase-v0.24.0_rc2-1.x86_64 1/1 
已安装:
  gitbase.x86_64 0:v0.24.0_rc2-1                                                                               
完毕!
  • systemd 启动
systemctl start gitbasee
  • 查看状态
systemctl status gitbase -l 
 
 systemctl status gitbase -l 
● gitbase.service - gitbase for git
   Loaded: loaded (/usr/lib/systemd/system/gitbase.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2019-10-29 21:02:10 CST; 3s ago
 Main PID: 13979 (gitbase-linux)
    Tasks: 6
   Memory: 15.0M
   CGroup: /system.slice/gitbase.service
           └─13979 /usr/bin/gitbase-linux server -p 3306 --host=0.0.0.0 -d /var/lib/gitbase
10月 29 21:02:10 iZ2zeg7uro1snhd9wqmp2oZ systemd[1]: Started gitbase for git.
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
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"
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. SAP SD 信用检查相关

    SAP系统信用管理功能的介绍:    R/3系统具有强大的信用管理功能.系统可将来自于FI.SD的财务及销售信息进行汇总, 提供即时的信用数据;并可依据信用政策对订单及发货进行管理,有效地降低风险;并 ...

  2. laravel5.4 orm with 用法

    在laravel orm 中一个with 关联方法,需要在模板中先定义表与表之间的关系 /*一对多的关系 */ public function hasManyTemplate(){ return $t ...

  3. RabbitMQ学习之Routing(4)

    上一节,是广播日志message到很多的receivers. 这节,我们讲订阅其中的一个子集.例如,我们想可以把危机的error message导到log file.而仍然可以打印所有的log mes ...

  4. YAML语言简明教程

    编程免不了要写配置文件,如果你还在用xml/ini/json,就有点过时了,怎么写配置也是一门学问. YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. 本文介绍 YAM ...

  5. JDBC 复习

    概念 Java DataBase Connectivity java数据库连接 定义了操作所有关系型数据库的规则(接口),不同的数据库厂商编写类实现这些接口,这些类就叫数据库驱动,使得用户只需要使用统 ...

  6. 2019-07-30 ThinkPHP文件上传

    文件上传就是获取到待上传文件的临时路径,把它移动到服务器下的相应文件夹中. 文件上传,必须在表单中的form标签中写入:enctype="multipart/form-data" ...

  7. Android ADB关闭Selinux ( adb shell setenforce 0 )

    adb shell setenforce 0 setenforce 0:设置SELinux 成为permissive模式 临时关闭selinux的 在eng/userdebug版本中使用setenfo ...

  8. linq自定义条件Lambda过滤方法

    Public Func<NoramalClass,bool>simpleComare<NormalClass>(string property,object value) { ...

  9. CDA数据分析【第二章:数据收集与导入】

    一.概述 数据是对我们所研究现象的属性和特征的具体描述,在分析数据前必须要做的工作就是收集数据.按照存储形式可以将数据划分为结构化数据.非结构化数据和半结构化数据. 1.结构化数据 能够用数据或统一的 ...

  10. NumPy 之 ndarray 多维数组初识

    why 回顾我的数据分析入门, 最开始时SPSS+EXCEL,正好15年初是上大一下的时候, 因为统计学的还蛮好的, SPSS傻瓜式操作,上手挺方便,可渐渐地发现,使用软件的最不好的地方是不够灵活, ...