在Linux系统中搭建Gitlab服务器可以实现私有代码仓库的部署,满足团队内部的代码管理、协作开发以及自动化构建等需求,整个搭建过程需要按照系统版本选择对应的安装方式,逐步完成环境准备、软件安装和服务配置。

搭建前的环境准备
首先需要确认Linux系统的版本和硬件资源,Gitlab对服务器配置有一定要求,建议至少分配4GB内存和2核CPU,磁盘空间根据代码仓库规模预留,通常建议不少于20GB。同时需要保证服务器可以正常访问网络,用于下载安装包和相关依赖。
如果是Ubuntu系统,需要先更新系统软件源,执行以下命令:
# 更新软件源 sudo apt update # 升级已安装的系统软件 sudo apt upgrade -y
如果是CentOS系统,同样先更新系统,执行命令:
# 更新系统 sudo yum update -y
安装Gitlab依赖组件
Ubuntu系统依赖安装
Ubuntu系统需要安装curl、openssh-server、ca-certificates等依赖组件,执行以下命令:
sudo apt install -y curl openssh-server ca-certificates tzdata
CentOS系统依赖安装
CentOS系统需要安装curl、policycoreutils、openssh-server等依赖,执行命令:
sudo yum install -y curl policycoreutils openssh-server openssh-clients # 启动ssh服务并设置开机自启 sudo systemctl enable sshd sudo systemctl start sshd
安装Gitlab软件包
Ubuntu系统安装Gitlab
首先添加Gitlab的官方软件源,然后安装Gitlab社区版,执行以下命令:
# 添加Gitlab软件源 curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list > /dev/null # 安装Gitlab社区版 sudo apt update sudo apt install -y gitlab-ce
CentOS系统安装Gitlab
CentOS系统需要先添加Gitlab的yum源,再安装软件包,执行命令:
# 添加Gitlab yum源 curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /etc/pki/rpm-gpg/gitlab-archive-keyring.gpg sudo curl -o /etc/yum.repos.d/gitlab_gitlab-ce.repo https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/el/$(rpm -E %rhel).repo # 安装Gitlab社区版 sudo yum install -y gitlab-ce
配置并启动Gitlab服务
安装完成后需要配置Gitlab的访问地址,打开配置文件/etc/gitlab/gitlab.rb,修改external_url参数,设置为服务器的访问地址,比如服务器IP是192.168.0.1,就设置为:
# 配置外部访问地址 external_url 'http://192.168.0.1'
修改完成后执行配置重载命令,让配置生效并启动服务:
# 重载配置并启动服务 sudo gitlab-ctl reconfigure
服务启动后可以通过sudo gitlab-ctl status命令查看各个组件的运行状态,所有组件显示run表示服务正常运行。
初始化Gitlab管理员账户
首次访问配置的地址会进入管理员密码设置页面,默认管理员账户是root,设置完成后就可以使用该账户登录系统。登录后建议先修改管理员密码,同时创建普通用户和项目,配置相应的权限。
如果忘记管理员密码,可以通过命令行重置,执行以下命令:
# 进入Gitlab控制台 sudo gitlab-rails console # 查找root用户 user = User.where(id: 1).first # 设置新密码 user.password = 'new_password_123' user.password_confirmation = 'new_password_123' # 保存修改 user.save! # 退出控制台 exit
常见问题处理
- 如果访问页面显示502错误,通常是内存不足导致,建议增加服务器内存或者关闭其他占用资源的服务。
- 如果修改配置后服务无法启动,可以查看日志文件,日志路径在
/var/log/gitlab/目录下,根据错误信息排查问题。 - 如果需要修改Gitlab的端口,可以在
gitlab.rb中配置nginx['listen_port']参数,然后重新执行gitlab-ctl reconfigure。