以下是Linux服务器上安装Git服务的详细步骤,涵盖不同发行版和源码编译方式,以CentOS和Ubuntu为例: 一、源码编译安装(最新版适用) 卸载旧版(如预装低版本) sudo yum remove git -y # CentOS sudo apt purge git -y # Ubuntu
安装编译依赖 # CentOS sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y # Ubuntu sudo apt install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev make gcc -y
下载并编译源码 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz tar -zxvf git-2.9.5.tar.gz cd git-2.9.5 make prefix=/usr/local all # 指定安装路径 sudo make prefix=/usr/local install # 安装到系统目录
三、配置Git服务端 创建专用Git用户(安全隔离) sudo adduser --system --shell /bin/bash --create-home --home-dir /home/git git sudo passwd by@123456 # 设置密码 初始化仓库 sudo su - git mkdir -p ~/repositories/project.git cd ~/repositories/project.git git init --bare # 创建裸仓库(无工作区)
四、客户端连接测试 本地克隆仓库命令 git clone git@服务器IP:/home/git/repositories/project.git
解决权限问题 确保客户端公钥已加入/home/git/.ssh/authorized_keys 权限检查
chmod 700 /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys 五、常见问题处理 (1)make编译失败 检查依赖包是否完整安装(如zlib-devel) (2)SSH连接提示Permission denied 确认sshd_config中PermitRootLogin no和PubkeyAuthentication yes (3)命令未找到(git: command not found) 检查PATH是否包含/usr/local/bin,或创建软链接ln -s /usr/local/bin/git /usr/bin/git