【转载请注明原文链接: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 系统上安装和配置 Git 服务器的步骤,包括安装 OpenSSH Server、配置 SSH 服务端、安装 Git、安装 Gitosis、创建系统用户和运行 Gitosis 等内容。 一、安装 OpenSSH Server 为了确保 SSH ...
### Ubuntu 完整安装 Git 服务器知识点解析 #### 一、环境准备 - **系统版本**: Ubuntu 12.04 - **服务器IP**: 192.168.1.100 - **服务器用户名**: lrc - **客户端IP**: 192.168.1.101 - **客户端用户名**: rein - ...
本文详细介绍了在Ubuntu系统下搭建和使用Git服务器的步骤,包括准备环境、安装ssh-server、安装git-core、安装gitosis、创建系统用户、运行gitosis、Git服务器管理员克隆仓库和修改gitosis.conf权限文档等方面的知识...
本文主要介绍了 Git 服务器端安装及应用,包括安装 OpenSSH Server、配置 SSH 服务端、安装 Git、安装 Gitosis、创建系统用户和运行 Gitosis 等步骤。 一、安装 OpenSSH Server OpenSSH Server 是一个自由和开源的...
在Ubuntu系统中搭建Git服务器,特别是使用gitosis作为版本控制系统管理工具,是一个常见的做法,尤其适合小型团队或个人开发者协作项目。以下将详细介绍这个过程。 首先,我们需要进行一些准备工作。在Mac上安装...
Gitosis则是方便通过Git与ssh架设中央服务器的软件。这篇文章的安装流程写得很明了,但使用中还是遇到了些许问题,本文算是该流程的补充。如果打算通过Gitosis架设服务器通过本文或许可以少走不少弯路。 一、架设...
在Ubuntu系统中搭建Git服务器,特别是使用gitosis作为版本控制系统管理工具,是一个常见的需求,尤其对于软件开发团队来说。Gitosis允许你集中管理和控制多个Git仓库,并为不同的用户或用户组设置权限。以下是一个...
### CentOS下的Git服务器:Gitosis 安装与配置详解 #### 一、Git与Gitosis简介 Git是一款非常流行的分布式版本控制系统,最初由Linux内核的开发者Linus Torvalds为了更好地管理Linux内核的开发而创建。Git因其高效...
在本文中,我们将详细介绍如何在 Linux 系统中安装和配置 Git 环境,包括设置用户权限、安装 Git、配置 Git 账号、初始化 Gitosis、配置 Git 服务选项等内容。 一、增加 yum repository 在 CentOS 中,要安装 Git ...
整个搭建过程可以分为七个步骤:安装 Ubuntu 系统、更新系统、安装 OpenSSH 服务器端、修改 SSH 配置文件、重启 SSH 服务、安装 Git 相关工具、安装 Gitosis。 详细来说,第一步是安装 Ubuntu 系统。在安装过程中,...
- 使用`sudo apt-get install git-core openssh-server openssh-client`命令在Ubuntu系统中安装Git核心工具、OpenSSH服务器和客户端。 - 这些工具是搭建Git服务器的基础,其中`git-core`包含了Git版本控制系统的...
总结,Git服务器配置涉及Git和Gitosis的安装与设置,主要目的是实现代码版本控制和团队协作。通过理解这些基础知识,你可以成功地搭建起一个安全的Git服务器,为项目提供高效且可控的代码管理环境。
接下来是编译和安装过程,这需要确保系统已经安装了必要的依赖库,如curl、zlib、openssl、expat等。在Linux环境下,可以使用`apt-get`或`yum`命令来安装这些依赖。然后进入解压后的源码目录,执行以下命令: 1. `....
在本文中,我们将介绍在Win32环境下安装和使用Git客户端的基本步骤。 安装Git客户端 首先,我们需要下载并安装Git客户端程序,例如Git-1.7.6-preview20110708.exe。安装模式选择缺省安装即可。 初始化用户信息 ...
首先,你需要在服务器上安装Git-1.7.12.2,这可以通过解压git-1.7.12.2.tar.gz并按照官方文档的指示进行编译和安装。接下来,为了设置SSH服务,你需要配置OpenSSH服务器,确保它能在你的系统上运行,并且正确地配置...
Git服务端的搭建需要多用户协作及其权限控制等功能,这需要用户管理权限控制组件的支持,目前这类组件主要有两类:Gitosis和Gitolite。 Gitosis起初功能强大,但于09年不再更新。 Gitolite原本是作为Gitosis的lite...
本文将指导读者从头开始搭建一个完整的代码评审服务器,使用 Git、Repo 和 Gerrit 等工具。本篇文章将详细介绍每个步骤的配置过程,旨在帮助读者快速搭建一个功能完善的代码服务器。 代码服务器搭建步骤 名词解释 ...
服务器上的 Git 涵盖了 Git 的协议、在服务器上部署 Git、生成 SSH 公钥、架设服务器、公共访问、GitWeb、Gitosis、Gitolite、Git 守护进程、Git 托管服务等内容。 五、分布式 Git 分布式 Git 是一种工作流程,它...
总的来说,构建Windows上的Git服务器和应用是一个涉及安装、配置和解决问题的过程,这有助于团队在Windows环境下协同开发和管理代码。了解这些步骤和解决常见问题的方法对于在Windows环境中使用Git至关重要。