在Git出现之前,分布式版本控制从来都不是一件容易的事。Git是一种免费的开源软件,旨在轻松快速地管理小型到大型项目。Git最初由LinusTorvalds开发,他也是著名的Linux内核的创建者。GitLab是Git和分布式版本控制系统领域中一款出色的新产品。它是一个基于Web的Git仓库管理应用,包括代码审查、wiki、问题跟踪等诸多功能。使用GitLab轻松快速地创建、审查、部署和托管代码。虽然它在其官方服务器上提供了一个类似于Github的免费托管代码仓库,但它也可以运行在我们自己的服务器上。GitLab有两个不同的版本:社区版和企业版。社区版完全免费开源,遵循MIT许可;而企业版遵循专有许可,包括一些社区版中没有的功能。下面是关于如何在我们自己运行Ubuntu、Fedora或Debian操作系统的机器上安装GitLab社区版的简单步骤。 1。安装前提 首先,我们需要安装GitLab所依赖的包。我们将安装curl,以下载我们需要的文件;openssh-server,通过ssh协议登录我们的机器;ca-certificates,添加CA证书;和postfix,把它当作AnMTA(MailTransferAgent,邮件传输代理)来使用。 注意:要安装GitLabCommunityEdition,我们需要一台至少有2GB内存和2核CPU的linux机器。 在Ubuntu14.04/Debian8.x中 由于这些依赖包都可以在Ubuntu14.04和Debian8.x的官方软件仓库中获取,所以我们只需要使用apt-get包管理器安装即可他们。为此,我们需要在终端或控制台中执行以下命令:#apt-getinstallcurlopenssh-serverca-certificatespostfix 在Fedora22中安装依赖项gitlabubuntudebian 在Fedora22中,由于yum已被弃用,默认的包管理器是dnf。要安装上面所需的包,我们只需运行以下dnf命令:#dnfinstallcurlopenssh-serverpostfix installdependenciesgitlabfedora 2.打开并启动服务 现在,我们将使用默认的初始化系统打开sshd和postfix服务。我们会让它们在每次系统启动时自动启用。 在Ubuntu14.04 由于Ubuntu14.04安装了SysVinitinit系统,我们将使用服务命令启动sshd和postfix守护进程:#servicesshdstart #servicepostfixstart 现在,启用它们To在每次启动时自动启用,我们需要运行以下update-rc.d命令:#update-rc.dsshdenable #update-rc.dpostfixenable inFedora22/Debian8.x SinceFedora22和Debian8.x已经用Systemd取代了SysVinit作为默认的init系统,我们只需要运行以下命令来启动sshd和postfix服务:#systemctlstartsshdpostfix 现在,为了让它们在每次启动时自动运行,我们需要运行以下systemctl命令:#systemctlenablesshdpostfixCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/sshd.serviceto/usr/lib/systemd/system/sshd.service.Createdsymlinkfrom/etc/systemd/system/multi-user.target.wants/postfix.serviceto/usr/lib/systemd/system/postfix.service. 3.下载GitLab 现在,我们将使用curl从官方GitLab社区版存储库下载二进制安装程序。首先,我们需要浏览到存储库的页面以获得所需文件的下载链接。为此,我们需要在运行相应操作系统的Linux机器上运行以下命令。 在Ubuntu14.04 由于Ubuntu和Debian使用相同的debian格式安装包,所以我们需要在https://packages.gitlab.com/gitlab/gitlab-ce?filter=debsGitLab下搜索需要的版本,然后单击标记为ubuntu/trusty的链接,这是我们正在运行的Ubuntu14.04。然后会出现一个新的页面,我们会看到一个下载按钮,然后我们右键单击它,获取文件的链接,然后使用curl下载它,如下所示。#curlhttps://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_8.1.2-ce.0_amd64.deb 在Debian8.x中下载GitlabUbuntu 与Ubuntu类似,我们需要在https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs页面搜索需要的GitLab版本,然后点击带有debian/jessie标签的链接,即是,我们运行Debian8.x。然后,会出现一个新的页面,然后我们在下载按钮上右击,得到文件的下载链接。***,我们像下面这样使用curl下载文件。#curlhttps://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_8.1.2-ce.0_amd64.deb/download 在Fedora22中下载GitlabDebian 因为Fedora使用rpm文件作为软件包,所以我们会在https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms页面下搜索需要的GitLab版本,然后点击需要的发布包链接,在这里,因为我们运行的是Fedora22,所以我们将选择带有el/7标签的发行版。将出现一个新页面,我们可以在其中看到一个下载按钮,我们将右键单击它,获取所需文件的链接并使用curl下载它,如下所示。#curlhttps://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm/download 下载GitlabFedora 4.安装GitLab 将相应的软件源添加到我们的Linux机器后,我们现在将使用相应Linux发行版中的默认包管理器安装GitLab社区版。 在Ubuntu14.04/Debian8.x中 要在运行Ubuntu14.04或Debian8.xLinux发行版的机器上安装GitLab社区版,我们只需运行以下命令:#dpkg-igitlab-ce_8.1.2-ce.0_amd64.deb 在Fedora22上安装GitlabUbuntuDebian 我们只需要执行下面的dnf命令就可以在我们的Fedora22机器上安装GitLab。#dnfinstallgitlab-ce-8.1.2-ce.0.el7.x86_64.rpm 安装GitlabFedora 5。配置并启动GitLab GitLabCommunityEdition已经成功安装到我们的Linux系统中,下面我们来配置并启用它。为此,我们需要运行以下命令,该命令在Ubuntu、Debian和Fedora发行版上的作用相同:#gitlab-ctlreconfigure ReconfiguringGitlab 6.允许通过防火墙 如果在我们的Linux机器上防火墙程序已经在中启用,为了让GitLab社区版的web界面可以通过网络访问,我们需要让80端口通过防火墙,这是GitLab社区版的默认端口。为此,我们需要运行以下命令。 iniptables Ubuntu14.04默认安装使用iptables。因此,我们将运行以下iptables命令打开80端口:#iptables-AINPUT-ptcp-mtcp--dport80-jACCEPT #/etc/init.d/iptablessave infirewalld 由于Fedora22和Debian8.x默认安装了systemd,其中包括firewalld作为防火墙程序。为了让80端口(http服务)能够通过firewalld,我们需要执行以下命令。#firewall-cmd--permanent--add-service=httpssuccess#firewall-cmd--reloadsuccess 7.访问GitLab网页界面 ***,我们将访问GitLabCommunityEditionWeb界面。为此,我们需要将Web浏览器指向GitLab服务器的URL,其形式可能是http://ip-address/或http://domain.com/,具体取决于我们的配置。成功指向URL后,我们将看到如下页面。 Gitlab登录屏幕 现在,为了登录面板,我们需要单击“登录”按钮,这将询问我们的用户名和密码。然后我们将输入默认用户名和密码root和5iveL!fe。登录控制面板后,我们将被迫为我们的GitLabroot用户输入一个新密码。 设置新密码Gitlab 8。创建存储库 在我们成功更改密码并登录到我们的控制面板后,我们现在将为我们的新项目创建一个新的存储库。为此,我们需要转到项目栏并单击“新项目”绿色按钮。 创建新项目 接下来,我们将被要求输入项目所需的信息和设置,如下所示。我们甚至可以从其他Git存储库提供商和存储库导入我们的项目。 创建新项目 完成此操作后,我们将能够使用包含基本Git命令行的任何Git客户端访问我们的Git存储库。我们可以看到存储库中正在进行的任何活动,例如创建里程碑、管理问题、合并请求、管理成员、注释、wiki等。 GitlabMenu Summary GitLab是一个很棒的开源Web应用程序,用于管理Git存储库。它有一个漂亮的响应式界面,有很多很酷的功能。它还包含许多很酷的功能,如管理组、分发密钥、持续集成、查看日志、广播消息、挂钩、系统OAuth应用程序、模板等(注意:OAuth是一个开放标准,允许用户允许第三方应用程序访问用户存储在网站上的私有资源(如照片、视频、联系人列表),而无需向第三方应用程序提供用户名和密码。---摘自维基百科上的OAuth条目)它还可以与Slack、Hipchat、LDAP、JIRA、Jenkins等一大批工具,hook种类多,API完备。它需要至少2GB的内存和一个2核CPU才能流畅运行并支持多达500个用户,但它也可以扩展到多个工作服务器。 如果您有任何问题,建议,反馈,请写在下面的评论框中,以便我们改进或更新我们的内容。谢谢!
