
1. 项目概述作为一名长期从事DevOps工作的工程师我经常需要在不同Linux发行版上部署GitLab。GitLab作为目前最流行的开源代码托管平台之一其安装过程看似简单但实际操作中会遇到各种系统依赖、网络环境和配置问题。本文将基于我在CentOS、Debian和Ubuntu系统上的实战经验详细讲解2026年最新版GitLab的安装方法。无论你是刚接触GitLab的新手还是需要快速搭建开发环境的老手这篇指南都能帮你避开我踩过的那些坑。我们将覆盖两种主流安装方式通过系统包管理器yum/apt安装和手动下载安装包安装最后还会讲解关键的初始化配置步骤。2. 系统环境准备与安装方式选择2.1 系统兼容性检查在开始安装前首先要确认你的系统版本是否支持GitLab。截至2026年GitLab官方支持以下系统版本CentOS/RHEL 7/8/9Ubuntu 20.04/22.04/24.04Debian 10/11/12注意虽然GitLab可能在其他版本上也能运行但官方不保证稳定性。生产环境强烈建议使用上述支持版本。检查系统版本命令# CentOS/RHEL cat /etc/redhat-release # Ubuntu lsb_release -a # Debian cat /etc/debian_version2.2 安装方式对比GitLab提供多种安装方式各有优缺点包管理器安装推荐优点自动处理依赖便于后续升级缺点需要配置软件源手动下载安装包优点适合离线环境缺点需要手动处理依赖Docker安装优点隔离性好缺点配置复杂性能开销对于大多数场景我推荐使用包管理器安装这也是本文重点介绍的方式。3. 通过包管理器安装GitLab3.1 CentOS/RHEL系统安装3.1.1 配置国内镜像源推荐国内用户建议使用清华源加速下载sudo tee /etc/yum.repos.d/gitlab-ce.repo -EOF [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck0 enabled1 EOF这个配置会创建一个新的yum源文件指定使用清华大学的镜像站点。$releasever变量会自动匹配你的CentOS主版本号。3.1.2 国际源安装方式如果你的服务器在国外可以直接使用GitLab官方源curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash3.1.3 安装GitLab社区版更新缓存并安装sudo yum clean all sudo yum makecache sudo yum -y install gitlab-ce注意yum makecache会重建yum缓存确保获取到最新的软件包信息。如果跳过这步可能会安装旧版本。3.2 Debian/Ubuntu系统安装3.2.1 配置国内镜像源根据你的Debian/Ubuntu版本选择对应的源# 查看系统代号 lsb_release -cs # 根据代号添加源 sudo tee /etc/apt/sources.list.d/gitlab-ce.list -EOF deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/debian $(lsb_release -cs) main EOF常见版本代号对应关系Debian 10: busterDebian 11: bullseyeUbuntu 20.04: focalUbuntu 22.04: jammy3.2.2 安装依赖和GitLab更新软件列表并安装必要依赖sudo apt update sudo apt -y install curl vim openssh-server ca-certificates如果使用国际源curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash最后安装GitLab社区版sudo apt-get install gitlab-ce4. 通过安装包手动安装GitLab4.1 下载正确的安装包首先确认系统架构uname -m常见架构x86_64大多数服务器aarch64ARM架构如树莓派访问GitLab官方仓库下载页面 https://packages.gitlab.com/gitlab/gitlab-ce选择对应系统版本和架构的安装包。例如CentOS: .rpm包Debian/Ubuntu: .deb包4.2 安装过程对于RPM包sudo rpm -ivh gitlab-ce-*.rpm对于DEB包sudo dpkg -i gitlab-ce-*.deb常见问题如果提示缺少依赖可以运行sudo apt --fix-broken install自动修复。5. 安装后配置5.1 重置root密码首次安装后需要重置管理员密码sudo gitlab-rails console在Ruby控制台中执行user User.where(id:1).first user.password 你的新密码至少8位 user.password_confirmation 你的新密码 user.save exit安全提示密码应该包含大小写字母、数字和特殊字符避免使用常见词汇。5.2 配置外部访问URL编辑GitLab主配置文件sudo vim /etc/gitlab/gitlab.rb找到并修改external_urlexternal_url http://你的域名或IP应用配置更改sudo gitlab-ctl reconfigure这个命令会重新生成所有配置文件并重启相关服务过程可能需要几分钟。5.3 防火墙配置如果系统启用了防火墙需要开放相应端口# CentOS/RHEL sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --permanent --add-servicehttps sudo firewall-cmd --reload # Ubuntu/Debian sudo ufw allow http sudo ufw allow https sudo ufw enable6. 常见问题与解决方案6.1 502错误如果访问GitLab出现502错误可能是内存不足。GitLab至少需要4GB内存才能正常运行。解决方法增加swap空间sudo dd if/dev/zero of/swapfile bs1G count4 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile修改配置减少资源占用sudo vim /etc/gitlab/gitlab.rb添加以下内容puma[worker_processes] 2 sidekiq[concurrency] 5然后重新配置sudo gitlab-ctl reconfigure6.2 邮件服务配置要启用邮件通知编辑配置文件sudo vim /etc/gitlab/gitlab.rb添加SMTP配置以Gmail为例gitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.gmail.com gitlab_rails[smtp_port] 587 gitlab_rails[smtp_user_name] yourgmail.com gitlab_rails[smtp_password] your-password gitlab_rails[smtp_domain] gmail.com gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true gitlab_rails[gitlab_email_from] yourgmail.com测试邮件配置sudo gitlab-rails console Notify.test_email(testexample.com, Test, Test body).deliver_now6.3 备份与恢复创建备份sudo gitlab-rake gitlab:backup:create备份文件默认存储在/var/opt/gitlab/backups目录。恢复备份sudo gitlab-rake gitlab:backup:restore BACKUP备份文件名7. 性能优化建议7.1 数据库调优对于PostgreSQL数据库可以调整以下参数postgresql[shared_buffers] 256MB postgresql[work_mem] 8MB postgresql[maintenance_work_mem] 64MB7.2 监控配置启用Prometheus监控prometheus[enable] true node_exporter[enable] true redis_exporter[enable] true postgres_exporter[enable] true7.3 定期维护设置每周自动清理gitlab_rails[housekeeping_enabled] true gitlab_rails[housekeeping_full_repack_period] 78. 升级GitLab小版本升级如16.0.0 → 16.0.1# CentOS/RHEL sudo yum update gitlab-ce # Debian/Ubuntu sudo apt update sudo apt install gitlab-ce大版本升级如15.0 → 16.0需要先检查升级路径sudo gitlab-rake gitlab:doctor:versions然后按照官方升级文档逐步升级。9. 安全加固建议9.1 定期更新# 设置自动安全更新 sudo yum install -y yum-cron sudo systemctl enable yum-cron sudo systemctl start yum-cron # 或对于Ubuntu sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades9.2 禁用注册功能编辑配置文件gitlab_rails[gitlab_signup_enabled] false9.3 配置HTTPS使用Lets Encrypt免费证书external_url https://your.domain.com letsencrypt[enable] true letsencrypt[contact_emails] [youremail.com]10. 多服务器部署建议对于高负载环境可以考虑将组件拆分到不同服务器应用服务器运行Puma和Workhorse数据库服务器PostgreSQLRedis服务器Gitaly服务器专门处理Git操作配置示例# 应用服务器 gitlab_rails[db_host] 数据库服务器IP gitlab_rails[redis_host] Redis服务器IP gitaly[enable] false # 数据库服务器 postgresql[enable] true redis[enable] false nginx[enable] false在实际部署中我发现配置国内镜像源能显著提高安装速度特别是在企业内网环境下。对于生产环境一定要提前规划好备份策略我曾经因为疏忽备份导致数据丢失的惨痛经历。