`
kowen
  • 浏览: 113535 次
  • 性别: Icon_minigender_1
  • 来自: 东营
社区版块
存档分类
最新评论

ubuntu 使用gitosis和gitweb安装git服务器

阅读更多

【转载请注明原文链接:http://kowen.iteye.com/blog/2101784】

 

经过多天的摸索,终于在ubuntu上配置完成了gitosis,写下来分享:

 

一、安装环境和软件

ubuntu 14.04 server

openssh-server

git-core

gitosis

git

 

二、安装准备

1.服务器安装openssh

 sudo apt-get install openssh-server openssh-client

2.在一台管理客户机上生成ssh公钥【客户机执行】

 ssh-keygen -t rsa

生成的公钥在/home/YourUserName/.ssh/里面,默认名字是id_rsa.pub。

 

 

三、安装git服务

sudo apt-get install git-core 

 

四、安装gitosis

1.下载gitosis到/tmp

cd /tmp

git clone https://github.com/tv42/gitosis.git

2.安装必备包

sudo apt-get install python-setuptools

3.安装gitosis

cd /tmp/gitosis

python setup.py install

 

五、配置gitosis

1.创建用户git【服务器执行】

sudo adduser \

     --system \

     --shell /bin/sh \

     --gecos 'git version control' \

     --group \

     --disabled-password \

     --home /git \

     git

 

2.把管理客户机生成的公钥上传到服务器上【客户机执行】

scp /~.ssh/id_rsa.pub git@<server>:/tmp

或者用其他方式上传到服务器也行

 

3.初始化配置【服务器执行】

sudo -H -u git gitosis-init </tmp/id_rsa.pub

以上命令有三个作用:

a)建立一个目录“~/repositories”,用来存储所有git仓库;

b)生成一个指向实际配置文件的软链接“~/.gitosis.conf”;

c)把公钥文件id_rsa.pub添加到 ~/.ssh/authorized_keys。

执行后提示:

Initialized empty Git repository in /git/repositories/gitosis-admin.git/

Reinitialized existing Git repository in /git/repositories/gitosis-admin.git/

 

执行命令“l /git -all”可以看到配置产生的结果:

total 20

drwxr-xr-x  5 git  git  4096 Aug  7 15:33 ./

drwxr-xr-x 23 root root 4096 Aug  7 15:07 ../

lrwxrwxrwx  1 git  git    48 Aug  7 15:33 .gitosis.conf -> /git/repositories/gitosis-admin.git/gitosis.conf

drwx------  2 git  git  4096 Aug  7 15:33 .ssh/

drwxr-xr-x  2 git  git  4096 Aug  7 15:33 gitosis/

drwxr-xr-x  3 git  git  4096 Aug  7 15:33 repositories/

 

4.修改配置文件

有趣的是,gitosis的配置文件本身就是一个git仓库,gitosis的配置修改就是通过git实现的,先clone下来修改,再push上去。只要push上去,gitosis会立刻监视到配置文件的修改并应用。

在管理客户端clone管理库到本地:git clone git@<SERVER>:gitosis-admin.git

clone下来以后,库里有一个文件gitosis.conf(配置文件);还有一个文件夹keydir,里面存储的是用户的公钥文件,当前里面就有在管理客户端上生成的私钥(用户名格式是"email地址.pub",例如“jone@example.com.pub”)。

 

六、添加用户和仓库

添加新仓库也非常简单,假设你要添加一个叫jone@example.com的用户,再创建一个仓库叫myproject,并赋给jone修改权限。

1.首先ssh-keygen生成jone的公钥和私钥;

2.把jone公钥拷贝到本地gitosis-admin库的keydir里面;

3.编辑本地gitosis-admin库里的gitosis.conf,添加:

[group myteam]

members = jone@example.com

writable = myproject

4.commit修改,push到服务器生效。

5.使用jone初始化仓库并push到服务器【在jone私钥计算机上操作】

mkdir myproject

cd mypyroject

git init

git remote add myserver git@MYSERVER:myproject.git

# do some work, git add and commit files

git push myserver master:refs/heads/master

 

【更复杂的配置文件的样例见:https://github.com/tv42/gitosis/blob/master/example.conf】

 

七.设置gitweb

1.安装gitweb

sudo apt-get install gitweb

安装后,配置文件是/etc/gitweb.conf,其他文件在/usr/share/gitweb/。

 

2.链接/var/www到gitweb的网页目录

$ cd /var/www/

$ sudo ln -s /usr/share/gitweb/static/

 

3.修改gitweb配置文件sudo vi /etc/gitweb.conf

 

#配置仓库所在目录

$projectroot = "/git/repositories";

#配置project list

$projects_list = "/git/gitosis/projects.list";

#以下配置网页静态文件,注意"/"

@stylesheets = ("/static/gitweb.css");

$javascript = "/static/gitweb.js";

$logo = "/static/git-logo.png";

$favicon = "/static/git-favicon.png";

 

 

4.安装lighttpd

sudo apt-get install lighttpd

 

5.修改lighttpd配置文件 sudo vi /etc/lighttpd.conf

 

server.modules  += (

  "mod_cgi",

  "mod_setenv",

  "mod_redirect",

  #保证以上三个module都有

)

 

url.redirect += (

  "^/gitweb$" => "http://YOURSERVER/gitweb/",

)

alias.url += (

  "/gitweb/" => "/usr/lib/cgi-bin/gitweb.cgi",

  "/gitweb.css" => "/var/www/static/gitweb.css",

  "/git-logo.png" => "/var/www/static/git-logo.png",

  "/git-favicon.png" => "/var/www/static/git-favicon.png",

)

 

$HTTP["url"] =~ "^/gitweb/" {

  setenv.add-environment = (

    "GITWEB_CONFIG" => "/etc/gitweb.conf",

  )

  cgi.assign = ( "" => "" )

}

 

6.配置要显示的仓库

编辑配置文件:sudo vi /git/.gitosis.conf

[repo myproject]

gitweb = yes

description = example repo

owner = yourname

daemon = yes

 

[gitweb]

 

7.重启lighttpd服务 

sudo service lighttpd reload

 

8.打开浏览器,输入http://YOURSERVER/gitweb,可以显示首页,但是提示404错误(找不到仓库);

最后找到原因是/git/repositories/myproject.git目录权限的问题,只有git用户有读写权限,所以lighttpd服务无法读取这个目录,这里设置777权限给它:“sudo chmod -R 777 /git/repositories/myproject.git”,刷新网页后ok。

 

八.总结

ubuntu安装git主要用到了ssh-keygen、git-core、gitosis、gitweb和lighttpd。

gitosis的配置文件是{git_user_home}/.gitosis.conf;

gitweb的配置文件是/etc/gitweb.conf

lighttpd的配置文件在/etc/lighttpd/里面。

 

分享到:
评论

相关推荐

    Ubuntu下用Gitosis搭建GIT代码服务器及Eclipse下的Git操作

    Ubuntu下用Gitosis搭建GIT代码服务器及Eclipse下的Git操作

    gitosis git服务器架设软件

    Gitosis则是方便通过Git与ssh架设中央服务器的软件。这篇文章的安装流程写得很明了,但使用中还是遇到了些许问题,本文算是该流程的补充。如果打算通过Gitosis架设服务器通过本文或许可以少走不少弯路。 一、架设...

    基于gitolite 搭建Git服务器

    Git服务端的搭建需要多用户协作及其权限控制等功能,这需要用户管理权限控制组件的支持,目前这类组件主要有两类:Gitosis和Gitolite。 Gitosis起初功能强大,但于09年不再更新。 Gitolite原本是作为Gitosis的lite...

    git-1.7.12.2 gitosis setuptools 软件

    git-1.7.12.2 gitosis setuptools 搭建 ssh git 所需的所有软件

    Git中文学习手册 Git入门

    1 4 安装 Git 1 5 初次运行 Git 前的配置 1 6 获取帮助 1 7 小结 2 Git 基础 2 1 取得项目的 Git 仓库 2 2 记录每次更新到仓库 2 3 查看提交历史 2 4 撤消操作 2 5 远程仓库的使用 2 6 打标签 2 7 技巧和...

    以Copssh和msysgit在winxp上架设git服务器

    可以在Winxp上架设git服务器的解决方案 ...这个方案应该是大多数公司应该采用的版本控制管理系统架设模式(本文不予介绍,相关的安装参见“20100828 以cygwin和gitolite在winxp上安装git服务器.doc”)。

    GIT服务器配置

    GIT服务器配置 描述git、gitosis 服务器安装过程

    Git权威指南PDF完整版

    3.1 在Linux 下安装和使用 Git/ 22 3.1.1 包管理器方式安装/ 22 3.1.2 从源代码进行安装/ 23 3.1.3 从Git版本库进行安装/ 23 3.1.4 命令补齐/ 25 3.1.5 中文支持/ 25 3.2 在Mac OS X 下安装和使用 Git/ 26 3.2.1 以...

    以cygwin和gitolite在WinServer2008上安装git服务

    如果不涉及开发者对项目访问权限的管理问题,这是一个最经济高效的解决方案,具体安装过程参考“安装copssh Git Sever的过程.doc”和“安装copssh Git Client的过程.doc”。 二 方案2:cygwin + gitolite 如“参考...

    Git学习手册

    1 4 安装 Git 1 5 初次运行 Git 前的配置 1 6 获取帮助 1 7 小结 2 Git 基础 2 1 取得项目的 Git 仓库 2 2 记录每次更新到仓库 2 3 查看提交历史 2 4 撤消操作 2 5 远程仓库的使用 2 6 打标签 2 7 技巧和...

    在 Ubuntu 下搭建 git gitosis.pdf

    。。。

    在 Ubuntu 下搭建 git gitosis.docx

    。。。

    gitosis-master_20170112

    gitosis-master,有时github下载很慢,因此下载下来。更新到2017/01/12. Linux 下架设git服务器时使用。 git clone https://github.com/res0nat0r/gitosis.git

    在Linux下搭建Git服务器

    导读:众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥...

    详解在Linux下搭建Git服务器

    众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是...

    Git权威指南

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    Git-2.9.2-64-bit(GIT for windows)

    作为开源自由原教旨主义项目,Git没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis, CodeBeamer MR。原本Git的使用范围只适用于Linux / Unix平台,但在Windows平台...

    Git权威指南【样张】

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    使用Gitolite搭建轻量级的Git服务器

    在Git服务管理工具这个领域,主要有三种流行的方案,它们分别是:1.Gitosis-轻量级,开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。2.Gitolite-轻量级,开源项目,使用SSH...

    gitosis install

    gitosis 安装详情 gitosis install

Global site tag (gtag.js) - Google Analytics