首先安裝必須的一些依賴
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates
安裝Postfix發送通知郵件
sudo apt-get install -y postfix
運行命令后,會出現一樣郵件配置項,選擇Interent site這項,然后一路回車鍵(使用左右鍵和回車鍵選擇確定、取消,彈出列表選項的時候,選擇 Internet Site)
官方源安裝gitlab
官方源網站安裝gitlab(如果官網無法安裝,請參照下邊步驟,利用國內安裝源進行安裝)
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install gitlab-ce
國內源安裝gitlab
信任 GitLab 的 GPG 公鑰(配置git的公鑰,如果不信任公鑰,無法配置清華大學的鏡像路徑,切記):
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
配置鏡像路徑(由於git官網是國外的服務器,所以配置清華大學的鏡像路徑)
切換到root用戶,打開下面文件;將下邊的信息添加到文檔中(詳見Gitlab Community Edition 鏡像使用幫助)
vi /etc/apt/sources.list.d/gitlab-ce.list --打開文件 deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main --添加國內安裝源
gitlab安裝包下載地址:https://packages.gitlab.com/gitlab/gitlab-ce
國內源安裝 gitlab-ce
sudo apt-get update --更新
sudo apt-get install gitlab-ce --安裝
執行配置
sudo gitlab-ctl reconfigure
注1:
在執行配置的時候sudo gitlab-ctl reconfigure的時候往往會出現:ruby_block[supervise_redis_sleep] action run,出現會一直卡無法往下進行!
解決方案:
1、按住CTRL+C強制結束;
2、運行:sudo systemctl restart gitlab-runsvdir
3、再次執行:sudo gitlab-ctl reconfigure
注2:(自己遇到的坑,在網上查的資料得知,)
- 在ruby_block動作運行一步會出現超時
運行處理程序:運行gitlab-ctl reconfigure時出錯:ruby_block [使用GitLab授權Grafana](監視:: grafana第95行)發生錯誤:Mixlib :: ShellOut :: CommandTimeout:命令在600秒后超時:命令超出允許執行時間,進程終止
----開始輸出/ opt / gitlab / bin / gitlab-railsRunner -e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx.xx.xx/ -/ grafana / login / gitlab”,名稱:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app.secret);' ---- STDOUT:
STDERR:
---- / opt / gitlab / bin / gitlab-railsRunner的最終輸出-e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx。 xx.xx /-/ grafana / login / gitlab”,名稱:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app。
----運行/ opt / gitlab / bin / gitlab-railsRunner
-e production'app = Doorkeeper :: Application.where(redirect_uri:“ http://xx.xx.xx.xx/-/grafana/login/ gitlab”,名稱:“ GitLab Grafana”)。first_or_create;放入app.uid.concat(“”).concat(app.secret);'
2.sudo gitlab-rake gitlab:env:info正常返回雖然有時上面一步出現超時,測試發現已經可以通過瀏覽器訪問Gitlab服務器,並且可以進入到注冊頁面,但提交注冊時出現返回超時而用戶可以成功注冊的情況。配置信息,頁面返回雖然超時但操作可以正常完成,這也是我判斷可能是服務運行過緩慢導致超時的原因。
3.在登錄時反復超時,無法正常使用。將服務器內存配置替換為2GB后解決超時問題
注3:如果遇到這種報錯信息的話,應該是git用戶權限的問題。git用戶需要對包含.ssh目錄的文件夾(包含父文件夾)執行權限。
Running handlers: There was an error running gitlab-ctl reconfigure: service[grafana] (dynamically defined) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1' ---- Begin output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana ---- STDOUT: timeout: run: /opt/gitlab/service/grafana: (pid 5165) 33s, got TERM STDERR: ---- End output of /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana ---- Ran /opt/gitlab/embedded/bin/chpst -u root:root /opt/gitlab/embedded/bin/sv restart /opt/gitlab/service/grafana returned 1
即使/var/opt/gitlab/.ssh的所有者和用戶組都是git,由於父權限,它也不能到這級目錄執行shell命令。即,給 /var/opt/gitlab/目錄執行權限
chmod +x /var/opt/gitlab/ chmod +x /var/opt/ chmod +x /var/
如果執行不成功,就用sudo命令執行
啟動gitlab
sudo gitlab-ctl start
瀏覽器進行訪問
http://電腦的IP地址
第一次進入,需要輸入管理員賬號的密碼,以方便后期的管理。
輸入好之后,就可以以管理員進行登錄,賬號是root,密碼就是你剛才輸入的密碼。
至此,gitlab已安裝成功,之后的使用方式,和github沒有太大差異,就不進行介紹了
擴展
修改gitlab的端口和地址
編輯gitlab.rb
sudo gedit /etc/gitlab/gitlab.rb
將如下數據進行更改
external_url 'http://gitlab.example.com'
比如說更改為
external_url 'http://192.168.39.100:7800'
其中,192.168.39.100是安裝了gitlab的這台電腦的IP,端口只要不沖突就行
更改之后,需要執行如下代碼
sudo gitlab-ctl reconfigure
最后,在瀏覽器中訪問gitlab,發現已修改成功,需要使用192.168.39.100:7800
來訪問
其他
gtilab部分命令
開啟 sudo gitlab-ctl start 停止 sudo gitlab-ctl stop 重啟 sudo gitlab-ctl restart 查看狀態 sudo gitlab-ctl status 確認配置(修改配置后,必須執行) sudo gitlab-ctl reconfigure 查看日志 sudo gitlab-ctl tail 查看 GitLab 版本號 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
卸載gitlab
sudo gitlab-ctl uninstall sudo dpkg -r gitlab-ce sudo rpm -e gitlab-ce reboot(重啟)