ubuntu20中安装gitlab

简介

网址:https://gitlab.cn/

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务。

Gitlab开放式一体化安全DevOps平台,集成了源代码管理,CI/CD,研发效能管理等,软件研发全生命周期的 DevOps能力.GitLab中国发行版,提供本土化技术支持服务。

安装

请使用root用户操作

sh 复制代码
sudo apt-get install curl openssh-server ca-certificates postfix

Tab切换到"确定"按钮,然后回车

Tab切换到"确定"按钮,然后回车

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

前往Gitlab官网:https://packages.gitlab.com/gitlab/gitlab-ce,找到最新版本的`gitlab-ce`[安装包](https://so.csdn.net/so/search?q=安装包&spm=1001.2101.3001.7020),注意版本是`ubuntu/focal`

下载

sh 复制代码
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_17.1.6-ce.0_amd64.deb/download.deb

安装

sh 复制代码
sudo dpkg -i gitlab-ce_17.1.6-ce.0_amd64.deb

运行完sudo dpkg后如果出现下面的界面就表示gitlab安装成功。

如果运行dpkg报openssh-server相关的错误,请先执行下面三个命令

sh 复制代码
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade
卸载
sh 复制代码
# 停止 GitLab 服务
sudo gitlab-ctl stop

# 卸载 GitLab CE
sudo dpkg -r gitlab-ce

#删除 GitLab 的配置和数据
sudo rm -rf /etc/gitlab
sudo rm -rf /var/opt/gitlab
sudo rm -rf /var/log/gitlab
配置Gitlab
sh 复制代码
sudo vim /etc/gitlab/gitlab.rb

如果运行上述命令出现权限问题,运行下列命令即可:chmod -R 755 /var/log/gitlab

指定ip和端口号

修改完毕保存退出

停止gitlab服务

sh 复制代码
sudo gitlab-ctl stop

启动gitlab服务 产生的日志比较多、启动时间比较长

sh 复制代码
sudo gitlab-ctl reconfigure

见到如下信息表明启动成功

重启所有gitlab组件

sh 复制代码
sudo gitlab-ctl restart

启动所有gitlab组件

sh 复制代码
sudo gitlab-ctl start

启用开机自启动

sh 复制代码
sudo systemctl enable gitlab-runsvdir.service
初始化root的密码

按照如下命令初始化管理员账户的密码

sh 复制代码
#切换路径
cd /opt/gitlab/bin/

#打开控制台
sudo gitlab-rails console -e production
 
#查询用户账号信息并赋值给u
u=User.where(id:1).first

#设置root的密码   密码中不能包含常用字符
u.password='elvis1234'

#确认密码
u.password_confirmation='elvis1234'

#保存信息(注意有个感叹号)
u.save!

#退出
exit
登录gitlab

接下来就可以通过http://192.168.150.139:8090来登录gitlab了。登录的地址是你之前设置external_url字段的值

允许注册

设置中文

点击侧边栏 → 头像 → 个性化设置

选择语言、每周的第一天,然后保存

刷新页面即可

Gitlab注册新用户

通过以下步骤来注册新用户:

退出当前用户

登录页面点击立即注册

填写基本信息,填完之后点击注册即可

注册之后会显示需要管理员批准,这样才算真正注册成功。

再次登录root账户,点击配置Gitlab:

查看最新的用户:

点击等待批准,然后批准该用户进入群组。

退出root,新用户登录

基本使用

创建群组

指定群组名字

注意可见等级的配置

  1. private 【 B组看不到A组的项目】
  2. internal
  3. public 【所有人都能看到你的项目并拉去代码】

通常情况都是private,将所有需要协同开发的人员拉入群组即可

点击创建群组即可

邀请团队成员

选择需要邀请的团队成功,然后点击邀请即可

可以在群组的设置中查看团队成员

团队成员列表如下

创建团队项目

在群组主页面点击新建项目

选择 创建空白项目

