讓龍芯小本真正發揮做用-用8089D打造本身的Github服務器

讓龍芯小本真正發揮做用-用8089D打造本身的Github服務器

目錄

前言

本文主要針對兩種應用場景,第一種場景:Github 爲每一個免費用戶提供 0.5 Gb 的空間,不過只能存放公開的代碼,若是你想在 Github 上保存私有代碼,只有成爲付費用戶才行。另外一種場景是你的私有代碼並不想公開放到互聯網上,由於你以爲不安全,你只想把它們保存在本地局域網內部,可是你又很想用 git 來進行版本控制。怎麼辦?很簡單,本身搭建一個 git 服務器。git

下面說說作一個服務器有哪些條件應該知足:github

服務器廣泛有不間斷供電的需求:若是要作代碼服務器,那麼持續供電是必要條件,選擇專用服務器,必須配套 UPS,或者用一臺自帶電池的筆記本,也是一個不錯的選擇。shell

服務器的磁盤空間需求,若是你的代碼服務器只容許上傳文本文件,不容許保存可執行文件,那麼只須要極少的空間。安全

若是在硬件昂貴稀少的幾十年前,人們不太可能用筆記原本作這種事情,可是如今不少人都有不止一臺臺式機,不止一臺筆記本,尤爲是幾年前購買的一些上網本,性能有限,速度遲緩,基本處於閒置狀態,筆者就有3臺相似的上網本,用來作代碼服務器剛恰好。服務器

龍芯小本 8089D 偏偏能夠做爲一臺代碼服務器來真正發揮威力,一方面它自帶電池,沒必要擔憂突然停電致使的系統錯誤(Linux系統運行時一旦停電可能會對系統形成損壞,有時可用命令 fsck 修復,有時甚至須要重裝系統),事實上任意一款電池沒有徹底廢掉的上網本均可以改造爲一個代碼倉庫服務器。另外一方面就是它的性能偏低,用它作編譯、作圖形處理都比較慢,可是作代碼服務器就足夠了。ssh

理論上來講,WindowsLinux 均可以設置爲代碼服務器, Windows 只須要安裝額外的 ssh 服務器軟件來啓動 ssh 服務,同時安裝專門爲 Windows 準備的 git shell 也能夠把代碼服務器配置起來,不過鑑於我在配置 freeSSHdposSSHWinSSHD 上折騰了半天-雖然配置好了-也能夠從 Linux 登錄到 Windows 上的 ssh-就是有一些亂碼什麼的,就不建議拿 Windows 當代碼服務器了。性能

下面介紹如何在 Debian 上進行配置。fetch

8089D的服務端配置

個人 8089D 安裝了 Debian 7,一些基本軟件都安裝好了,還須要安裝以下軟件和服務:giturl

能夠經過以下命令來安裝:.net

aptitude install git

系統啓動時自帶啓動 sshd 服務,能夠經過 sysv-rc-conf 來查看

新增一個 ssh 用戶

sudo adduser git

按照提示設置好該用戶的密碼

建立 git 倉庫目錄

sudo mkdir /opt/github/mytest.git

把該目錄的屬主設置爲該用戶

sudo chown -R git:git /opt/github/mytest.git

切換到該用戶

su git

把該目錄初始化爲裸倉庫

cd /opt/github/mytest.git
git init --bare

OK,如今服務端的配置所有完成

任意一臺電腦的客戶端配置

接下來就是客戶端的配置操做,WindowsLinux Unix OSX 均可以做爲客戶端,只要可以運行 sshgit ,就能夠當客戶端來用.

這裏須要知道 8089D 的 ip,用命令 ifconfig 能夠看到,假設咱們 8089Dip192.168.99.233

有兩種方法,一種使用默認的遠程倉庫名 origin,另外一種本身指定名字。

先說方法一,比較簡單,直接使用 git clone 命令就能夠在本地創建一個遠程倉庫的拷貝,默認的遠程倉庫名字設置爲 origin,本地目錄設爲 mytest1,詳細命令以下:

git clone ssh://git@192.168.99.233/opt/github/mytest.git mytest1

按照提示要求輸入ssh 用戶 git 的密碼,而後就把位於龍芯小本上的 mytest.git 克隆到本地的 mytest1 目錄下,這時進入目錄 .\mytest1\ 使用 git remote -v 命令查看當前的遠程倉庫,以下:

