Linux环境下编译Grafana汉化和打包

  • Grafana汉化和打包
  • 准备工作
  • 编译过程
  • 注意事项
  • 打包过程
  • 安装事项


Grafana汉化和打包

说明:目前实现汉化的方案很笨拙,需要对源码里的模板文件,以及js里用的显示数据进行一一汉化。所以在这里记录一下汉化以及编译安装的过程。

准备工作

  1. 环境准备:go语言环境,node环境,git,这些环境安装就不再赘述
  2. 构建后端:把grafana源码down下来之后在grafana项目这个目录下执行
    go run build.go setup
    go run build.go build
  3. 构建前端
    npm install -g yarn
    yarn install --pure-lockfile
    yarn build
  4. 在这里注意运行yarn install –pure-lockfile的时候可能会报如下错误;
  5. 原因是虚拟机里没有安装bzip2所以下载的文件解压不了,所以执行如下命令;
    yum install bzip2
  6. 运行Grafana:
    ./bin/grafana-server
    输入localhost:3000就能看见grafana登录界面

编译过程

  1. grafana的模板资源主要是在源码的public下,修改相应的html文件以及js文件就可以汉化
  2. 根据替换目标全局搜索,替换之后需要编译一下确保编译成功无报错。
    Yarn buid
    编译无报错如下
  3. 将编译后的目录同步
    /bin/cp -rp /usr/share/grafana/
    Systemctl restart grafana-server

注意事项

  1. 有些改的地方在pkg下面,比如侧边栏,这些改完之后需要重新构建后端
    go run build.go build
  2. 将/bin/linux_amd64/grafana-server替换到/usr/sbin/grafana-server,然后重复上述编译过程

打包过程

说明:打包过程分为3部分,打包环境安装,解压官方rpm包获取spec文件和源文件。以源文件模板进行替换。

  1. 打包环境安装(目录结果如下)
    yum install epel-release centos-release –y
    yum install rpm-build rpmrebuild rpm cpio
  2. 对grafana页面二次开发_源文件

  3. 解压官方rpm包获取spec文件
    先获取官方grafana-7.5.6-1.rpm的包(任何目录下)
    wget https://dl.grafana.com/oss/release/grafana-7.5.6-1.x86_64.rpm
  4. 获取spec文件
    rpmrebuild -e -p --notest-install grafana-7.5.6-1.x86_64.rpm
    这时会打开到该rpm包的spec文件为一个临时文件,用vim打开的,使用vim的另存为功能(shift键+“:”,输入w (空格)文件名),当前目录就会保存一个spec文件,修改%files部分为如下(因为执行构建前后端时会生成动态的JS文件,且名字随机,获取到的原spec文件%files部分指定文件名写死了,不更改执行打包会报部分文件找不到),将spec文件移动至SPECS下。
  5. 对grafana页面二次开发_编译过程_02

  6. 获取rpm中的源文件
    在获取spec文件时的目录下执行,会生成etc,usr这两个文件夹
    rpm2cpio grafana-7.5.6-1.x86_64.rpm | cpio -div
    在BUILDROOT目录下创建文件夹grafana-7.5.6-1.x86_64,将上述etc,usr移动至此
    修改/usr/lib/system/system/grafana-server.service,去掉如下行。
  7. 对grafana页面二次开发_python_03

  8. 将修改过后的grafana文件夹替换usr/share/grafana
    将修改过后的grafana文件夹下的/bin/grafana-server替换 usr/share/grafana/sbin/下的grafana-server
    rpmbuild重新构建rpm包
    rpmbuild –bb grafana-7.5.6-1.sepc

安装事项

  1. 执行rpm –ivh grafana-7.5.6-1.x86_64.rpm
  2. /bin/systemctl daemon-reload
  3. /bin/systemctl enable grafana-server.service
  4. /bin/systemctl start grafana-server.service