Linux高级运维(十一)-搭建GIT分布式版本控制系统 、 Git基础与进阶 、 RPM打包


aihuafeng66t
克里斯蒂亚诺诺 2024-01-11 18:50:49 52914 赞同 0 反对 0
分类: 资源 标签: 运维
Linux高级运维(十一)-搭建GIT分布式版本控制系统 、 Git基础与进阶 、 RPM打包

Operatioon 008 版本控制,Git基础, Git进阶,RPM打包

一 分布式版本控制系统
1 典型的C/S系统
2 任意数量客户端
3 客户端通过写数据库分享代码


集中式版本控制系统 ->SVN,CVS
1开发者之间共用一个仓库
2所有操作需要联网

分布式版本控制系统 ->GIT,Bitkeeper(收费)
每个开发者都是一个仓库的完整克隆,每个人都是服务器
支持断网操作
****************************************************************** 分支可以合并

二 分布式版本控制系统(主流)
GIT基本概念
Git仓库:保存所有数据的地方
工作区:从仓库中提取出的文件
暂存区:就是一个文件,保存了下次将要提交的文件列表信息


三 Git工作流程

在这里插入图片描述


一 GIT基础 ->安装部署GIT服务
1安装GIT
Yum -y install git
Git --version

2创建服务器版本仓库
->init可以初始化一个空仓库
Git init /var/git --bare
Ls /var/git

3 客户端访问
本地访问:Git clone file:///var/git
远程访问:git clone root@192.168.1.10:/var/git
Web访问:
1)服务端需要额外配置web服务器
2)客户端可以浏览器访问
3)Git clone http://服务器IP/Git仓库


二  客户端GIT命令工具

1 Git 支持的子命令
Clone ->将远程服务器仓库克隆到本地
Config ->修改git 配置
Add   ->提交到暂存区
Commit ->提交到本地仓库
Push  ->提交到远程服务器
Log ->查看历史日志
Config ->修改git配置
Add ->提交到本地暂存区
Commit ->提交到本地仓库
Status -->查看当前分支
Push -> 提交到远程仓库
Pull ->从远程下载
Log ->查看历史日志
Relog
Branch ->创建分支
Checkout ->切换分支
Merge ->合并分支


三 GIT HEAD 指针

1简介
  HEAD指针是一个可以再任何分支和版本移动的指针
  通过移动指针我们可以将数据还原到任何版本
2 Git 分支
在这里插入图片描述
 分支可以让开发多条直线同时进行,每条主线互不印象
 按功能模块分支,版本分支
 分支可以合并

MASTER分支(MASTER是主分支,是代码的核心)
DEVELOP分支(DEVELOP最新开发成果的分支)
RELEASE分支(为发布新产品设置的分支)
HOTFIX分支(为了修复软件BUG缺陷的分支)
FEATURE分支(为开发新功能设置的分支)


四 GIT 服务器

Git支持很多服务器协议形式,不同协议的Git服务器,客户端就可以使用不同的形式访问服务器。
创建的服务器协议有SSH协议、Git协议、HTTP协议。

1  SSH 协议

密码认证登录:
 服务器安装GIT
 使用git命令初始化版本仓库
 客户端使用ssh远程访问
SSH协议服务器(支持读写操作)

1)创建基于密码验证的SSH协议服务器(web1主机操作)。
[root@web1 ~]# git init --bare /var/git/base_ssh
Initialized empty Git repository in /var/git/base_ssh/

2)客户端访问的方式(web2主机操作)。
[root@web2 ~]# git clone root@192.168.2.100:/var/git/base_ssh
[root@web2 ~]# rm -rf base_ssh

3)客户端生成SSH密钥,实现免密码登陆git服务器(web2主机操作)。
[root@web2 ~]# ssh-keygen -f /root/.ssh/id_rsa -N ‘’  ->客户端生成ssh秘钥
[root@web2 ~]# ssh-copy-id 192.168.2.100     ->秘钥拷贝给git服务器
[root@web2 ~]# git clone root@192.168.2.100:/var/git/base_ssh
[root@web2 ~]# git push               ->上传

2 GIT协议
 
GIT协议访问支持无授权访问
1)安装git-daemon软件包(web1主机操作)。
[root@web1 ~]# yum -y install git-daemon

2)创建版本库(web1主机操作)。
[root@web1 ~]# git init --bare /var/lib/git/base_git ->必须在/var/lib/git 目录创建仓库
Initialized empty Git repository in /var/lib/git/base_git/

3)修改配置文件,启动git服务(web1主机操作)。
[root@web1 ~]# vim /usr/lib/systemd/system/git@.service
修改前内容如下:
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git
–export-all --user-path=public_git --syslog --inetd –verbose
修改后内容如下:
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/git
–export-all --user-path=public_git --syslog --inetd –verbose

[root@web1 ~]# systemctl start git.socket

