CentOS搭建gitblit

CentOS搭建gitblit

gitblit项目地址

gitblit博客地址

下载

下载地址

  1. 下载 gitblit-1.9.1.tar.gz (当前最新版本)
  2. 传送至CentOS系统中

解压

解压命令参考

gzip

  • 压缩后的格式为:*.gz
  • 这种压缩方式不能保存原文件;且不能压缩目录
  • 命令举例:
1
2
3
4
5
6
7
8
#压缩
[root@localhost tmp]# gzip buodo
[root@localhost tmp]# ls
buodo.gz
#解压
[root@localhost tmp]# gunzip buodo.gz
[root@localhost tmp]# ls
buodo12345678

tar

  • 命令选项:
1
2
3
4
5
6
-z(gzip)      用gzip来压缩/解压缩文件
-j(bzip2) 用bzip2来压缩/解压缩文件
-v(verbose) 详细报告tar处理的文件信息
-c(create) 创建新的档案文件
-x(extract) 解压缩文件或目录
-f(file) 使用档案文件或设备,这个选项通常是必选的。123456
  • 命令举例:
1
2
3
4
5
6
7
#压缩
[root@localhost tmp]# tar -zvcf buodo.tar.gz buodo
[root@localhost tmp]# tar -jvcf buodo.tar.bz2 buodo

#解压
[root@localhost tmp]# tar -zvxf buodo.tar.gz
[root@localhost tmp]# tar -jvxf buodo.tar.bz21234567

在这里, 文件名为 gitblit-1.9.1.tar.gz

解压参数为:

  1. 解压 -> x
  2. gz -> z
  3. 详细输出 -> v, 此选项可有可无
  4. 指定 gitblit-1.9.1.tar.gz 文件 -> f

解压命令为

1
2
3
4
5
6
tar -zxvf gitblit-1.9.1.tar.gz

# 或者手动分两次解压
gunzip gitblit-1.9.1.tar.gz #会删除gitblit-1.9.1.tar.gz, 并生成gitblit-1.9.1.tar
tar -xvf gitblit-1.9.1.tar

关于 gzip / gunzip

从下面信息可知, gzip比gunzip大, 再观察两者的帮助信息, 完全一样.

结论: gzip 包含 gunzip, gunzip 相当于 gzip -d (即gunzip只有解压缩没有压缩功能)

[root@localhost gitblit]# ls -l /usr/bin/gunzip
-rwxr-xr-x. 1 root root 2253 4月 11 2018 /usr/bin/gunzip
[root@localhost gitblit]# ls -l /usr/bin/gzip
-rwxr-xr-x. 1 root root 100800 4月 11 2018 /usr/bin/gzip

gzip/gunzip帮助信息, 通过对比, 一模一样

Usage: gzip [OPTION]… [FILE]…
Compress or uncompress FILEs (by default, compress FILES in-place).

Mandatory arguments to long options are mandatory for short options too.

-c, –stdout write on standard output, keep original files unchanged
-d, –decompress decompress
-f, –force force overwrite of output file and compress links
-h, –help give this help
-l, –list list compressed file contents
-L, –license display software license
-n, –no-name do not save or restore the original name and time stamp
-N, –name save or restore the original name and time stamp
-q, –quiet suppress all warnings
-r, –recursive operate recursively on directories
-S, –suffix=SUF use suffix SUF on compressed files
-t, –test test compressed file integrity
-v, –verbose verbose mode
-V, –version display version number
-1, –fast compress faster
-9, –best compress better
–rsyncable Make rsync-friendly archive

With no FILE, or when FILE is -, read standard input.

Report bugs to bug-gzip@gnu.org.

安装

进入文件夹, 查看文件

[root@localhost ~]# cd gitblit-1.9.1
[root@localhost gitblit-1.9.1]# ll
总用量 3712
-rwxr-xr-x. 1 root root 984 4月 5 2020 add-indexed-branch.sh
-rwxr-xr-x. 1 root root 98 4月 5 2020 authority.sh
drwxr-xr-x. 6 root root 153 11月 21 14:35 data
drwxr-xr-x. 5 root root 4096 11月 21 14:35 docs
drwxr-xr-x. 2 root root 4096 11月 21 14:35 ext
-rw-r–r–. 1 root root 3717404 4月 5 2020 gitblit.jar
-rwxr-xr-x. 1 root root 85 4月 5 2020 gitblit.sh
-rwxr-xr-x. 1 root root 92 4月 5 2020 gitblit-stop.sh
-rwxr-xr-x. 1 root root 87 4月 5 2020 install-service-centos.sh
-rwxr-xr-x. 1 root root 1312 4月 5 2020 install-service-fedora.sh
-rwxr-xr-x. 1 root root 92 4月 5 2020 install-service-ubuntu.sh
-rwxr-xr-x. 1 root root 997 4月 5 2020 java-proxy-config.sh
-rw-r–r–. 1 root root 11556 4月 5 2020 LICENSE
-rwxr-xr-x. 1 root root 601 4月 5 2020 migrate-tickets.sh
-rw-r–r–. 1 root root 12237 4月 5 2020 NOTICE
-rwxr-xr-x. 1 root root 640 4月 5 2020 reindex-tickets.sh
-rwxr-xr-x. 1 root root 1319 4月 5 2020 service-centos.sh
-rwxr-xr-x. 1 root root 1543 4月 5 2020 service-ubuntu.sh
[root@localhost gitblit-1.9.1]#

查看系统型号

