linux 版本控制及rpm打包
版本控制
subversion:
是一个自由/开源的版本控制系统,
在subversion管理下,文件和目录可以超越时空
subversion允许你数据恢复到早期版本,或者是检查数据修改历史
许多人将版本控制系统当成一种神奇的时间机器
subversion架构
客户端:
命令行
图形
通信方式:
本地访问
svn服务器
web服务
仓库存储:
文件系统
数据库
版本库:
典型的客户/服务器系统
版本库是版本控制的核心
任意数量客户端
客户端通过写数据库分享代码
subversion特点:
记录每一次改变
版本模型:
版本控制系统的核心任务是协作编辑和数据共享
subversion控制系统使用拷贝-修改-合并模型
每个客户链接版本库,并建立个人工作副本
用户并行工作,修改自己的副本,最终,合并副本
个别冲突问题,需要人为手动解决
————————————————————————————————————————————————————
svn基础
服务器设置
安装subversion
[root@web ~]# yum -y install subversion
创建版本库
利用svnadmin命令可创建服务器版本库
subversion版本库管理工具,帮助:svnadmin help
用法:svnadmin 命令 /版本库路径 [选项]
命令:create,创建一个新的版本库
[root@web ~]# mkdir /var/svn/(生成目录)
[root@web ~]# svnadmin create /var/svn/project(生成仓库)
[root@web init.d]# svn import /etc/rc.d/init.d/* file:///var/svn/project -m "first"(测试把代码导入(import)到仓库-m 随便写一些注释信息)
认证与授权
[root@web ]# vim/var/svn/project/conf/svnserve.conf(主配置文件)
anon-access = none(匿名用户没任何权限)
auth-access = write(认证用户可读可写)
。。。。。
password-db = passwd(用户密码文件)
authz-db = authz(访问权限)
[root@web ]# vim/var/svn/project/conf/passwd(用户密码文件)
[users]
hydra = 123456(用户名 密码)
tom = 123456
[root@web ~]# vim /var/svn/project/conf/authz (访问权限)
users = hydra,tom(添加用户)
[/](根下的目录)
@users = rw(用户可读可写)
svnserver服务
svnserver命令即可开启svn服务进程
-d(以守护进程方式运行svnserver)
--listen-port=port(监听的端口,默认端口为3690)
-r(设置一个虚拟路径,默认客户机要,不指定虚拟路径,会默认将所有版本库发布至网络)
[root@web ~]# svnserve -d -r /var/svn/project/(指定project版本库发布)
[root@web ~]# netstat -nutlp | grep svn(查看服务起没起)
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 27821/svnserve
[root@web ~]# svn list file:///var/svn/project/(测试本地访问)
客户端命令行工具:
svn命令 [选项]
--password:密码
--username:用户名
--revision:指定要检查的特定版本
客户端测试访问
[root@web2 ~]# svn --username hydra --password 123456 co svn://192.168.2.100/ /var/tmp/mydaima(客户机访问测试)
[root@web2 ~]# cd /var/tmp/mydaima
。。。。。。
[root@web2 mydaima]# vim sshd(测试改代码)
[root@web2 mydaima]# svn commit -m "sshd"(提交代码commit提交)
[root@web2 svn]# svn -r2 co svn://192.168.2.100/xx2(将版本库的第二个版本下载到本地)
[root@web mydaima]# svn update(更新服务器的东西到本地)
[root@web2 mydaima]# svn log svn://192.168.2.100/(查看修改日志)
[root@web2 mydaima ~]# svn info svn://192.168.2.100/(查看版本仓库信息)
[root@web2 mydaima~]# svn add test.sh(创建一个脚本)
[root@web2 mydaima ~]# svn commit -m "add test"(提交test.sh脚本)
[root@web2 mydaima]# svn rm sshd(删除)
[root@web2 mydaima]# svn commit -m 'rm sshd'(提交)
[root@web2 mydaima]# svn diff(对比和服务器上的数据)
[root@web2 mydaima]# svn revert mysqld(恢复)
[root@web2 mydaima]# svn merge -r 10:5 netfs(从10个版本还原到5版本)
备份版本库
[root@web svn]# svnadmin dump /var/svn/project > log(dump备份)
[root@web svn]# svnadmin create /var/svn/project2(创建新的)
[root@web svn]# svnadmin load /var/svn/project2 < project(load还原)
——————————————————————————————————————————————————————————————
rpm打包
官方没提供rpm包,官方rpm无法自定义,
大量源码包,希望提供统一的软件管理机制
源码包分析
源码
库文件
makefile文件
rpm包构成
metadata(元数据)
版本,软件名称,依赖关系,发布日期
file(文件)
rpm所需所有文件的打包文件
scripts(脚本)
安装后,卸载后需要运行的脚本
打包流程:
准备源码软件
安装rpm-build
编译rpm包
测试打包(需要工具rpmbuild)
[root@web2 ~]# yum -y install rpm-build
[root@web2 ~]# rpmbuild -ba hydra.spec(随便加一个文件名,会自动生成一个目录)
[root@web2 ~]# ls
rpmbuild
[root@web2 rpmbuild]# ls
BUILD 临时目录
BUILDROOT 假根
RPMS 生成后的rpm包
SOURCES 放源码
SPECS 如何编译
SRPMS 源码rpm包
[root@web2 rpmbuild]# cp /root/lnmp_soft/nginx-1.8.0.tar.gz /root/rpmbuild//SOURCES/(找个包测试,放到源码包目录下)
[root@web2 SPECS]# vim nginx.spec(新建一个spce文件)
Name:nginx(名字)
Version:1.8.0(nginx版本)
Release:1.0(rpm版本)
Summary:nginx http server(服务)
#Group:(不想写可以注释)
License:GPL(GPL协议)
URL:www.nginx.net(网址)
Source0:nginx-1.8.0.tar.gz(要写成和外面的nginx的名字一样)
#BuildRequires:
#Requires:
%description(软件信息)
%prep
%setup -q(解压)
%build
./configure(指定安装目录。安装模块)
make %{?_smp_mflags}
%install
%make_install
%files
%doc(对谁打包)
/*
[root@web2 ~]# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec(在虚拟根安装一遍)
[root@web2 ~]# ls /root/rpmbuild/RPMS/x86_64(查看打包好的程序)
nginx-1.8.0-1.0.x86_64.rpm nginx-debuginfo-1.8.0-1.0.x86_64.rpm
找客户机安装测试
————————————————————————————————————————————————————————————————
linux 版本控制及rpm打包的更多相关文章
- 在Linux下通过rpm打包发布Java程序
这个东西涉及的内容较多,根据下面这些文章慢慢学习 一个简单的例子 http://blog.csdn.net/king_on/article/details/7169384 按照文章中的步骤来,打包之后 ...
- 版本控制,svn基础,实战案例,RPM打包
版本控制,svn基础,实战案例,RPM打包 案例1:Subversion基本操作 案例2:使用Subver ...
- Centos6_64 rpm打包实践
安装rpmbuild sudo yum install rpm-build 普通用户的配置 /home/you/rpmbuild/ 假设是要构建rpm的目录 先说说rpmbuild有什么用,给一个例子 ...
- rpm打包过程
[需求] 接触那么久的Linux,还没有试验过怎么打rpm包 [过程] 1.rpm打包准备工作 系统默认的rpmbuild的相关路径
- RPM打包原理、示例、详解及备查
原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...
- RPM打包原理、示例、详解及备查( 转)
RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ...
- 用 RPM 打包软件,第 1 部分
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/ RPM(Red Hat Package Manager ...
- Rpm打包程序
1.Rpm打包程序1.1为什么要使用rpm打包1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长.2.yum安装软件 ...
- 第五部分 linux 软件安装RPM SRPM与YUM
第五部分 linux 软件安装RPM SRPM与YUM 软件管理员简介 RPM与DPKG两大主流 rpm: redhat centos suse 命令:yum ...
随机推荐
- java IO(三):字符流
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 微信开发获取media_id错误码汇总
微信开发遇到的错误汇总: 1. 错误代码40001 "errcode": 40001, "errmsg": "invalid credentia ...
- mysql与nagios的结合使用
一. 对mysql建库建表,并测试数据 基本信息:库名:nh_nagios表名:nagios_alerts [root@nhserver2 ~]# mysql -u root -pEnter pass ...
- Sql Server的艺术(五) SQL UNION与UNION JOIN运算符
学习本节所用表: CREATE TABLE TEACHER ( ID INT IDENTITY (,) PRIMARY KEY , --主键,自增长 TNO INT NOT NULL, --教工号 T ...
- 使用H2数据库进行单元测试
背景 H2 数据库是一个开源的嵌入型内存数据库,采用纯Java语言实现: 程序非常小巧轻便,整个完整的Jar包也只有1.5M左右,很容易集成到项目中. 官网地址 http://www.h2databa ...
- 用ASOS建立自定义的OpenID 服务(一)-----------简介
翻译文章 原文地址 这一系列共包括9个部分,这是第一部分,下面是英文原文地址: Introduction Choosing the right flow(s) Registering the midd ...
- C# Sap Rfc 连接代码实例
根据不同的需求,安装不同位数的 Rfc SDK 1.构造 Sap Adress Information,且继承 IDestinationConfiguration public class SapAd ...
- Jmockit之mock特性详解
本文是Jmockit学习过程中,根据官网所列的工具特性进行解读. 1.调用次数约束(Invocation count constraints) 可以通过调用计数约束来指定预期和/或允许匹配给定期望的调 ...
- ASP.NET控件GridView的使用& Xml操作注意事项
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6729478.html 文章主要内容 ...
- ABP官方文档翻译 4.1 应用服务
应用服务 IApplicationService接口 ApplicationService类 CrudService和AsyncCrudAppService类 简单的CRUD应用服务示例 自定义CRU ...