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可查看下一个搜索到的关键字;

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

相关推荐
csdn_aspnet2 小时前
Gemini实战:用AI写CI/CD脚本,分享Gemini辅助编写GitLab CI、GitHub Actions等运维脚本的硬核技巧
人工智能·ci/cd·ai·gitlab·gemini·辅助编程
快乐的划水a2 小时前
单片机仿Linux驱动开发(二)
linux·驱动开发·单片机
ken22322 小时前
中文文件名:find 与 git ls-files / ls-tree 的区别
linux·搜索引擎
buhuizhiyuci2 小时前
笑谈vim的快捷方式和简易配置
linux·编辑器·vim
minji...2 小时前
Linux 网络套接字编程(三)UDP服务器与客户端实现:Windows与Linux通信,新增字典翻译功能的 UDP 通信
linux·服务器·开发语言·网络·windows·算法·udp
嵌入式×边缘AI:打怪升级日志2 小时前
DHT11 驱动开发实录:从零搭建 Linux 字符设备驱动框架(保姆级教学)
linux·运维·驱动开发
艾莉丝努力练剑2 小时前
【Linux网络】计算机网络入门:网络通信——跨主机的进程间通信(IPC)与Socket编程入门
linux·运维·服务器·网络·c++·学习·计算机网络
炘爚2 小时前
Linux :进程间通信(IPC)与信号
linux·进程间通信
MuzySuntree2 小时前
Ubuntu 下 Maven 构建 Spring Boot 项目报错 release version 17 not supported 解决方案
spring boot·ubuntu·maven