码迷,mamicode.com
首页 > 其他好文 > 详细

让龙芯小本真正发挥作用-用8089D打造自己的Github服务器

时间:2015-06-08 13:34:06      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

让龙芯小本真正发挥作用-用8089D打造自己的Github服务器

目录

前言

本文主要针对两种应用场景,第一种场景:Github 为每个免费用户提供 0.5 Gb 的空间,不过只能存放公开的代码,如果你想在 Github 上保存私有代码,只有成为付费用户才行。另一种场景是你的私有代码并不想公开放到互联网上,因为你觉得不安全,你只想把它们保存在本地局域网内部,但是你又很想用 git 来进行版本控制。怎么办?很简单,自己搭建一个 git 服务器。

下面说说做一个服务器有哪些条件应该满足:

服务器普遍有不间断供电的需求:如果要做代码服务器,那么持续供电是必要条件,选择专用服务器,必须配套 UPS,或者用一台自带电池的笔记本,也是一个不错的选择。

服务器的磁盘空间需求,如果你的代码服务器只允许上传文本文件,不允许保存可执行文件,那么只需要极少的空间。

如果在硬件昂贵稀少的几十年前,人们不太可能用笔记本来做这种事情,但是现在很多人都有不止一台台式机,不止一台笔记本,尤其是几年前购买的一些上网本,性能有限,速度迟缓,基本处于闲置状态,笔者就有3台类似的上网本,用来做代码服务器刚刚好。

龙芯小本 8089D 恰恰可以作为一台代码服务器来真正发挥威力,一方面它自带电池,不必担心忽然停电导致的系统错误(Linux系统运行时一旦停电可能会对系统造成损坏,有时可用命令 fsck 修复,有时甚至需要重装系统),事实上任意一款电池没有完全废掉的上网本都可以改造为一个代码仓库服务器。另一方面就是它的性能偏低,用它做编译、做图形处理都比较慢,但是做代码服务器就足够了。

理论上来说,WindowsLinux 都可以设置为代码服务器, Windows 只需要安装额外的 ssh 服务器软件来启动 ssh 服务,同时安装专门为 Windows 准备的 git shell 也可以把代码服务器配置起来,不过鉴于我在配置 freeSSHdposSSHWinSSHD 上折腾了半天-虽然配置好了-也可以从 Linux 登陆到 Windows 上的 ssh-就是有一些乱码什么的,就不建议拿 Windows 当代码服务器了。

下面介绍如何在 Debian 上进行配置。

8089D的服务端配置

我的 8089D 安装了 Debian 7,一些基本软件都安装好了,还需要安装如下软件和服务:git

可以通过如下命令来安装:

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

让龙芯小本真正发挥作用-用8089D打造自己的Github服务器

标签:

原文地址:http://my.oschina.net/freeblues/blog/464075

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!