博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
debian安装git服务器——gitosis(sina博客移入)
阅读量:5829 次
发布时间:2019-06-18

本文共 2187 字,大约阅读时间需要 7 分钟。

前段时间一直在用google code,大概了解了svn的使用方法(其实也没有怎么了解,因为使用了eclipse的svn插件,没有手动使用svn命令过)。想在家里的龙芯上也弄个版本管理软件,这样既可以控制平时写的软件的版本,同时也实现了对这些程序的备份。

以前在自己的电脑上搭建过svn服务器,所以这次想尝试一下搭建git的服务器。git是分布式的版本控制软件,因此本身没有很强的服务器概念。因此选择了gitosis这个软件。
安装这个软件非常方便,直接用apt-get就可以了,很久没有刷新软件源了,导致第一次安装没有成功,重新刷新一下就好了。安装完之后,按照http://en.gentoo-wiki.com/wiki/Gitosis这篇wiki的指示配置gitosis。不过其中有一点需要说明的是,debian安装的gitosis创建的组和用户都是gitosis,因此wiki上描述的远程路径帐户名都要改为gitosis。
在本地用ssh-keygen生成一对密钥对之后,把公钥上传到龙芯上,然后用那把公钥初始化版本库,这样我这台电脑就是这个版本库的拥有者了。初始化之后,就可以通过gitosis账户远程clone一个gitosis-admin.git版本库,里面有账户和代码库的设置,修改之后,先commit到本地,然后再push到远程版本库中。
在安装gitosis之前,apt建议我安装git-daemon-run和gitweb两个包,那就试试看好了。前面那个包好像是用runit程序进行管理的,现在还不清楚是怎么控制开启和关闭(在/etc/init.d文件夹下没有服务脚本),修改一下/etc/sv/git-daemon/run文件,把git-daemon启动参数改掉,其中的base-path改为版本库的路径,我这里是/srv/gitosis/repositories(gitosis账户的家目录是在/srv/gitosis),最后加上–export-all暴露所有的版本库。
然后安装gitweb,安装也很方便,配置起来麻烦了点。因为不会弄apache的虚拟主机,所以直接在原来的默认主机里进行配置。把gitweb安装在/usr/lib/cgi-bin中的gitweb.cgi复制到原来配置的cgi-bin路径(我这里是/srv/sgi-bin),把/usr/share/gitweb下的图片和css文件复制到apache默认主机的根目录(我把它们复制到了/srv/www/git文件夹下)。然后配置/etc/gitweb.conf,其中的$projectroot改为版本库的根路径(我这里是/srv/gitosis/repositories),所有图片和css文件的路径前面加上了”/git”(因为我把它们放在了默认主机的根目录下的git目录中)。最后修改apache的配置,debian的默认主机配置文件是/etc/apache2/sites-enabled/000-default,在虚拟主机项目下增加:
SetEnv GITWEB_CONFIG /etc/gitweb.conf
这样apache会去读取gitweb的配置文件,设置好相应的环境变量。

[cc lang=’apache’ escaped=’true” ]

<Directory “/srv/www/cgi-bin/gitweb”>
Options FollowSymlinks ExecCGI
Allow from all
AllowOverride all
Order allow,deny

<Files gitweb.cgi>

SetHandler cgi-script
< /Files>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* /gitweb.cgi/$0 [L,PT]
< /Directory>

[/cc]

[cc lang=’apache’ escaped=’true” ]

这段从网上抄来的设置,应该是改写url用的吧。
<Directory “/srv/gitosis/repositories”>
Allow from all
< /Directory>

[/cc]

这个应该是设置可以访问版本库根文件夹,但是这个设置好像没有用。
重新启动apache,访问xxx/cig-bin/gitweb.cgi,但是显示的是403错误,没有权限访问。不清楚为什么会这样,把整个版本库根文件夹访问权限改为755就可以显示了。
最后照着样子自己本地初始化git版本库,然后放到远程的版本库中。初始化是成功的,在gitweb页面中也可以看见。但是修改之后commit,然后再push的时候,报错project description file hasn’t been set。这个不知道怎么解决,网上搜索了下,说是要同时修改本地和远程的描述文件(.git/description),然后的确是可以提交了。先尝试到这里,以后继续。。。

转载自:https://coolex.info/blog/64.html

你可能感兴趣的文章
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
FreeMarker-Built-ins for strings
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
我理想中的前端工作流
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
Android状态栏实现沉浸式模式
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
zabbix监控php状态(四)
查看>>
实战Django:小型CMS Part2
查看>>
原创]windows server 2012 AD架构试验系列 – 16更改DC计算机名
查看>>
统治世界的十大算法
查看>>
SSH中调用另一action的方法(chain,redirect)
查看>>
表格排序
查看>>
关于Android四大组件的学习总结
查看>>
java只能的round,ceil,floor方法的使用
查看>>