SVN和RPM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN和RPM相关的知识,希望对你有一定的参考价值。

          应用服务器

调度 应用服务器 mysql
应用服务器

防止单点【软件】
硬件【服务器,电源,机柜,交换机,路由】国家电网
UPS【不间断电源】20分钟-----4小时+发电机

nginx
httpd
mysql
java+tomcat+扩展 cp xx.jar /usr/local/ /tomcat/lib/ 你拷贝就安装好了
php+扩展 源码,rpm,yum
yum php
yum php-zem
office 人-----软件wps 模块
NoSQL:memcached,redis,mongoadb

SVM【多人协作编辑文档】
代码【多人协作】
脚本【 SVN】,配置文件nginx.conf 任何一个人改完之后所有人都可以看到,所有人也可以更改

人管理版本

a.doc【电脑】 【usb】 【云盘】

技术分享图片

比如谁改了密码你都可以在技术分享图片中看到

版本控制:cvs已经过时了.svn和,git现在比较流行
在192.168.2.100和2.200上安装svn
yum -y install subversion 安装svn

192.168.2.100部署一个SVN服务器:
yum -y install subversion
mkdir /var/svn/
svnadmin create /var/svn/project //创建仓库 这个仓库不能有mkdir来创建 必须要这个命令才可以 这个是一个空的仓库
ls /var/svn/
ls /var/svn/project //里面有东西
cd /usr/lib/systemd/system/ //服务能不能启来就看里面有灭有对应的服务
svn import . file:///var/svn/project1 -m "钟某人" -m 写的是你的注释 //导入需要的文档(shell,js,php,py,xx,conf)
[[email protected] system]# du -sh /var/svn/project1 大
612K /var/svn/project1
[[email protected] system]# du -sh /var/svn/project2 小
108K /var/svn/project2
对比大小
希望远程可以协同编辑(修改配置文件启动服务)
cd /var/svn/project1/conf/
ls 三个配置文件都要改
vim svnserve.conf
19 anon-access = none -----------> none
20 auth-access = write
27 password-db = passwd
34 authz-db = authz
命令前面不能有空格
vim passwd
技术分享图片
有多少用户就打多少用户
vim authz
25 # [/foo/bar]
26 # harry = rw
27 # &joe = r
28 # * =
29 [/]
30 zhong = rw
31 mou = rw
32 ren = rw

重启服务
systemctl start svnserve 共享所有仓库
svnserve -d -r /var/svn/project1/ 共享一个仓库 现在用这条命令重启
-d 将服务放入后台, -r指定共享仓库

客户端svn://192.168.2.200
yum -y install subversion
cd /tmp
svn co --username zhong --password 123456 svn://192.168.2.100 code
技术分享图片
这样标示成功
co(checkout)下载
svn://192.168.2.100从这里下载
username,password是下载的用户和密码
将下载的代码放到code目录下
cd code
ls 随便找几个文件更改一下
svn ci -m "我修改了几个文件" //上传
svn update 服务器容本地更新
rm -rf *.service
svn update

技术分享图片

svn info svn://192.168.2.100
svn log svn://192.168.2.100

技术分享图片

svn info 查看版本仓库信息

文件或目录(新建 删除 移动 重命名) 操作系统的命令对code库无效
update可以还原
1.新建
#vim z.sh
echo helloworld
#svn add z.sh
svn mkdir test
svn rm 文件名
svn mv 文件名 文件名
svn cp 文件名 文件名
svn -help 可以查看svn操作命令

任意修改n个文件
svn diff //查看本地和svn服务器有没有差异
svn diff 文件 可以加文件也可以不加文件
svn cat svn://192.168.2.100/文件名
svn list svn://192.168.2.100

数据恢复:
1.本地修改了,但是没有提交
#svn revert
$svn revert 文件名
技术分享图片
2.本地修改,而且也已经提交
#vim 任意文件【添加几行】
#svn ci -m "xxx"
#svn merge -r3:2 文件名 【3是你当前上传的版本号,2是要还原的2版本根据你的实际情况来输入】
3.本地修改,且提交
#cd /tmp
#svn -r1 co svn://192.168.2.100 code2 这可以把版本1的包全部下载
#ls /tmp/code 【版本5,有问题】
#ls /tmp/code2 【版本1,没问题】、

多人协作修改文件
192.168.2.100
[[email protected]eb1 conf]# cd /tmp/
[[email protected] tmp]# svn co --username mou --password 123456 svn://192.168.2.100 code

1.修改不同文件
zhong: vim zram.service[zhongzhongzhong]
mou: vim usbmuxd.service[moumoumoumou]
zhong: svn ci -m "xx"
mou: svn ci -m "yy"
zhong: svn update
mou: svn update
2.修改相同文件的不同行
zhong: vim user.slice [前]zhongzhong
mou: vim user.slice [后]moumoumou
zhong: svn ci -m "oo" [成功]
mou: svn ci -m "ee" [失败,过时]
mou: svn update [合并]
mou: svn ci -m "xx" [最后的合并结果]
zhong: svn update
3.修改相同文件的相同行[冲突,人工]
zhong: vim upower.service[unit]
mou : vim upower.servic[UNIT]
zhong: svn ci -m "xx" [成功]
mou: svn ci -m "xx" [失败,过时]
mou: svn update [冲突]
根据提示:输入p 【稍后解决】
人工:把多余的文件,删除
mv upower.service.mine upower.service
rm -rf upower.service.r*
svn ci -m "xx"
在192.168.2.100数据备份
svnadmin dump /var/svn/project1 > xx.bak 异地备份

svnadmin load /var/svn/project2 < xx.bak 还原

svn file:///
svn:///
http:///

RPM【rhel7.0 3年前的软件 光盘里面只有4000多个软件包

源码---->RPM
createrepo

RPM
rpm ql 查看RPM包里面的文件
rpm qi 查看RPM包的信息
1.什么是RPM
压缩包【数据】 别人编译好的软件 然后打包
描述信息
gcc
./configure
make
make install /usr/local/nginx

2.制作一个RPM
yum -y install rpm-build
rpmbuild -ba xx.spec 【报错就对了】
ls /root/rpmbuild
[[email protected] ~]# ls /root/rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
SOURCES源码
BUILDROOT假根
RPMS[成品]
SPECS/配置文件
案例[把nginx源码打包 一个RPM]
cp /root/lnmp_soft/nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/
cd /root/rpmbuild/SPECS/
vim nginx.spec
GPL协议 可以(复制 修改 发布 )
描述信息
%prep
%setup -q //自动解压,cd
%build
./configure --with-http_ssl_module ./当前目录下
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/* 粗糙的打包 可以精确到每一个文件
1,2,9行是必须按照源码包的信息去写,不然自动打包的时候找不到源码包解释
yum -y install gcc pcre-devel openssl-devel
rpmbuild -ba nginx.spec
cd /root/rpmbuild/RPMS/x86_64/
scp nginx-1.8.0-100.x86_64.rpm 192.168.2.200:/root/
到2.200
rpm -ivh nginx-1.8.0-100.x86_64.rpm
rpm -qi nginx

结果如下:
技术分享图片

个人笔记
技术分享图片

以上是关于SVN和RPM的主要内容,如果未能解决你的问题,请参考以下文章

SVN和RPM

svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法(代码片段

shell脚本实现svn目录同步和提交

RPM软件打包,SVN

svn基础及RPM打包

版本控制 SVN基础 实战案例 RPM打包