雜序
關於Git的那些事兒,這裏不多說。Git這個極好用的分佈式版本管理系統,不得不說給我們日常團隊研發及代碼管理帶來了太多益處與效率。
如果要問我他是何方神聖,我只想說你可以關注下:
- Git主頁:https://git-scm.com/
- GitHub主頁:https://github.com/
- GitLab主頁:https://about.gitlab.com/
本文將以CentOS7爲系統,介紹GitLab CE(社區版)。
環境搭建
安裝GitLab
通過GitLab首頁域名進入首頁,選擇Download,如下圖:
點擊Select Oprating System,彈出系統列表選擇CentOS7,按照安裝步驟嚮導進行安裝。
1、安裝系統以來軟件包,並且打開http服務和系統防火牆
$ sudo yum install libsemanage-static libsemanage-devel
$ sudo yum install curl policycoreutils openssh-server openssh-clients
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
$ sudo yum install postfix
$ sudo systemctl enable postfix
$ sudo systemctl start postfix
$ sudo firewall-cmd --permanent --add-service=http
$ sudo systemctl reload firewalld
2、編輯/etc/gitlab/gitlab.rb文件,配置STMP郵件發送服務
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
其他郵箱詳細配置詳見:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md
3、安裝GitLab Server,有兩種安裝方式:
- yum安裝
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum install gitlab-ce
此安裝方式,默認會安裝最新版本。yum安裝默認使用的國外鏡像會比較慢,清華爲我們一共了一個國內鏡像,詳情參見:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
- 安裝包安裝
$ curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-XXX.rpm/download
$ rpm -i gitlab-ce-XXX.rpm
通過https://packages.gitlab.com/gitlab/gitlab-ce地址,可以下載rpm安裝包。右上角的搜索框可以輸入對應版本號,搜索出指定版本的安裝包(這對於中文漢化很重要,此處安裝的英文版大版本,一定要對應中文版的大版本。例如,中文版8-8-zh,可以漢化英文版8.8.x),本文使用8.8.9版本進行安裝。
上文代碼片段中的XXX需要替換成我們的安裝版本號。
4、進行GitLab初始化基礎配置
編輯/etc/gitlab/gitlab.rb配置文件
- 修改訪問IP/域名
external_url 'http://192.168.0.100'
以上配置,指定了訪問GitLab的地址爲192.168.0.100
5、觸發GitLab配置生效
$ sudo gitlab-ctl reconfigure
6、如果沒有報錯,看見gitlab Reconfigured!提示,表示配置生效,可以通過我們剛剛配置的IP/域名訪問登錄GitLab平臺了,此處地址爲:http://192.168.0.100,默認的系統管理員賬號:root,密碼:5iveL!fe。
7、開啓gitlab的自動啓動
$ systemctl enable gitlab-runsvdir.service
$ systemctl start gitlab-runsvdir.service
$ gitlab-cmd start
關閉gitlab的自動啓動命令:systemctl disable gitlab-runsvdir.service
8、查看當前安裝GitLab版本
$ head -1 /opt/gitlab/version-manifest.txt
中文漢化
準備工作
1、首先我們確保Windows環境,安裝了Git,因爲我們所有的操作都在命令行完成
2、克隆漢化版倉庫
$ git clone https://gitlab.com/xhang/gitlab
3、製作漢化補丁
$ git branch -a #查看當前所有版本分支
$ sudo git diff origin/8-8-stable..origin/8-8-zh > /d/tmp/8.8.diff
以上命令,對比了英文版本8-8-stable與中文版本8-8-zh分支的差別,並再Windows系統的D盤tmp目錄下生成了補丁文件8.8.diff。注意: 漢化補丁和安裝的版本一定要一致, 小版本很重要, 例如8.8-zh只支持8.8.0不支持8.8.+
漢化
1、停止192.168.0.100服務器的GitLab Server(必須先停止GitLab Server再進行漢化,否則會出錯)
$ sudo gitlab-ctl stop
2、上傳上文生成的8.8.diff漢化補丁,至安裝GitLab Server的CentOS7服務器,假設我們上傳至/home,全路徑爲/home/8.8.diff。
3、進行漢化
$ sudo patch -d /opt/gitlab/embedded/service/gitlab-rails < /home/8.8.diff
4、啓動GitLab Server
$ sudo gitlab-ctl start
5、再次使用http://192.168.0.100,登錄GitLab管理平臺,看到中文界面了嗎?恭喜你漢化成功!見下圖:
卸載
- 停止GitLab
$ gitlab-ctl stop
- 卸載GitLab
$ rpm -e gitlab-ce
- 查看並結束GitLab進程
$ ps -ef | grep gitlab
root 1812 1 0 Jun15 ? 00:00:34 runsvdir -P /opt/gitlab/service log: ...........................................................................................................................................................................................................................................................................................................................................................................................................
root 2196 1812 0 Jun15 ? 00:00:00 runsv gitlab-workhorse
root 2455 1812 0 Jun15 ? 00:00:00 runsv gitlab-monitor
root 2771 1836 0 Jun15 ? 00:00:03 svlogd -tt /var/log/gitlab/redis
root 2772 1900 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/postgresql
root 2773 2131 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/unicorn
root 2774 2174 0 Jun15 ? 00:00:02 svlogd -tt /var/log/gitlab/sidekiq
root 2784 2514 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/redis-exporter
root 2788 2455 0 Jun15 ? 00:01:00 svlogd -tt /var/log/gitlab/gitlab-monitor
root 2793 2196 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/gitlab-workhorse
root 2794 2218 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/nginx
root 2795 2249 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/logrotate
root 2826 2273 0 Jun15 ? 00:01:19 svlogd -tt /var/log/gitlab/gitaly
root 2827 2406 0 Jun15 ? 00:00:04 svlogd -tt /var/log/gitlab/node-exporter
root 2843 2626 0 Jun15 ? 00:00:00 svlogd -tt /var/log/gitlab/postgres-exporter
root 2844 2541 0 Jun15 ? 00:00:02 svlogd -tt /var/log/gitlab/prometheus
root 2919 2582 0 Jun15 ? 00:00:01 svlogd -tt /var/log/gitlab/alertmanager
root 9239 9005 0 10:34 pts/0 00:00:00 grep --color=auto gitlab
$ kill -9 1812
$ ps -ef | grep gitlab
- 首先查看gitlab進程
- 殺掉第1個進程
- 再次查看gitlab進程是否存在(確認以殺死進程)
- 刪除所有包含gitlab的文件夾及目錄
$ find / -name gitlab|xargs rm -rf
問題
ruby_block[supervise_redis_sleep] action run
在運行以下命令時,出現標題錯誤
$ sudo gitlab-ctl reconfigure
先執行命令
$ sudo exec /opt/gitlab/embedded/bin/runsvdir-start &
然後再次執行命令,配置正常
$ sudo gitlab-ctl reconfigure
warning: LF will be replaced by CRLF in…
在運行例如新增文件操作時,出現標題警告,可執行以下命令關閉轉換設置
$ git config --global core.autocrlf false
改警告是由於windows中的換行符爲 CRLF, 而在linux下的換行符爲LF,所以在執行add . 時出現提示