设为首页 收藏本站
查看: 1422|回复: 0

[经验分享] Win 7下安装 Gitosis (Windows下的 git 服务器)

[复制链接]

尚未签到

发表于 2015-5-9 11:55:03 | 显示全部楼层 |阅读模式
  Gitosis 是一个使用SSH管理Git仓库的服务端工具,有意思的是,该软件用来添加用户和设定权限的界面不是网页,而是一个特殊的 Git 仓库。你只需要设定好某个项目,然后推送,Gitosis 就会随之改变服务器设定,酷!
  在Linux下的安装方法已经非常成熟,上网Google一下就有很多,而在Windows下的安装则花了我不少功夫,只要是有时候碰到问题无从入手,以下将整个安装过程详细记录下来。
  总体分为如下几大步骤:
  一)下载安装Cygwin
  1)到http://www.cygwin.com/官方网站下载 Cygwin 的在线安装程序 setup.exe。
  2)以管理员身份运行setup.exe开始安装Cygwin
DSC0000.jpg
  3)Cygwin安装过程截图
  点击下一步继续
DSC0001.png
  选择“Install from Internet”
DSC0002.png
  设置Cygwin的安装路径Root Directory,选择“All Users(RECOMMENDED)”
DSC0003.png
  设置Cygwin在线下载的数据包的保存路径Local Package Directory
DSC0004.png
  选择“Direct Connection”
DSC0005.png
  选择下载文件的镜像地址后点击下一步(选择不同的地址会影响下载速度)
DSC0006.png
  开始下载相关数据包
DSC0007.png
  如果是首次安装Cygwin,将会弹出如下界面,点击确定继续即可
DSC0008.png
  选择默认并没有包含的相应包,包括:

  • devel 分类下的 git
  • net 分类下的 openssh
  • Python 分类下的 python(这里顺便记录一下python的版本号,后面会用到,如2.6)
  • DSC0009.png
  点击下一步继续
DSC00010.png
  到了漫长的下载等待界面了
DSC00011.png
  点击完成后Cygwin就安装完毕了
DSC00012.png
  二)修改安装后相关目录的访问权限
  进入“开始/所有程序/Cygwin/Cygwin Bash Shell”,右键以管理员身份运行“Cygwin Bash Shell”,在命令行中分别运行如下命令:

  $ chmod +r /etc/passwd
$ chmod u+w /etc/passwd
$ chmod +r /etc/group
$ chmod u+w /etc/group
  运行的截图如下:
DSC00013.png
  三)安装 ssh 守护进程服务
  继续执行如下命令:

  $ ssh-host-config
  根据命令的提示分别回答:yes、yes、yes、ntsec tty、no、yes、[密码]、[重复密码],参考如下截图:
DSC00014.png
  至此ssh服务安装完毕!
  打开Windows的命令行,运行“> net start sshd”启动ssh服务(也可以到Windows服务中启动)。
  
  四)在Windows防火墙内开放上述 ssh 服务需要的22端口
  进入“控制面板/系统与安全/Windows防火墙/高级设置(在左边栏)”,添加新的入站规则:
DSC00015.png
DSC00016.png
DSC00017.png
DSC00018.png
DSC00019.png
  名称可以根据自己的喜好相应修改。
  
  五)安装python setuptools
  先设置python路径的访问权限,保证所有用户都可以访问:

  $ chmod +r /lib/python2.6/ -R
  2.6是所安装python的版本号,要对上你安装的版本号才行,我装的时候是2.6,如果忘记了,可以在Cygwin的命令终端输入“$ python -v”查看一下。
  
  到 Python Package Index 主页下载对应版本的python setuptools,如2.6版对应要下载 setuptools-0.6c11-py2.6.egg。
  将setuptools-0.6c11-py2.6.egg复制到/home/your_user_name目录下(也可以按自己的需要复制到其它地方,注意下面的运行路径正确即可),然后在该目录的Cygwin终端下运行如下命令安装:

  $ ./setuptools-0.6c11-py2.6.egg
  看到输出类似如下的信息就表示安装成功了:

  Processing setuptools-0.6c11-py2.6.egg
Copying setuptools-0.6c11-py2.6.egg to /usr/lib/python2.6/site-packages
Adding setuptools 0.6c11 to easy-install.pth file
Installing easy_install script to /usr/bin
Installing easy_install-2.6 script to /usr/bin

Installed /usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11
  
  六)安装配置Gitosis
  1) 运行如下命令将Gitosis管理端的git仓库下载下来:

  $ mkdir sources
$ cd sources  
$ git clone git://eagain.net/gitosis.git
  2) 下载成功后再运行如下命令进行初始化:

  $ cd gitosis  