[root@localhost gitblit-1.9.1]# cat /etc/os-release
NAME=”CentOS Linux”
VERSION=”7 (Core)”
ID=”centos”
ID_LIKE=”rhel fedora”
VERSION_ID=”7”
PRETTY_NAME=”CentOS Linux 7 (Core)”
ANSI_COLOR=”0;31”
CPE_NAME=”cpe:/o:centos:centos:7”
HOME_URL=”https://www.centos.org/"
BUG_REPORT_URL=”https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT=”CentOS-7”
CENTOS_MANTISBT_PROJECT_VERSION=”7”
REDHAT_SUPPORT_PRODUCT=”centos”
REDHAT_SUPPORT_PRODUCT_VERSION=”7”

由于 NAME=”CentOS Linux”, 则使用以下命令安装

1
./install-service-centos.sh

运行服务

1
./service-centos.sh

关于依赖

gitblit依赖java

查找可用 Java/JDK

[root@localhost gitblit-1.9.1]# yum search openjdk
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirrors.huaweicloud.com

  • epel: hkg.mirror.rackspace.com

  • extras: mirrors.huaweicloud.com

  • updates: mirrors.huaweicloud.com
    ======================================================================= N/S matched: openjdk =======================================================================
    java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
    java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
    java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
    java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
    java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
    java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
    java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
    java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
    java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
    java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
    java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
    java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
    java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
    java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
    java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
    java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
    java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
    java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
    java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
    java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
    java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
    java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
    java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
    java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
    java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
    java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
    java-11-openjdk.i686 : OpenJDK Runtime Environment 11
    java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
    java-11-openjdk-demo.i686 : OpenJDK Demos 11
    java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
    java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
    java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
    java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
    java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
    java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
    java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
    java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a single archive
    java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
    java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
    java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
    java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
    java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
    java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
    java-11-openjdk-static-libs.x86_64 : OpenJDK libraries for static linking 11
    java-latest-openjdk.x86_64 : OpenJDK Runtime Environment 14
    java-latest-openjdk-debug.x86_64 : OpenJDK Runtime Environment 14 with full debug on
    java-latest-openjdk-demo.x86_64 : OpenJDK Demos 14
    java-latest-openjdk-demo-debug.x86_64 : OpenJDK Demos 14 with full debug on
    java-latest-openjdk-devel.x86_64 : OpenJDK Development Environment 14
    java-latest-openjdk-devel-debug.x86_64 : OpenJDK Development Environment 14 with full debug on
    java-latest-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 14
    java-latest-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
    java-latest-openjdk-javadoc.x86_64 : OpenJDK 14 API documentation
    java-latest-openjdk-javadoc-zip.x86_64 : OpenJDK 14 API documentation compressed in a single archive
    java-latest-openjdk-jmods.x86_64 : JMods for OpenJDK 14
    java-latest-openjdk-jmods-debug.x86_64 : JMods for OpenJDK 14 with full debug on
    java-latest-openjdk-src.x86_64 : OpenJDK Source Bundle 14
    java-latest-openjdk-src-debug.x86_64 : OpenJDK Source Bundle 14 for packages with debug on
    icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
    openprops.noarch : An improved java.util.Properties from OpenJDK

    名称和简介匹配 only,使用“search all”试试。

选择一个安装

[root@localhost gitblit-1.9.1]# yum install java-latest-openjdk.x86_64

关于yum源

速度慢可以切换一下

CentOS配置参考

针对CentOS7配置步骤

  1. 备份

    1
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

    1
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. 运行 yum makecache 生成缓存

  4. 其他

    • 非阿里云ECS用户会出现 Couldn’t resolve host ‘mirrors.cloud.aliyuncs.com’ 信息,不影响使用。用户也可自行修改相关配置: eg:

      1
      sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
  5. 我把其他全部禁用(就是添加后缀 .backup), 好快

关于一些问题

报错 - /opt/gitblit/java-proxy-config.sh: 没有那个文件或目录

正常情况应该完事了. 但是gitblit提供的服务安装思路与正常的不同.

  • 运行 systemctl start gitblit 启动服务后, 进行访问, 却发现无法访问
  • 使用 systemctl status gitblit 查看服务状态会发现如下错误

./service-centos.sh:行13: /opt/gitblit/java-proxy-config.sh: 没有那个文件或目录
Usage: /etc/init.d/gitblit {start|stop|restart|force-reload}

其实这个问题很简单, gitblit官方在脚本中将gitblit的安装路径写死了, 作为默认.

GITBLIT_PATH=/opt/gitblit
GITBLIT_BASE_FOLDER=/opt/gitblit/data

解决方法就是将 gitblit 放到默认的 /opt/gitblit 中, 或者 修改默认路径.

这一点官方脚本中也有说明

change theses values (default values)
GITBLIT_PATH=/opt/gitblit
GITBLIT_BASE_FOLDER=/opt/gitblit/data
GITBLIT_HTTP_PORT=0
GITBLIT_HTTPS_PORT=8443
GITBLIT_LOG=/var/log/gitblit.log

1
2
3
4
5
6
# 停止服务
systemctl stop gitblit
# 修改后重新安装
./install-service-centos.sh
# 重新加载服务, 使修改得以生效
systemctl daemon-reload

再或者修改脚本, install-service-centos.sh 示例如下:

1
2
3
4
5
#!/bin/bash
sed -i 's@^GITBLIT_PATH=.*$@GITBLIT_PATH='`pwd`'@g' service-centos.sh
sed -i 's@^GITBLIT_BASE_FOLDER=.*$@GITBLIT_BASE_FOLDER='`pwd`'/data@g' service-centos.sh
sudo cp service-centos.sh /etc/init.d/gitblit
sudo chkconfig --add gitblit

服务的启动

gitblit目录里有一个 service-centos.sh 文件, 这个 不是启动服务的脚本(命令), 正确的姿势因该是

1
systemctl start gitblit

设置开机自启

1
systemctl enable gitblit

最后附上 官方安装教程