導航:首頁 > IDC知識 > ubuntugit伺服器

ubuntugit伺服器

發布時間:2021-01-17 23:35:09

1、如何在ubuntu server 14.04下安裝gitlab中文版

安裝步驟有:

1. 依賴包
2. ruby
3. 用戶創建
4. 資料庫初始化
5. redis
6. gitlab源碼
7. apache

本文可能會用到VPN連接,在命令行下創建VPN連接的方法如下:

sudo apt-get install pptp-linux
sudo pptpsetup --create VPN名稱 --server 伺服器地址 --username 用戶名 --password 密碼 [--encrypt] --start

以上命令會創建一個設備,如果沒有其他的撥號設備,這個設備會是ppp0,用ifconfig可以看到,「--encrypt」選項可選,因為有的伺服器不支持,會提示MPPE required but peer negotiation failed,創建時帶上「--start」選項可以看到連接的情況。
pptpsetup創建的VPN連接重啟後會失效,如果想在不重啟的情況下刪除VPN連接:

sudo pptpsetup --delete VPN名稱

創建VPN連接後還需要使能,並且添加到路由列表:

sudo pon VPN名稱
sudo route add default dev ppp0

禁用VPN連接的方法是:

sudo poff VPN名稱

下面開始正文:

1. 依賴包

我裝的是ubuntu server 14.04,安裝的時候可以選是否安裝LAMP(Linux+Apache+MySQL+PHP),如果沒裝,可以用下面的命令裝:

sudo tasksel install lamp-server

安裝的時候會提示輸入MySQL的root密碼,下面要用。
接下來是依賴關系:

sudo apt-get install flex bison ruby build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake libkrb5-dev nodejs git-core

注意:這裡面裝了ruby,應該是1.9.1版本的,gitlab需要2.0以上的ruby,但是安裝2.0以上的ruby需要低版本的ruby,所以我們先裝上,一會兒卸掉。另外,ubuntu 14.04的軟體庫里有ruby 2.0,但是實測不能用,所以還是從源碼裝ruby吧。

2. ruby

下載,編譯,安裝(安裝前刪掉ruby 1.9.1):

curl -L --progress http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz | tar xz
cd ruby-2.1.5
./configure --prefix=/usr --disable-install-rdoc
make
sudo apt-get autoremove ruby
sudo make install

然後安裝bundler:

sudo gem install bundler --no-ri --no-rdoc

3. 用戶創建

為gitlab創建一個git用戶:

sudo adser --disabled-login --gecos 'GitLab' git

4. 資料庫初始化

官方指南用的是PostgreSQL,不過官方也有MySQL的說明:
http://doc.gitlab.com/ce/install/database_mysql.html

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
mysql -u root -p

輸入MySQL的root密碼登陸,然後:

mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';

記得把上面這句的"$password"換成實際的密碼,然後:

