安装 GitLab

在 Ubuntu 虚拟机上安装 GitLab 来进行代码管理是一个非常成熟且常用的方案。以下是安装 GitLab 社区版(CE,免费版)的详细图文步骤。

在开始之前,请确保你的虚拟机满足 GitLab 的基本要求(建议至少分配 4GB 内存 和 2个 CPU 核心,否则安装和运行过程可能会非常卡顿)。

第一步:更新系统并安装必要依赖

首先,打开虚拟机的终端(Terminal),更新系统的软件包列表,并安装 GitLab 所需的基础依赖项:

bash 复制代码
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

第二步:安装邮件服务(可选)

GitLab 需要一个邮件服务来发送注册、密码重置等通知邮件。如果你暂时不需要邮件通知,可以跳过这一步。通常我们使用 Postfix:

bash 复制代码
sudo apt-get install -y postfix

(注意:在安装 Postfix 的过程中,系统可能会弹出一个配置界面。选择 Internet Site,然后在下一页填写你的虚拟机的域名或 IP 地址即可。)

第三步:添加 GitLab 官方软件源

使用 curl 命令下载并运行 GitLab 提供的脚本,这会自动将 GitLab 的软件源添加到你的 Ubuntu 系统的包管理器中:

bash 复制代码
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

第四步:安装 GitLab

接下来正式安装 GitLab。在执行安装命令时,你需要设置 EXTERNAL_URL,这是你以后在浏览器中访问 GitLab 的地址。如果你没有域名,可以直接使用虚拟机的 IP 地址(例如 http://192.168.1.100)。

bash 复制代码
sudo EXTERNAL_URL="http://你的虚拟机IP或域名" apt-get install gitlab-ce

(注意:请将 http://你的虚拟机IP或域名 替换为你实际的 IP 地址。下载和安装过程可能需要几分钟到十几分钟,请耐心等待。)

第五步:获取初始密码并登录

安装完成后,终端会显示一个狐狸的图案,说明 GitLab 安装成功。

获取管理员密码: GitLab 会自动生成一个初始的管理员密码,并保存在一个临时文件中。使用以下命令查看密码:

bash 复制代码
sudo cat /etc/gitlab/initial_root_password

(请复制并保存 Password 后面那一长串字符。注意:这个文件会在 24 小时后自动删除。)

访问 Web 界面: 打开你电脑上的浏览器,输入你刚才配置的 EXTERNAL_URL(即你的虚拟机 IP)。

bash 复制代码
登录系统:

用户名: root

密码: 刚才获取的那一长串初始密码。

第六步:修改初始密码(重要)

为了安全起见,首次登录后请立即修改密码:

点击右上角的用户头像,选择 Edit profile (编辑个人资料)。

在左侧导航栏中选择 Password (密码)。

输入当前密码和新密码,点击 Save password 保存。

常用 GitLab 运维命令备忘录

在管理虚拟机时,可能会用到以下命令:

重新配置 GitLab (修改配置文件 /etc/gitlab/gitlab.rb 后必须执行):sudo gitlab-ctl reconfigure

启动 GitLab: sudo gitlab-ctl start

停止 GitLab: sudo gitlab-ctl stop

重启 GitLab: sudo gitlab-ctl restart

查看运行状态: sudo gitlab-ctl status

相关推荐
未济3 天前
linux 配置环境变量
linux
傲世仙尊3 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.3 天前
进程间通信
linux
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
Liuqy-053 天前
Linux IO编程——静态库、动态库
linux
此冬歌咏3 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK3 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid