ubuntu 安装git 服务器.docx
- 文档编号:11945415
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:9
- 大小:18.43KB
ubuntu 安装git 服务器.docx
《ubuntu 安装git 服务器.docx》由会员分享,可在线阅读,更多相关《ubuntu 安装git 服务器.docx(9页珍藏版)》请在冰豆网上搜索。
ubuntu安装git服务器
ubuntu安装git服务器
本文主要介绍了git服务端安装及应用,内容来自网络,我加以修改
(一)Git服务端
1.请使用apt-getupdate和apt-getupgrade命令更新当前系统,如果不更新,在后面安装一些程序的时候可能会出现某些依赖包没安装的现象。
2.安装OpenSSHServer(ubuntu)(当前用户为wirror800)
首先,使用ps-e|grepssh命令,检查本机上是否已经运行ssh服务。
如果没有,继续;否则,跳过此步骤。
执行命令:
sudoapt-getinstallopenssh-server
3.修改ssh服务端配置文件/etc/ssh/sshd_config(当前用户为wirror800)
Port22#修改成你想要的登陆端口,如2222
PermitRootLoginno#禁止root用户登陆
StrictModesyes#检查密钥的用户和权限是否正确,默认打开的
RSAAuthenticationyes#启用RSA认证
PubkeyAuthenticationyes#启用公钥认证
PasswordAuthenticationno#禁止密码认证,默认是打开的
ServerKeyBits1024#修改后变为此状态,将ServerKey强度改为1024比特
PermitEmptyPasswordsno#修改后变为此状态,禁止空密码进行登录
修改完成后,重启ssh服务:
sudo/etc/init.d/sshrestart
注意:
至此,服务端SSH的操作就已经结束了。
网上说的“id_rsa文件拷贝到Client端的~/.ssh/目录下,将id_rsa.pub拷贝到
Server端的~/.ssh/目录下,改名为authorized_keys”其实都是不准确的。
id_rsa是使用ssh-keygen生成的rsa私钥,id_rsa.pub
是同时生成的公钥,服务器端通信使用的秘钥可以应该由服务器管理员来创建和管理,如果你想把当前用户wirror800作为管理
员也是可以的,相关管理员的操作见本文第二部分。
不推荐在ubuntu服务器端建立管理员帐号。
建议大家参考一下OpenSSH的相关内容:
http:
//www.freebsd.org/doc/zh_CN/books/handbook/openssh.html
4.安装git(当前用户为wirror800)
sudoapt-getinstallgit-core
安装git过程中可能会遇到一些依赖包下载失败的情况,主要是由于ubuntu的中文站点访问的问题,我们可以到其英文站点
上下载相关文件并进行手动安装。
给大家一个链接地址:
5.安装gitosis(为什么要使用gitosis是大家首先需要明确的问题)(当前用户为wirror800)
(1)在你喜欢的位置下,新建一个文件夹,用来存放下载的gitosis文件,如
mkdir~/gitosis_setup
(2)安装gitosis
cd~/gitosis_setup
gitclonegit:
//
cdgitosis
sudopythonsetup.pyinstall
注意:
如果pythonsetup.pyinstall失败,需要安装python-setuptools.py
sudoapt-getinstallpython-setuptools
6.为gitosis创建系统用户(当前用户为wirror800)sudouseradd-mgit
sudopasswordgit
7.运行gitosis(当前用户为wirror800)
(1)将管理员生成的公钥上传或拷贝到服务器上。
这里的公钥需要在git服务器管理员下使用ssh-keygen-trsa命令来创建,
网上流传的方法是scp/yourpub_path/id_rsa.pub${SERVER_IP}:
id_rsa.pub。
我们这里使用的是直接U盘拷贝的方法。
(2)初始化gitosis
进入到拷贝过来的id_rsa.pub所在目录:
cd/tmp
sudochmod777id_rsa.pub
sudo-H-ugitgitosis-init<id_rsa.pub(或者切换到git用户下执行gitosis-init<id_rsa.pub也可以,记得exit切换回当前用户)
此时,会在/home/git目录下生成一些目录,如果想要别人能够clonegitosis-admin.git,需要执行以下操作:
sudochmod755/home/git/repositories/gitosis-admin.git/hooks/post-update
至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上。
以下是关于gitweb的安装配置,
不需要的同学,请跳过下面的8~10步。
8.安装gitweb(当前用户为wirror800)
sudoapt-getinstallgitweb
9.安装apache2
sudoapt-getinstallapache2
10.配置gitweb(当前用户为wirror800)
(1)默认没有css加载,把gitweb要用的静态文件连接到DocumentRoot下:
cd/var/www/
sudoln-s/usr/share/gitweb/*.
(注意后面的点)
注意:
ubuntu不用修改可以跳过去直接访问http:
//yourip/gitwebyourip是你服务器ip
(2)修改配置:
sudovi/etc/gitweb.conf
将$projectroot改为gitosis-admin.git所在目录:
/home/git/repositories
(3)修改/home/git/repositories权限,默认情况下,gitosis将repositories权限设置为不可读的
sudochmod777-R/home/git/repositories
11.编辑apache2配置文件,建立web站点(当前用户为wirror800,默认情况下可以忽略此步骤)
(1)编辑apache2配置文件
ubuntu中默认的web目录是/var/www,默认的cgi目录是/usr/lib/cgi-bin/,安装完成gitweb后,gitweb的gitweb.cgi会自动放置
到该目录下。
如果你的cgi路径不是默认的/usr/lib/cgi-bin/,需要将gitweb安装在/usr/lib/cgi-bin中的gitweb.cgi复制到原来配置
的cgi-bin路径,并修改apache的配置文件/etc/apache2/apache.conf:
SetEnvGITWEB_CONFIG/etc/gitweb.conf
gitweb.conf配置文件形如:
(可自行修改,这里不做详细介绍)
<Directory"/srv/www/cgi-bin/gitweb">
OptionsFollowSymlinksExecCGI
Allowfromall
AllowOverrideall
Orderallow,deny<Filesgitweb.cgi>
SetHandlercgi-script
</Files>
RewriteEngineon
RewriteCond%{REQUEST_FILENAME}!
-f
RewriteCond%{REQUEST_FILENAME}!
-d
RewriteRule^.*/gitweb.cgi/$0[L,PT]
</Directory>
(2)重新启动apache:
sudo/etc/init.d/apache2restart,访问http:
//localhost/gitweb
(二)Git管理员(gitbash下运行)(在管理gitPC上,不一定在服务器上)1:
安装git具体方法和上边的一样
1.生成服务器管理员公钥。
执行命令ssh-keygen-trsa,操作时刻参照第一部分第7步,用于提供给服务器端初始化gitosis。
3.从服务器克隆gitosis-admin.git
首先选定目录,如/home/yourname/
然后,新建一个目录mkdirgitproject
gitclonegit@YOUR_SERVER:
gitosis-admin.git
(YOUR_SERVER可以是你的服务器名称或者ip,我这里的ubuntu的ip为192.168.1.102)
4.编辑gitosis.conf
cdgitosis-admin
你将看到以下文件gitosis.conf和keydir/,gitosis.conf是gitosis的配置文件,用于配置用户和权限,keydir/是所有组成员的
公钥。
vigitosis.conf,打开gitosis.conf文件,内容为:
[groupgitosis-admin]
writable=gitosis-admin
members=Administrator@LILIN
这个是管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名。
把内容修改为:
[gitosis]
gitweb=yes[groupgitosis-admin]
writable=gitosis-admin
members=Administrator@LILINwirror800@192.168.1.102[groupapps]
writable=apps
members=Administrator@LILINwirror800@192.168.1.102
其中gitweb=yes表示启用对gitweb的支持。
这里定义了一个叫apps的组,授予Administrator@LILIN和wirror800@192.168.1.102
两个用户写“apps”这个repo的权限
然后push到服务端后,服务器端就立刻生效。
gitcommit-a-m“createdanewrepository”
gitpush
这样就更新了服务端的权限。
5.创建一个app的repo
mkdirapps
cdapps
gitinit
6.创建、编辑.gitignore,用于忽略某些不需要进行代码管理的内容,如rails的应用可能如下:
.DS_Store
log/*.log
tmp/**/*
config/database.yml
db/*.sqlite3
7.编辑.git/description内容,加上apps的说明在gitweb中显示,介绍下项目,刚开始我也不知道这个干嘛的,后来打开web发现description是空的
8.提交代码
gitremoteaddorigingit@YOUR_SERVER:
apps.git
gitadd.
gitcommit-am"imitialimport"
gitpushoriginmaster:
refs/heads/master注意:
这是你的repositories中就会有app.git了,要chmod777app.git,这样gitweb中才能看到,另外要修改.git/config加上,否则gitpull是有问题
[branch"master"]
remote=origin
merge=refs/heads/master
增加其他分支gitbranchtestgitpushorgintest:
test修改.git/config
[branch"test"]
remote=origin
merge=refs/heads/test
9.增加成员的公钥到系统中
cd../gitosis-admin
cpmember_1.pubkeydir/
cpmember_2.pubkeydir/git
addkeydir/member_1.pubkeydir/member_2.pub
修改gitosis.conf,并提交
[groupapps]
-members=wirror800
+members=wirror800member_1member_2
writable=apps
gitcommit-a-m"Grantednewmemberscommitrightstoapps"
gitpush
10.其它成员获取apps的代码
gitclonegit@YOUR_SERVER:
apps.git11:
采用gitclonegit:
//yourip/app.git方式让所有人gitclonea:
sudoapt-getinstallgit-daemon-runb:
sudovi/etc/service/git-daemon/run"$(git--exec-path)"/git-daemon--verbose--export-all\
--base-path=/home/git/repositories/代替下边#"$(git--exec-path)"/git-daemon--verbose--reuseaddr\
#--base-path=/var/cache/var/cache/git
c:
sudosvdowngit-daemond:
sudosvupgit-daemon这样就可以gitclonegit:
//yourip/app.git*****************************************************************************************
三、常见问题
首先确定/home/git/repositories/gitosis-admin.git/hooks/post-update为可执行即属性为07551.git操作需要输入密码
原因公密未找到
解决上传id_pub.rsa到keydir并改为'gitosis帐号.pub'形式,如miao.pub。
扩展名.pub不可省略
2.ERROR:
gitosis.serve.main:
Repositoryreadaccessdenied
原因gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members=foo@bar,但keydir中的公密名却叫foo.pub
解决使keydir的名称与gitosis中members所指的名称一致。
改为members=foo或公密名称改为foo@bar.pub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ubuntu 安装git 服务器 安装 git