mysql> SET storage_engine=INNODB;
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_proction` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `gitlabhq_proction`.* TO 'git'@'localhost';
mysql> \q

5. Redis

Redis貌似是用來存key的資料庫吧,不知道,反正按步驟安裝:

sudo apt-get install redis-server
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf
echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf
echo 'unixsocketperm 770' | sudo tee -a /etc/redis/redis.conf
sudo service redis-server restart
sudo usermod -aG redis git

6. gitlab源碼

gitlab源碼默認是安裝在/home/git/gitlab,如果要更改,請參照官方手冊。獲取中文版源碼的過程如下:

cd /home/git
sudo -u git -H git clone https://gitlab.com/larryli/gitlab.git

不知道是因為GFW還是什麼,git clone這個版本庫可慢可慢了,我用了VPN,速度會快點。
git clone完以後可以checkout你想要的版本,在本文編寫的時間(2015年4月22日),可以:

sudo -u git -H git checkout 7-7-zh

然後配置源碼

cd /home/git/gitlab
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX tmp/
sudo -u git -H mkdir /home/git/gitlab-satellites
sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
sudo chmod -R u+rwX public/uploads
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "[email protected]"
sudo -u git -H git config --global core.autocrlf input
sudo -u git -H cp config/resque.yml.example config/resque.yml

當然,你可以把[email protected]改成你的email;上面的那些yml文件裡面的配置基本都不用更改;然後,配置資料庫用戶名和密碼:

sudo -u git cp config/database.yml.mysql config/database.yml
sudo -u git -H editor config/database.yml
sudo -u git -H chmod o-rwx config/database.yml

然後,安裝gems:

sudo -u git -H bundle install --deployment --without development test postgres aws

這一步必須使用VPN,因為萬惡的GFW屏蔽了rubygems.org,所以會提示connection reset by peer之類的,這部時間也會比較久,如果你的機器是多核的,也可以加上和make相同-jN參數,N等於核數。

(2015年5月2日追加)
發現淘寶做了個rubygrems.org的國內鏡像,http://ruby.taobao.org/,可以參照上面的內容設置,加快gems安裝速度。

再接下來安裝gitlab shell:

sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.0] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=proction
sudo -u git -H editor /home/git/gitlab-shell/config.yml

把gitlab的url改成http://localhost/或者你的域名
在接下來初始化資料庫:

sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=proction

加入啟動項:

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab defaults 21

初始化日誌:

sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

檢查應用狀態:

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=proction

編譯附件:

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=proction

啟動gitlab服務:

sudo service gitlab start

7. apache

下載apache的配置文件:https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/apache/gitlab-apache2.4.conf
將其中的「ProxyPassReverse
http://gitlab.example.com/」改成「ProxyPassReverse
http://localhost/」或者你的域名,將其中的「/var/log/httpd/logs/」改為「/var/log/apache2/」。
用命令來說:

wget https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/web-server/apache/gitlab-apache2.4.conf
mv gitlab-apache2.4.conf 001-gitlab.conf
editor 001-gitlab.conf (進行上述修改)
sudo cp 001-gitlab.conf /etc/apache2/sites-available
cd /etc/apache2/sites-enabled
sudo rm 000-default.conf
sudo ln -s ../sites-available/001-gitlab.conf 001-gitlab.conf

另外,還需要使能代理模塊以實現反向代理功能,不然會提示「ProxyPassReverse」無效之類的。

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/proxy.conf proxy.conf
sudo ln -s ../mods-available/proxy.load proxy.load
sudo ln -s ../mods-available/proxy_connect.load proxy_connect.load
sudo ln -s ../mods-available/proxy_http.load proxy_http.load
sudo ln -s ../mods-available/rewrite.load rewrite.load

重啟apache:

sudo service apache2 restart

然後,檢查下配置是否正確:

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=proction

如果都是綠色的結果,那就可以訪問了。登陸用戶名:root,初始密碼:5iveL!fe

最後配置一下郵件,修改/home/git/gitlab/config/gitlab.yml,裡面的「email_from:」為一個有效的email地址;修改/home/git/gitlab/config/environments/proction.rb,裡面的 「config.action_mailer.delivery_method=」為「:smtp」;最後:

cd /home/git/gitlab/config/initializers
sudo -u git -H cp smtp_settings.rb.sample smtp_settings.rb

然後把文件的里的內容修改正確了,再重啟一下gitlab服務就行了:

sudo service gitlab restart

2、怎麼在ubuntu創建git伺服器

首先這里我們安裝openssh-server openssh-client,如果你用的是VPS之類的一般都默認安裝好了,不過運行一個這個命令不會有錯的,如果有安裝就會提示已安裝。
sudo apt-get -y install openssh-server openssh-client

安裝git,在這個核心軟體,不可或缺。
sudo apt-get -y install git

添加gitolite用戶和同名用戶組,加上--system參數,用戶就不會在登陸界面顯示。
sudo adser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite

生成ssh key,一路回車下來。
ssh-keygen -t rsa

將你當前用戶的ssh pub key復制到/tmp下備用,由於我用的是桌面版在同一台機器上。
cp ~/.ssh/id_rsa.pub /tmp/ubuntugege.pub
如果你是ssh遠程登陸到伺服器上安裝,就要把你本地的key復制到遠程的機器上
scp ~/.ssh/id_rsa.pub gitolite.server:/tmp/ubuntugege.pub

安裝gitolite,在ubuntu中已經集成了,不用自己去下載。
sudo apt-get -y install gitolite

切換到gitolite用戶環境中,因為我要以gitolite用戶身份去初始化安裝。
sudo su - gitolite

執行初始化安裝gitolite。
gl-setup /tmp/ubuntugege.pub

把管理庫gitolite-admin克隆過來就可以開始gitolite用戶及代碼庫的管理了,如果不能克隆,那麼就說明初始化的ssh pub key錯了,如圖就是成功了。

3、如何在ubuntu系統上建立git倉庫

一、 在 Ubuntu 系統中部署 Git Server

在Ubuntu系統中,這一步相當簡單,只需要在Terminal中輸入
sudo apt-get update
完成這一步後,就可以安裝 git core 組件,通常情況下,安裝在系統中的git 只是一個簡單的客戶端,包括一些最基本的命令以及特性,而作為保管代碼的倉庫,則還需要其他特性支持,所以需要安裝 git core,如果之前已經安裝了 git,那麼仍然需要安裝 git core

sudo apt-get install git-core

二、配置Git Server

完成這兩步之後,就可以開始配置 Git Server 了。
增加 developers 組以及創建保存項目的倉庫

需要創建一個新的用戶組,並且將創建的倉庫都放置在名為 git 的用戶下,當然git 要隸屬於 developers 組,這樣也是為了方便將來的管理需要。

sudo groupadd developers
cd /home/
sudo mkdir git
sudo useradd git -d /home/git

以上四個命令分別為創建 developers 用戶組, 並在/home/ 文件夾下為名為 git 的用戶創建工作目錄,創建名為 git 的用戶賬戶並將它的工作目錄指向/home/git。

之後,需要將增加的用戶添加到 developers 用戶組中,這一步一般通過修改/etc/group 文件達成,在正式修改 /etc/group 文件前或許需要先做一個備份。找到創建的用戶組,譬如例子中創建的 developers。或許能在文件中看到類似的一行:

developers:x:1003:

將剛才創建的用戶 git,添加到developers中,當然也可以添加其他的「開發者」,就像這樣

developers:x:1003:git,tom,francklin,james

創建代碼倉庫,並修改許可權。現在,回到創建好的工作目錄 /home/git/,可能需要通過命令cd 來完成將工作路徑由 /etc/ 切換為 /home/git/,然後讓在 git 下創建一個新的倉庫

sudo mkdir yourproject.git
sudo chgrp developers yourproject.git
sudo chmod g+rws yourproject.git

需要將創建的文件夾的所有人由 root 修改為 developers,這樣當在本地上傳代碼至倉庫時就不會遇到許可權不夠的問題。其次需要將倉庫的所有權修改,也可以用「777」修改倉庫的許可權,不過不建議這樣做。

sudo git init —bare —shared yourproject.git

在正式上傳代碼至倉庫前,還需要對倉庫進行初始化,請注意這里和平常使用方式的不同,—bare 指定創建的倉庫為公共倉庫,—shared 將使其他人都有許可權將他們的代碼提交至這個倉庫中。

三、提交代碼

使用SSH進行提交代碼,需要在GIT Server上先安裝SSH伺服器,可以使用 apt-get 安裝 SSH 伺服器。

sudo apt-get install openssh-server

在伺服器上安裝好 ssh 之後,可以使用 ssh localhost 試著登錄一下。在沒做其他配置的情況下,一般會要求輸入用戶名和密碼,之後會提示登錄成功。可以在登錄成功後,使用 ls -l 或者 ll 命令查看當前工作路徑下有哪些文件和目錄,之後,需要使用 exit 退出 ssh 登錄。

在本地客戶端上,可能需要創建隸屬於 developers 組的用戶,當然這一步並非必須。

$ sudo groupadd developers # 創建developers用戶組
$ sudo mkdir -p /home/git # 創建主目錄
$ sudo useradd git -d /home/git -g developers # 創建git用戶,並制定其默認的工作路徑和隸屬的用戶組
$ sudo passwd git # 為git設置密碼

登錄到系統,並使用 passwd username 為用戶指定一個密碼:

$ sudo passwd git # 為用戶git指定密碼為1234

之後你再次嘗試一次,那麼就會成功的把公鑰發送給 GIT Server 了。可以使用 ssh [email protected] 試一試,看看能不能免密碼登錄至 GIT 伺服器上。
完成這些後,就可以上傳自己的代碼、或者從 Git server 上拉取代碼了。

git remote add origin [email protected]:/home/git/yourproject.git
git push origin master

四、可能出現的錯誤

如果出現了類似的錯誤

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for .net has changed,
and the key for the according IP address xx.xx.xxx.xxx
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/user/.ssh/known_hosts to get rid of this message.
Offending key in /Users/user/.ssh/known_hosts:5
RSA host key for .net has changed and you have requested strict
checking.
Host key verification failed.

處理方法是,刪除客戶端的 .ssh/known_hosts 文件。

4、如何在Ubuntu上幾步搭建Git Server

搭建Git伺服器需要准備抄一台運行Linux的機器,強烈推薦用Ubuntu或Debian,這樣,通過幾條簡單的apt命令就可以完成安裝。 假設你已經有sudo許可權的用戶賬號,下面,正式開始安裝。 第一步,安裝git: $ sudo apt-get install git

5、ubuntu下git clone有沒有鏡像服務

打開git輸入命令ls下載的文件就會在下面的列表裡然後cd進入該文件之後pwd就會顯示該文件的路徑!OK

6、ubuntu server 搭建git伺服器能在windows上面使用嗎

windows 上有個 gitstack 的軟體,支持 web 管理,3個以內的用戶免費。。 直接安裝就可以使用的了。

7、如何用虛擬機ubuntu搭建git伺服器配置 並可以按照網頁訪問

安裝安裝好後按照提示,配置用戶名與郵箱
2
安裝
3
隨便進入一個git倉庫, 如我的
開啟git web服務專屬: g
默認埠是1234, 在瀏覽器輸入試吧。如果你的主機已經有自己的域名,把localhost 替換成你的域名試試吧.

8、ubuntu不能聯網怎麼搭建git伺服器

我使用的gogs+cetos6搭建git伺服器,因為gogs搭建伺服器比較簡單

我給您大概專說一下搭建過程

linux伺服器上安屬裝mysql,並創建gogs資料庫

linux伺服器上安裝git

linux伺服器上安裝gogs

運行./gogs web ,然後可以通過瀏覽器訪問: localhost:3000配置伺服器.

最後是開啟防火牆埠3000(gogs默認埠)

因為不熟悉Ubuntu,但是過程是一樣的,您可以嘗試一下 :)

9、怎麼在win10下訪問搭建在ubuntu上的gitlab伺服器

GitLab是由Ruby語言開發的基於Linux的Git伺服器,是我見過的最強大的Git伺服器。發現它之後,立即決定將Git伺服器換成GitLab。但安裝好GitLab之後面臨一個問題,如何將伺服器上的git項目直接導入到GitLab,之前的Git伺服器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git伺服器)。
在網上發現了這篇文檔——Import bare repositories into your GitLab instance,並按之進行了操作。
1)設置存放代碼庫的主目錄
vi /etc/gitlab/gitlab.rb

比如這里設置為:git_data_dir "/gitlab/repos"
2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。
這時會在 /gitlab/repos 下創建 /gitlab/repos/repositories/cnblogs 文件夾。
然後在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs
3)將現有的所有git項目文件復制到這個文件夾
cp -r /data/git/* /gitlab/repos/repositories/cnblogs

4)修改一下復制過來的文件夾的所有者:
chown -R git:git /gitlab/repos/repositories/cnblogs

5)運行GitLab導入命令
cd /var/opt/gitlab
gitlab-rake gitlab:import:repos

等了一段時間之後,顯示done,卻一個項目也沒導入進來。
經研究發現,在導入時,GitLab只認文件夾名以.git結尾的項目。於是,將要導入的項目文件夾名稱加上.git後綴,再次進行導入。
結果顯示導入成功,比如:
Processing cnblogs/CNBlogsJob.git
* Created CNBlogsJob (cnblogs/CNBlogsJob.git)
Done!

可以是GitLab站點上卻看不到已導入的項目。多次努力,也沒能解決這個問題。
後來,實在沒辦法,改為手動導入,導入方法如下:
1)在GitLab站點上創建與要導入的項目同名的項目。
2)進入剛創建的項目文件夾
cd /gitlab/repos/repositories/cnblogs/項目名稱.git

3)刪除該文件下的所有文件
rm -rf *

4)將要導入的項目文件夾下的所有文件復制過來
cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git

就這樣將項目一個一個地導入進來。
5)導入完成後,修改一下導入的所有項目的文件所有者
chown -R git:git /gitlab/repos/repositories/cnblogs

如果不修改所有者,客戶端無法進行git push。
就這樣手動地完成了現有Git項目的導入。
備註:操作系統是CentOS 6.2,GitLab版本是7.8.4。

與ubuntugit伺服器相關的知識