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 web response提供文件下载功能
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 【转】linux grep命令
1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 2.格式 grep [options] 3.主要参数 [options]主要参数: - ...
- C之多线程(例子很不错)
1.线程 线程池是一个树状结构. 多线程解决并发问题. 一个线程内部的执行顺序是线性的.而线程之间是乱序的. 若要创建一个多线程程序,它的参数必须是空指针类型. 变色龙程序: #define _CRT ...
- LNMP之Nginx
Nginx初探 概念: Nginx是一款免费.开源.高性能的HTTP服务器和反向代理,同时也可作为邮件代理服务器.其因为高性能.稳定.丰富的功能集.配置简单和低系统资源消耗而闻名. Tengine是由 ...
- Spring Boot快速入门(最新)
本章通过完成Spring Boot基础项目的构建并实现一个简单的Http请求处理,让大家对Spring Boot有一个初步的了解,并体验其结构简单.开发快速的特性.预计阅读及演练过程将花费约5分钟. ...
- Python学习一:基础语法
---恢复内容开始--- 本博客主要记录学习Python的过程(按照金角大王老师课程学习),整理所学知识,扎实基础.如有错误,望批评指正. 1.Python所擅长的领域 Python是一门解释型语言, ...
- bzoj 4869: [Shoi2017]相逢是问候 [扩展欧拉定理 线段树]
4869: [Shoi2017]相逢是问候 题意:一个序列,支持区间\(a_i \leftarrow c^{a_i}\),区间求和.在模p意义下. 类似于开根操作,每次取phi在log次后就不变了. ...
- BZOJ 1923: [Sdoi2010]外星千足虫 [高斯消元XOR]
1923: [Sdoi2010]外星千足虫 对于 100%的数据,满足 N≤1,000,M≤2,000. 裸高斯消元解异或方程组 给定方程顺序要求用从上到下最少的方程,那么找主元时记录一下最远找到哪个 ...
- 关于.NET C#上传大文件的解决办法
1.最近在解决问题的时候遇到如何将视频以及语音和图片上传到阿里云的服务器中.但是遇到一些大文件就导致无法进行上传. 2.在将图片进行上传到阿里云的时候先将文件转化为二进制文件,然后通过文件流 的形式进 ...
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql' mysql> use mysql
show databases;select user,password,host from user;我们想通过 查看存在"mysql"数据库中的user表来查看我们的msql数据 ...