为了便于以后使用,这里先给出 GitLab 使用中的常用命令。

  • 启动 GitLab 服务:gitlab-ctl start

  • 关闭 GitLab 服务:gitlab-ctl stop

  • 重启 GitLab 服务:gitlab-ctl restart

  • 操作系统内存查看:free -m


笔者的运行环境:

  • Linux:CentOS 8 x86_64

  • GitLab:gitlab-ee-14.3.6-ee.0.el8.x86_64

安装 Linux

  1. 目前,GitLab 不支持直接安装在 Windows 中,因此进行这个教程之前,必须要先安装好一个 Linux 操作系统。这个操作系统并不是可以随意选择的。GitLab 并不支持所有的操作系统,而且 GitLab 对不同操作系统的安装包是完全不同的。请安装 GitLab 所支持的操作系统,否则后面安装会遭遇各种问题,切记笔者踩坑无数的教训!

    查看 GitLab 支持哪些操作系统:https://docs.gitlab.com/ee/administration/package_information/supported_os.html

  2. 选择合适的 Linux 之后,这个 Linux 操作系统可以安装在虚拟机中,也可以安装在真实的电脑中。关于这方面的内容,可见笔者的其它博客:

    VMware Workstation Pro 16 安装教程:
    https://blog.csdn.net/wangpaiblog/article/details/112152218

    Linux 操作系统 CentOS Stream 安装教程:
    https://blog.csdn.net/wangpaiblog/article/details/119792728

    为了方便远程输入命令、将文件加入到 Linux 操作系统中,最好还要在一台 Windows 操作系统上面使用一种终端控制软件,如 Xshell、Xftp 等。关于这方面的内容,可见笔者的另一篇博客:

    如何在 Windows 主机上访问本地局域网中的 Linux 主机:
    https://blog.csdn.net/wangpaiblog/article/details/120052152

  3. 一般来说,安装一个软件有 3 种方法:离线安装、在线安装、免安装。通常,离线安装是最好的方法,同时也通常是笔者的首选,本文亦使用的是离线安装的方法。

    对于 Linux,离线安装的好处与坏处分别为:

    • 好处:除了第一次下载需要下载完整的安装包之外,之后每次安装都可无需联网。这样不仅节约了流量,而且无需担心未来安装包会失效。相对免安装,安装操作会在操作系统中注册该软件的信息,会安装时会自动执行某些操作,通常可以避免一些手动配置。
    • 坏处:离线安装无法自动安装依赖。如果所要安装的安装包依赖其它安装包,安装者需要自己手动下载完所有的依赖安装包。
  4. 由于 Linux 操作系统的种类繁多,因此首先要知道要安装 Linux 操作系统的处理器架构信息。以 CentOS 8 x86_64 为例,输入以下命令:

    cat /proc/version

    [root@localhost ~]# cat /proc/version
    Linux version 4.18.0-348.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-3) (GCC)) #1 SMP Tue Oct 19 15:14:17 UTC 2021
    

    可以看出,上述的关键信息为 x86_64。记住这一点,下面将会用上。

  5. Linux 的 PMS 工具主流有两种。

    对于基于 Red Hat 的发行版,其 PMS 工具为 rpm,对应的安装命令为 yum。

    对于基于 Debian 的发行版,其 PMS 工具为 dpkg,对应的安装命令为 aptitude。

    笔者的操作系统 CentOS 8 x86_64 属于 Red Hat,将使用后缀为 rpm 的安装包。如果读者使用的操作系统为 Ubuntu,需要选择后缀为 deb 的安装包。如果读者不知道如何分辨,可以输入以下命令来验证:

    yum

    [root@localhost xshell_win10]# yum
    [...一长串说明文字...]
    

    如果输入 yum 之后,出现了一大串的说明文字,说明应该使用后缀为 rpm 的安装包。如果提示 yum 命令不存在,说明应该使用后缀为 deb 的安装包。当然,读者也可以通过输入命令 aptitude 来进行进一步的验证。

