设为首页 收藏本站
查看: 1436|回复: 1

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

[复制链接]

尚未签到

发表于 2018-9-18 12:27:48 | 显示全部楼层 |阅读模式
  原文链接:http://www.cnblogs.com/ytliyang/archive/2012/02/12/2347987.html
  Gitosis 是一个使用SSH管理Git仓库的服务端工具,有意思的是,该软件用来添加用户和设定权限的界面不是网页,而是一个特殊的 Git 仓库。你只需要设定好某个项目,然后推送,Gitosis 就会随之改变服务器设定,酷!
  在Linux下的安装方法已经非常成熟,上网Google一下就有很多,而在Windows下的安装则花了我不少功夫,只要是有时候碰到问题无从入手,以下将整个安装过程详细记录下来。
  总体分为如下几大步骤:
  一)下载安装Cygwin
  1)到http://www.cygwin.com/官方网站下载 Cygwin 的在线安装程序 setup.exe。
  2)以管理员身份运行setup.exe开始安装Cygwin

  3)Cygwin安装过程截图
  点击下一步继续

  选择“Install from Internet”

  设置Cygwin的安装路径Root Directory,选择“All Users(RECOMMENDED)”

  设置Cygwin在线下载的数据包的保存路径Local Package Directory

  选择“Direct Connection”

  选择下载文件的镜像地址后点击下一步(选择不同的地址会影响下载速度)

  开始下载相关数据包

  如果是首次安装Cygwin,将会弹出如下界面,点击确定继续即可

  选择默认并没有包含的相应包,包括:

  • devel 分类下的 git
  • net 分类下的 openssh
  • Python 分类下的 python(这里顺便记录一下python的版本号,后面会用到,如2.6)

  点击下一步继续

  到了漫长的下载等待界面了

  点击完成后Cygwin就安装完毕了

  二)修改安装后相关目录的访问权限
  进入“开始/所有程序/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
  运行的截图如下:

  三)安装 ssh 守护进程服务
  继续执行如下命令:
  $ ssh-host-config
  根据命令的提示分别回答:yes、yes、yes、ntsec tty、no、yes、[密码]、[重复密码],参考如下截图:

  至此ssh服务安装完毕!
  打开Windows的命令行,运行“> net start sshd”启动ssh服务(也可以到Windows服务中启动)。
  四)在Windows防火墙内开放上述 ssh 服务需要的22端口
  进入“控制面板/系统与安全/Windows防火墙/高级设置(在左边栏)”,添加新的入站规则:





  名称可以根据自己的喜好相应修改。
  五)安装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)

  在该终端内运行如下命令初始化公钥的配置:
  $ gitosis-init < /tmp/id_rsa.pub
  如果你运气好的话,成功后你将会看到如下信息:

  如果出现错误,参考下面第7步的处理
  7)如果第6步出现类&#20284;如下错误信息:
  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

  按如下说明处理:
  关闭所有当前打开的所有Cygwin终端窗口,停止sshd服务,然后打开Windows的CMD命令行窗口,切换到cygwin/bin目录,运行 ash命令,会出现$命令行,继续输入“$ /bin/rebaseall”,如果没有任何错误信息就OK了,参考如下截图:

  错误处理完毕后,重新启动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步后是不能直接&quot;$ git clone&quot;出来的,会报错,必须自己有个非空的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仓库操作是类&#20284;的。
  参考资料:
  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 服务器
  碰到的错误记录:
  1)2011-05-27 启动sshd服务报错 &quot;错误1069:由于登录失败而无法启动服务&quot;
  这是由于用户密码错误导致的,以后更改用户后sshd也可能发生这个问题,在 services.msc 里的登录标签里更改用户设置即可!
  我刚好是碰到帐号cyg_server处于&quot;用户下次登录时须更改密码&quot;状态,修改为&quot;密码永不过期&quot;后sshd就启动正常了。




运维网声明 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-589824-1-1.html 上篇帖子: Pro Git翻译——第一章、第二章 下篇帖子: 使用gitosis和tortoisegit打造自己的git服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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