$ python setup.py install
  这将会输出一大堆的信息,如果没有出现问题,最后那一行输出的信息类似于“Finished processing dependencies for gitosis==0.2”。
  
  3) 到“控制面板/用户帐户和家庭安全”添加一个账户名称为“git”的帐号,密码自定,类型选标准用户即可。
  
  4) 继续在Cygwin终端运行如下命令,将刚添加的git帐号添加到Cygwin的passwd文件:

  $ mkpasswd -l -u git >> /etc/passwd
  再使用你喜欢的任何方式查看一下passwd文件(文件的最后那一行),确认git帐号已经添加进去。
  
  5) 拷贝你的公钥文件到目录“/tmp/id_rsa.pub”,再在终端运行“$ chmod 755 /tmp/id_rsa.pub”修改文件的权限
  如果你还没有相应的公钥,就自己生成一个,参考GitHub Guide上的“Set Up SSH Keys”指引或参考基于互联网的Git开发环境搭建(Windows系统)中第3点“ 生成 Git 要使用的 ssh key”的相关指引。
  6)以git用户打开一个新的Cygwin终端(如下图所示,位置在开始/所有程序/Cygwin)
DSC00020.png
  在该终端内运行如下命令初始化公钥的配置:

  $ gitosis-init < /tmp/id_rsa.pub
  如果你运气好的话,成功后你将会看到如下信息:
DSC00021.png
  如果出现错误,参考下面第7步的处理
  7)如果第6步出现类似如下错误信息:
  0 [main] python 4268 D:\cygwin\bin\python.exe: *** fatal error - unable to remap \\?\D:\cygwin\lib\python2.6\lib-dynload\select.dll to same address as parent: 0x3E0000 != 0x410000
DSC00022.png
  按如下说明处理:
  关闭所有当前打开的所有Cygwin终端窗口,停止sshd服务,然后打开Windows的CMD命令行窗口,切换到cygwin/bin目录,运行ash命令,会出现$命令行,继续输入“$ /bin/rebaseall”,如果没有任何错误信息就OK了,参考如下截图:
DSC00023.png
  错误处理完毕后,重新启动sshd服务,再按上面第6步重新操作一遍即可。
  
  8)切换回以管理员身份打开的那个Cygwin终端窗口(如果因第7步已经关闭则重新打开一个),运行如下命令

  $ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
  至此Gitosis成功安装完毕!
  
  七)使用Gitosis
  1)将Gitosis管理端的git仓库检出来,位置随意

  $ git clone git@your-server-name:gitosis-admin.git
  以下尝试创建一个test仓库,并配置访问权限。
  2)进入刚刚检出的目录gitosis-admin,编辑gitosis.conf文件,增加如下信息:

  [group test]
writable = test
members = your_email_from_ssh_key
  保存,并提交、push到gitosis-admin.git仓库。
  
  3)在你喜欢的地方创建一个空目录test,里面放个readme.txt文件,然后打开Git Bash终端,进入到test目录内运行如下命令,test.git仓库就会在服务端自动创建了(注意经过第2步后是不能直接"$ git clone"出来的,会报错,必须自己有个非空的git仓库然后push上去才行)。

  $ git add .
$ git init
$ git commit -m init
$ git remote add origin git@your-server:test.git
$ git push origin master
  现在你到“cygwin\home\git\repositories”目录下看看,test.git仓库已经稳放在那里了!
  test仓库只是一个原理演示,任何其他的git仓库操作是类似的。
  
  
  参考资料:
  Setting up Gitosis on Windows 7
  python.exe: *** fatal error - unable to remap
  Git 服务器软件 gitosis 的改进
  Pro Git:服务器上的Git 权限管理器Gitosis
  Gitosis自身的Readme
  
  还有个git仓库管理工具叫gitolite,用perl写的,听说可以控制到分支的权限等更多功能,有兴趣的可以参考一下下面的链接:
  Gitolite 构建 Git 服务器
  
  碰到的错误记录:
  12011-05-27 启动sshd服务报错 "错误1069:由于登录失败而无法启动服务"
  这是由于用户密码错误导致的,以后更改用户后sshd也可能发生这个问题,在 services.msc 里的登录标签里更改用户设置即可!
  我刚好是碰到帐号cyg_server处于"用户下次登录时须更改密码"状态,修改为"密码永不过期"后sshd就启动正常了。
DSC00024.png
DSC00025.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65218-1-1.html 上篇帖子: 在Windows 7中配置git私有源 下篇帖子: 一步步在GitHub上创建博客主页(7)--兼容Windows Writer的服务提供器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表