Air:loongson admin$ cd mytest1/
Air:mytest1 admin$ ls -al
total 0
drwxr-xr-x   3 admin  staff  102  6  8 00:36 .
drwxr-xr-x   3 admin  staff  102  6  8 00:36 ..
drwxr-xr-x  10 admin  staff  340  6  8 00:37 .git
Air:mytest1 admin$ git remote -v
origin	ssh://git@192.168.99.233/opt/github/mytest.git (fetch)
origin	ssh://git@192.168.99.233/opt/github/mytest.git (push)
Air:mytest1 admin$

再說方法2,首先創建一個空目錄 mytest2,而後進入這個目錄使用 git init 命令把這個目錄初始化,最後使用 git remote add 命令爲其手動增長遠程倉庫,詳細命令以下:

Air:loongson admin$ mkdir mytest2
Air:loongson admin$ cd mytest2
Air:mytest2 admin$ ls -al
total 0
drwxr-xr-x   3 admin  staff  102  6  8 00:41 .
drwxr-xr-x   4 admin  staff  136  6  8 00:41 ..
drwxr-xr-x  10 admin  staff  340  6  8 00:42 .git
Air:mytest2 admin$ git init
Initialized empty Git repository in /Users/admin/GitHub/loongson/mytest2/.git/

再經過命令 git remote add 增長名爲 l8089D 的遠程倉庫

Air:mytest2 admin$ git remote add l8089D  ssh://git@192.168.99.233/opt/github/mytest.git

接着用命令 git remote -v 查看一下,會顯示全部的遠程倉庫名和對應的url

Air:mytest2 admin$ git remote -v
l8089D	ssh://git@192.168.99.233/opt/github/mytest.git (fetch)
l8089D	ssh://git@192.168.99.233/opt/github/mytest.git (push)
Air:mytest2 admin$

如今就基本完工了。

.gitignore的過濾設置

爲了保證不上傳可執行文件浪費空間,咱們須要在工做目錄下新增一個 .gitignore 配置文件,命令以下:

touch ./.gitignore
vi ./.gitignore

並對其進行配置,有兩種配置方式,一種是開放模式,一種是保守模式。

簡單說,開放模式就是默認提交全部文件,要在配置文件裏指出不提交哪些文件,假設咱們的可執行文件格式爲 *.o,咱們不但願提交全部的可執行文件,那麼配置文件內容以下:

*.o

保守模式偏偏相反,它默認不提交全部文件,只提交在配置文件裏列出的那些文件,假設咱們須要提交全部的 *.c*.h 文件,那麼配置文件內容以下:

!*.c
!*.h

以上是針對文件的過濾設置,也能夠針對目錄進行設置,以下。

開放模式,不提交目錄 /opt/github/mytest1/others/,配置文件 .gitignore 內容以下:

/opt/github/mytest1/others/

保守模式,只提交目錄 /opt/github/,配置文件 .gitignore 內容以下:

!/opt/github/

免輸密碼-git用戶的鑑權配置

目前的配置方式每次 push 代碼時都須要輸入用戶 git 的密碼,是由於咱們沒有配置 ssh 的公鑰和私鑰,配置一下很簡單,這樣每次就沒必要輸密碼了,只要把客戶端使用 ssh 的用戶的公鑰收集起來,它們存放在 id_rsa.pub 文件中,添加到 8089D 的用戶 git 的鑑權名單裏便可,也就是 8089D 上的 /home/git/.ssh/authorized_keys 文件裏,每行一個,若是隻有一個用戶,那麼直接把 id_rsa.pub 拷貝爲 authorized_keys 就行了。

剩下的就是從客戶端工做目錄把代碼同步到服務端

git add .
git commit -m ""

若是在 mytest1 操做,命令以下:

git push origin master

若是在 mytest2 操做,命令以下:

git push l8089D master

其餘的操做都同樣。

通過上述配置,如今你的 8089D 龍芯小本就能夠作爲一個代碼服務器投入使用了,

其餘

做者:FreeBlues 版本:20150608 連接:http://my.oschina.net/freeblues/blog/464075

相關文章
相關標籤/搜索