下载 GitLab

  1. GitLab 有 CE 与 EE 两种版本,其中,CE 指的是 Community Edition(社区版) ,EE 指的是 Enterprise Edition(企业版)。显然,顾名思义,EE 是一种收费版。如果没有特殊的需求,选择哪个版本无关紧要。官方推荐安装 EE 版,给出的理由是,安装 EE 版本后,如果不想付费,可以不付费,只是会缺少相应的功能。但如果安装完 CE 版本后,又想安装 EE 版本,还需要重新安装(见 https://about.gitlab.com/install/ce-or-ee/)。这里,笔者安装的是 EE 版。毕竟,国内的环境良好,有很多途径可以让付费产品变成免费。

  2. 到官网中下载 GitLab,网址:https://packages.gitlab.com/gitlab/gitlab-ee


    【附】


  3. 注意,这里要根据前面查看的 Linux 系统的信息来下载对应的安装包。此处笔者应该选择带 x8664Linux 8 字样的安装包。

    再次提醒,安装包不要选错了,选择错误的安装包在安装后可能出现各种难解的问题。比方说,Centos Stream 与 Centos 不是同一种操作系统,而在笔者编写本教程的时候,GitLab 并没有为 Centos Stream 提供安装包,所以如果操作系统是 Centos Stream,那目前是不能安装 GitLab 的!

    在这里插入图片描述

    在这里插入图片描述

安装 GitLab

  1. 下载完成之后,可以使用 Xftp 将安装包置入 Linux 操作系统中。然后进行该安装包目录,输入以下命令进行安装:

    sudo yum localinstall gitlab-ee-14.3.6-ee.0.el8.x86_64.rpm

    (注意:虽然这是离线安装包,但安装时并非完全不需要网络。在初次安装时,操作系统可能会首先对软件仓库进行更新,此过程需要联网。)

  2. 设置 GitLab 网页客户端网址。网址应该由 IP 与端口号组成。IP 是 GitLab 所在的 Linux 服务器的 IP。端口号可任意想一个不会与已有的端口号相冲突的端口号。应在文件 gitlab.rb 中设置这个信息。文件 gitlab.rb 在目录 /etc/gitlab 中。修改文件 gitlab.rb 的方法有很多,可以直接用 Xftp 将打开此文件进行修改。

    在修改前,如果因为好奇等原因已经启动了 GitLab 服务,则需要使用如下命令关闭 GitLab 服务。

    gitlab-ctl stop

  3. 在文件 gitlab.rb 中的 external_url 一行上添加如下代码。如果没有 external_url 这一行,那就新加这一行。

    external_url 'http://ip地址:端口号'

    其中,ip地址端口号 要换成实际的值。

    在这里插入图片描述

  4. 在防火墙中对外开启此端口。

    firewall-cmd --zone=public --add-port=端口号/tcp --permanent

    firewall-cmd --reload

    其中,端口号 要换成上面设置的实际值。

  5. 设置 GitLab 的数据存放路径。此处如果不设置,则默认路径为 /var/opt/gitlab/git-data/。修改的方法是在文件 gitlab.rb 编写如下代码:(注意:在修改路径前,要将原 GitLab 的数据存放目录下的文件拷贝到新目录中。)

    git_data_dirs({
      "default" => {
        "path" => "自定义的 GitLab 仓库储存路径"
       }
    })
    

    其中,自定义的 GitLab 仓库储存路径 要改成实际的值。

  6. 使用如下命令使上面的配置生效。

    如果曾经多次反复卸载过 GitLab,而且没有卸载干净,则此过程很容易卡住。需要中断操作然后将 GitLab 卸载干净再来进行此操作。

    gitlab-ctl reconfigure

  7. 如果是第一次配置,则执行完上述命令之后,GitLab 服务会自动设置成开机启动且马上会启动。如果没有 GitLab 服务没有启动,也可以使用如下命令。

    gitlab-ctl start

登录 GitLab

  1. 现在到任一能访问到该 Linux 服务器的浏览器中输入如下网址,应该就可以访问 GitLab 网页端了。

    http://ip地址:端口号

    其中,ip地址端口号 要换成实际的值。

  2. 此时应该看到的是 GitLab 登录界面。在 GitLab 第一次初始化时,会自动生成一个管理员账户。其中,该账户的用户名为 root,密码在一个自动生成的文件 /etc/gitlab/initial_root_password 中(密码不会含空格),且会在 24 小时后自动被删除。

    现在要做的是,先备份上述的文件 initial_root_password,然后登录管理员账户修改管理员密码。新密码长度不能小于 8 位。

    在这里插入图片描述

    在这里插入图片描述

GitLab 汉化

  1. 如果更喜欢中文,GitLab 提供了中文界面,可按下图所示设置。设置完成之后,刷新界面即可生效。

    在这里插入图片描述


    【注意】

      有的人使用尝试对 GitLab 进行汉化(https://gitlab.com/xhang/gitlab)。建议不要这样做,此汉化有风险,如果操作不当有可能会破坏 GitLab 的程序,使之无法使用。此过程不可逆,请谨慎操作。


  2. 上面的登录界面还可以用于注册新用户。不过,新用户注册完成之后需要管理员审批。如果不需要审批功能,可以登录管理员账户将其关闭。

    在这里插入图片描述

GitLab 设置密钥

  1. 如果想要向 GitLab 上传推送文件,这需要向 GitLab 添加公钥,这方面的内容与 GitHub 等网站相同,可见笔者的另一篇博客:

    Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用:
    https://blog.csdn.net/wangpaiblog/article/details/121278972

卸载 GitLab

  1. 如果不小心破坏了 GitLab 的运行环境而又无法修复,这就需要重装 GitLab。在卸载前,注意要备份 GitLab 中仓库的数据文件。彻底卸载 GitLab 的流程如下。

  2. 停止 GitLab 服务。

    gitlab-ctl stop

  3. 卸载 GitLab。(卸载这种操作有风险,可能导致再次安装时永远失败,请三思后行)

    sudo yum erase gitlab*

    sudo rpm -e gitlab-ee

  4. 查看与 GitLab 相关的进程。

    ps aux | grep gitlab

  5. 根据 PID,杀死那个有很多省略号的进程。

    kill -9 进程 PID 号

    其中,进程 PID 号 要换成实际的值。

  6. 删除与 GitLab 相关的文件

    find / -name gitlab | xargs rm -rf

  7. 删除以下的 Linux 用户:(此操作可能有风险,谨慎使用)

    userdel -rf gitlab-www

    userdel -rf gitlab-redis

    userdel -rf gitlab-psql

    userdel -rf gitlab-prometheus

    userdel -rf git

  8. 卸载完重启 Linux。

    reboot

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