指定项目名、取消勾选使用自述文件初始化仓库,然后点击新建项目

创建成功如下

sshkey

搭建了一个自己的gitlab仓库,创建了一个私有仓库,拉取或上传代码到gitlab 私有仓库有两种方式,如git@192.168.xx.xx:root/xx.git和http://192.168.xx.xx/root/xx.git,即一种是通过https或http,一种是git的形式这种git形式其实就是使用了ssh协议,使用https或http上传代码是需要输入用户账号密码的,为了方便我们可以使用ssh协议做ssh免密上传,如下配置:

开发者电脑生成秘钥

sh 复制代码
ssh-keygen -t rsa -b 4096 -C 你的邮箱

执行指令时会让用户输入保存密钥的文件、密码、重复密码,直接回车就行

在执行 ssh-keygen 命令时,密码是指用于保护您的私钥的密码。当您生成 SSH 密钥时,可以选择为私钥设置密码,也可以选择不设置密码。

如果您选择设置密码,那么每次使用私钥进行身份验证时,都需要输入该密码。这样可以提供额外的安全性,因为即使他人获得了您的私钥,但仍需要知道密码才能使用它。

如果您选择不设置密码,私钥将不受密码保护,这意味着任何人可以在获得私钥后使用它进行身份验证。因此,为了安全起见,强烈建议为私钥设置密码。

设置密码或不设置密码主要取决于您对安全性和方便性的权衡。如果您非常关注安全性,建议设置密码。如果您在个人计算机上或安全环境中工作,并且不想每次都输入密码,可以选择不设置密码。

执行完成之后会在当前用户主文件中生成一个.ssh的文件,里面存放的就是刚才生成的密钥 注意:这两个文件别删

打开id_rsa.pub文件,复制里面的公钥

登录到gitlab,点击logo、头像、偏好设置

打开侧边栏,找到SSH密钥

点击添加新密钥

把密钥粘贴到密钥输入框中,点击添加密钥保存即可

添加成功如下所示

测试

克隆项目

进入项目主页,找到代码按钮,点击复制SSH克隆地址

cmd打开终端,进行克隆

错误处理

报错:E: The package gitlab-ce needs to be reinstalled, but I can't find an archive for it

解决方案:

sh 复制代码
vi /var/lib/dpkg/status

查找安装未成功的安装包,搜索关键字 "half" , 输入/half,回车,按n可查看下一个搜索到的关键字;

将安装包相关信息行删除,然后重新安装即可。

相关推荐
caimouse1 小时前
ReactOS 图形系统分析(3):显示驱动 DDI framebuf.dll
linux·运维·网络
TonyLee0172 小时前
Claude Code + DeepSeek:服务器安装与使用笔记
linux·服务器·deepseek·claude code
buhuizhiyuci2 小时前
【Linux 篇】数字世界的水流蓄水池 —— IO 缓冲区机制深度实战解析
linux·运维·服务器·c++
骇客野人2 小时前
Linux 服务器 Python 版 MCP 服务部署整体方案(适配 Claude/Cursor/自研Agent)
linux·服务器·python
天疆说3 小时前
04 稳定性与性能调优实录:OOM 崩溃、并发槽位、前缀缓存与 DSpark 调参
linux·运维·缓存
星卯教育tony3 小时前
NOI Linux 2.0 服务器多用户网页桌面部署方案(腾讯云轻量Ubuntu20.04专属版 CSP复赛比赛环境搭建免安装虚拟机 )
linux·服务器·腾讯云
Forever Nore4 小时前
LeetCode 14 最长公共前缀 - 纵向扫描
linux·服务器·leetcode
拂拉氏4 小时前
【知识讲解】 Linux权限相关知识讲解
linux·权限
Shadow(⊙o⊙)4 小时前
Linux网络部分——TCP协议服务端客户端交互接口,入门级硬核解析1.0
linux·网络·tcp/ip
桑榆4169 小时前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu