文档章节

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

FreeBlues
 FreeBlues
发布于 2015/06/08 11:25
字数 2008
阅读 404
收藏 3

让龙芯小本真正发挥作用-用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

© 著作权归作者所有

FreeBlues
粉丝 98
博文 280
码字总数 493678
作品 0
其它
程序员
私信 提问
闭关两年 普华发布操作系统4.0系列产品

  【IT168 评论】如今,信息安全已经成为国家战略,政策红利下的国产操作系统面临前所未有的市场机遇。5月27日,普华基础软件股份有限公司(以下简称“普华”)在京召开发布会,在主题为“安...

it168网站
2016/05/28
0
0
龙芯宣传的自主知识产权没有错

和别人吵架没吵完,继续: 龙芯--中国CPU核自主战略并非失败 midc:要不要重新做指令集什么的这个旁人也许无法说什么. 但是有两点,实在够恶心国人的: 1 自主知识产权. 不管是搞电子的还是其...

goofegg
2009/07/05
58
0
龙芯宣传的自主知识产权没有错

和别人吵架没吵完,继续: 龙芯--中国CPU核自主战略并非失败 midc:要不要重新做指令集什么的这个旁人也许无法说什么. 但是有两点,实在够恶心国人的: 1 自主知识产权. 不管是搞电子的还是其...

goofegg
2009/08/05
33
0
龙芯将两款 CPU 核开源,这意味着什么?

10月21日,教育部计算机类教学指导委员会、中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和...

局长
2016/10/24
8.7K
64
龙芯8089D-Debian7 下搭建 Objective-C 编译环境

龙芯8089D-Debian7 下搭建 Objective-C 编译环境 目录 *** 安装相关文件 编译参数说明 简化命令行参数 实际编译实例 简单说明:Objective-C 的 文件后缀为 ,头文件后缀为 ,例如我们在本教程...

FreeBlues
2014/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

对话亲历者|鲁肃:我在支付宝“拧螺丝“的日子

摘要: 他是支付宝技术平台的奠基人之一,但是他总说“这还不是我心中最完美的架构”;他行事低调但却有着“此时此地,非我莫属”的豪气;他曾无数次充当救火大队长,但自评只是“没有掉队的...

阿里云云栖社区
8分钟前
0
0
设置 npm yarn 淘宝源

设置npm config set chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver设置yarn config set "chromedriver_cdnurl" "https://npm.taobao.org/mirrors/chromedriver"......

internetafei
17分钟前
0
0
Docker搭建Mysql集群、主从同步复制

1、创建数据挂载点: mkdir /opt/mysql-master/mysql、/opt/mysql-master/conf.d、/opt/mysql-slave/mysql、/opt/mysql-slave/conf.d 2、分别在master、slave节点文件目录conf.d下创建touch......

WALK_MAN
40分钟前
8
0
手把手教你做中间件开发(分布式缓存篇)-借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo

本文档配合主要对如下demo进行配合说明: 借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo 0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群 ...

y123456yz
41分钟前
2
0
Spring-boot单元测试(私有方法测试)

Spring-boot的单元测试网上有了很多,当项目是可以使用spring-boot正常运行时,只要在测试类上添加如下配置就使用@Autowired的方式进行单元测试 @RunWith(SpringJUnit4ClassRunner.class)@...

琴兽
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部