4)客户端访问方式(web2主机操作)
[root@web2 ~]# git clone git://192.168.2.100/base_git

3 HTTP协议
支持浏览器访问

1)服务器安装gitweb httpd软件包

[root@web1 ~]# yum -y install httpd gitweb
2)修改配置文件,设置仓库根目录(web1主机操作)。
[root@web1 ~]# vim +11 /etc/gitweb.conf
$projectroot = “/var/git”; #添加一行

  1. 创建版本仓库(web1主机操作)
    [root@web1 ~]# git init --bare /var/git/base_http
    =
    4)启动httpd服务器
    [root@web1 ~]# systemctl start httpd

5)客户端访问方式(web2主机操作)
注意:调用虚拟机中的firefox浏览器,需要在远程时使用ssh -X 服务器IP,并且确保真实主机的firefox已经关闭。
[root@web2 ~]# firefox http://192.168.2.100/git/


注册Github使用
Github 是一个面向开源及私有的软件项目托管平台
因为值支持git作为唯一的版本库格式进行托管,所以叫github
2008年上线
在这里插入图片描述


五 软件RPM打包

1 应用场景
 
 官方未提供rpm包
 官方RPM无法定义
 大量源码包,希望提供统一的软件管理机制

2 打包流程
 
准备源码软件
安装rpm-build
编写编译配置文件
编译rpm包


一 安装rpm-build
Yum -y install rpm-build
Rpmbuild -ba test.spec
Ls

二 准备源码软件
将源码包复制到rpmbuild子目录
Cp nginx-1.12.2.tar.gz rpmbuild/SOURCES

三 编写编译配置文件
   新建SPEC文件
   在这里插入图片描述
Vim /root/rpmbuild/SPECS/nignx.spec

Name:hello 软件名称
Version: 软件版本
Release:1 rpm版本
Summary: 描述
License : 协议
Group: 软件组
URL      网址
Source0 源码文件
Buildroot 临时编译目录

Vim /root/rpmbuild/SPECS/nginx.spec
buildRequires 编译时依赖包
Requires 安装时依赖包
%description 详细描述
%prep 安装前准备,解压
%setup -q 系统使用setup自动解压,安静模式
%build 编译时需要执行的命令
Make
%configure 配置时需要执行的命令
Make %(_smp_mflags)
%install 安装时需要执行的指令
Rm -rf %{buildroot}
Make install DESDIR =%{buildroot}

%clean 清理时需要执行的指令
Rm -rf%{buildroot}
%files 定义打包文件列表
%defattr
%doc
%changlog 软件修改历史

四 编译RPM包

使用SPEC文件编译RPM包
Rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec

安装测试RPM包
Rpm -qpi xxx.rpm
Rpm -qpl xxx.rpm
Rpm -ivh xxx.rpm


步骤一:安装rpm-build软件

1)安装rpm-build软件包
[root@web1 ~]# yum -y install rpm-build
2)生成rpmbuild目录结构
[root@web1 ~]# rpmbuild -ba nginx.spec //会报错,没有文件或目录
[root@web1 ~]# ls /root/rpmbuild //自动生成的目录结构
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
3)准备工作,将源码软件复制到SOURCES目录
[root@web1 ~]# cp nginx-1.12.2.tar.gz /root/rpmbuild/SOURCES/
4)创建并修改SPEC配置文件
[root@web1 ~]# vim /root/rpmbuild/SPECS/nginx.spec
Name:nginx #源码包软件名称
Version:1.12.2 #源码包软件的版本号
Release: 10 #制作的RPM包版本号
Summary: Nginx is a web server software. #RPM软件的概述
License:GPL #软件的协议
URL: www.test.com #网址
Source0:nginx-1.12.2.tar.gz #源码包文件的全称
#BuildRequires: #制作RPM时的依赖关系
#Requires: #安装RPM时的依赖关系
%description
nginx [engine x] is an HTTP and reverse proxy server. #软件的详细描述
%post
useradd nginx #非必需操作:安装后脚本(创建账户)
%prep
%setup -q #自动解压源码包,并cd进入目录
%build
./configure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/* #对哪些文件与目录打包
%changelog

步骤二:使用配置文件创建RPM包

1)安装依赖软件包
[root@web1 ~]# yum -y install gcc pcre-devel openssl-devel
2)rpmbuild创建RPM软件包
[root@web1 ~]# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
[root@web1 ~]# ls /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm

步骤三:安装、卸载软件

[root@web1 ~]# rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm
[root@web1 ~]# rpm -qa |grep nginx
[root@web1 ~]# /usr/local/nginx/sbin/nginx
[root@web1 ~]# curl http://127.0.0.1/

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
克里斯蒂亚诺诺L1
粉丝 0 资源 831 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  117
银河麒麟桌面操作系统安装佳能打印机驱动方法  109
银河麒麟桌面操作系统 V10-SP1用户密码修改  102
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!