Linux 搭建Git
想了解Git 可以访问 http://git-scm.com,这里介绍CentOS下如何安装,如果不知道自己系统,请使用命令:cat /etc/redhat-release
依赖包
Git的依赖包:curl ,curl-deve,zlib-devel,openssl-devel,perl ,cpio ,expat-devel,gettext-devel
1.检查依赖包是否安装:rpm -qa | grep <包名>
,如果没有请安装:yum install <包名>
安装
yum install httpd git
如果不是想要的版本请卸载
yum erase git
下载源代码
到官网https://github.com/git/git/releases下载想要的版本,这里选2.2.0
wget https://github.com/git/git/archive/v2.2.0.tar.gz -o git.tar.gz
解压 并cd到源码目录
tar -xzvf git.tar.gz
cd git-*
预编译
在源码目录中编译
注:configure脚本做一些编译前检查,-prefix 用于指定生成的Makefile .Makefile将告诉make命令如何编译和安装git
make configure
./configure --prefix=/usr
也可以用autoconf脚本
autoconf
./configure --prefix=/usr
安装
到Mackfile目录编译安装
sudo make install
也可以这样装
make prefix=/usr all doc info
make prefix=/usr install install-doc install-html install-info
安装中的错误
makfile 报错
1.请安装:yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
2.安装docbook2x
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release*rpm
yum install docbook2X
cd /usr/bin
ln -s db2x_docbook2texi docbook2x-texi
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决办法是编辑/etc/yum.repos.d/epel.repo,把基础的恢复,镜像的地址注释掉
#baseurl
mirrorlist
改成
baseurl
#mirrorlist
如何升级git还没搞定,求指点
安装Gitosis
sudo apt-get install python-setuptools
mkdir ~/src
cd ~/src
git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
sudo python setup.py install
在客户端生成公钥
cd ~/.ssh(查看是否已经有SSH 公钥)
//生成公钥 默认使用rsa,也可以用dsa,rsa1 如命令:ssh-keygen -t dsa
ssh-keygen -f ~/.ssh/[file name]
/**添加公钥到服务器** 或者copy 到tmp目录**/
$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
/**copy命令**/
scp id_rsa.pub user@host:/tmp
1> authorized_keys文件的权限一定要修改为600
2> .ssh的文件如果是手动创建的话权限一定要修改为700
在服务器端追加公钥
su - git
gitosis-init < /tmp/id_rsa.pub
/**添加git 用户**/
sudo useradd git
su git
cd
mkdir .ssh
/**创建git仓库存储目录,并设置权限**/
sudo mkdir /home/git/repositories
sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories
su - git
gitosis-init < /tmp/id_rsa.pub
Git 学习资源