原因:未正确添加GitLab官方仓库或镜像源,或系统包索引未更新。
解决方案:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt update
/etc/apt/sources.list.d/gitlab_gitlab-ce.list),将内容替换为:deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu $(lsb_release -cs) main
保存后再次运行sudo apt update并安装。原因:系统缺少必要依赖(如curl、openssh-server、ca-certificates),或依赖版本不兼容。
解决方案:
sudo apt install -y curl openssh-server ca-certificates tzdata perl
sudo apt -f install
该命令会自动修复损坏的依赖关系。原因:GitLab对内存要求较高(推荐至少4GB,最低2GB),系统内存不足会导致进程崩溃或502错误。
解决方案:
sudo fallocate -l 2G /swapfile  # 创建2GB交换文件(根据需求调整大小)
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
永久生效可添加以下行到/etc/fstab:/swapfile none swap sw 0 0
原因:GitLab的Nginx服务未正常启动、端口冲突(如80/443被占用),或内存不足。
解决方案:
sudo gitlab-ctl status
若nginx或puma服务未运行,重启服务:sudo gitlab-ctl restart
sudo netstat -tulnp | grep ':80\|:443'
若端口被占用,修改/etc/gitlab/gitlab.rb中的external_url(如改为http://your-ip:8080),然后重新配置:sudo gitlab-ctl reconfigure
原因:修改/etc/gitlab/gitlab.rb后未执行reconfigure命令,或配置语法错误。
解决方案:
external_url、时区)后,必须运行以下命令使配置生效:sudo gitlab-ctl reconfigure
sudo gitlab-ctl configtest
若有错误,根据提示修复后再重新配置。原因:Ubuntu系统防火墙(UFW)未开放GitLab所需的端口(80、443、22)。
解决方案:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
确保ALLOW行包含上述端口。原因:首次安装后未记录root用户的初始密码。
解决方案:
/etc/gitlab/initial_root_password文件中,可通过以下命令查看:cat /etc/gitlab/initial_root_password
密码有效期为24小时,过期后需通过GitLab控制台重置:sudo gitlab-rails console
在控制台中输入以下命令:user = User.where(id: 1).first
user.password = 'new_password'
user.password_confirmation = 'new_password'
user.save!
exit
替换new_password为新的root密码。原因:GitLab 16.x及以上版本需要GLIBC 2.38及以上版本,而Ubuntu 22.04及以下版本的GLIBC版本较低。
解决方案:
sudo apt install gitlab-ce=15.0.0-ce.0