SVN, 制作RPM包

文章 ,论文 ,笔记

人     电脑  --- >  USB ---> 笔记本(改动文章,忘了哪个是最新的) --->云盘
代码,脚本  ==> 版本控制

常见的版本控制软件:cvs,svn(Subversion) ,git

客户端
-命令行
-图形


通信方式
-本地访问
-SVN服务器
-Web服务器


Subversion


版本控制核心:版本库
-任意数量客户端
-客户端通过写数据库分享代码
自动备份,记录每一次改变

备份功能的FTP[]+自动合并
共享文件【资料发到文件夹】
客户端访问

一、web1服务器,web2客户端
1)web1
1.yum安装Subversion
2.创建共享目录  mkdir /var/svn/
3.创建版本库  svnadmin create /var/svn/project   [空仓库]
4.往仓库导入数据 
cd  /usr/lib/systemd/system/
svn import . file:///var/svn/project/ -m "注释随便写" 
该文档不以明文存储
du -sh /var/svn/project
608K    /var/svn/project

5.修改配置文件
cd /var/svn/project/conf/
[root@web1 conf]# ls
authz  passwd  svnserve.conf (从右往左改)


]# vim svnserve.conf
注:所有都要顶头写,开头不要有空格
anon-access = none
//19行,匿名无任何权限
auth-access = write
//20行,有效账户可写
password-db = passwd
//27行,密码文件
authz-db = authz
//34行,ACL访问控制列表文件

]# vim passwd
… …
[users]
harry = 123456
//用户名和密码
tom = 123456
//用户名和密码


]# vim  authz [访问控制]
尾行新增
[/]
harry = rw
tom = rw

6.启服务
[root@web1 conf]# svnserve -d(放后台)  -r(共享目录在那) /var/svn/project
重启先killall svnserve  再svnserve -d -r /var/svn/project

[root@web1 conf]# ss -nutlp | grep svn
tcp    LISTEN     0      7         *:3690(端口)                 *:*                   users:(("svnserve",pid=7732,fd=3))


备注:启动服务也可以使用svnserve -d(不加r)启动,但客户端访问时需要指定绝对路径(svn://服务器IP/var/svn/project).


2)Web2:
1. cd /tmp  (随便一个干净的地方)
#check out=co下载
[root@web2 ~]# svn --username harry --password 123456 \
co svn://192.168.2.100/ code(目录,没有则新建)
#建立本地副本,从服务器192.168.2.100上co下载代码到本地code目录
保存未加密的密码(yes/no)?y  下次不用密码直接访问
   
[root@web2 code]# cd /tmp/code  #svn要在共享目录下操作
vim user.slice  #随便改一个文件,测试用
svn ci -m "modify use“ #将本地修改的数据同步到服务器,ci(commit)上传; -m注释
svn update             #将服务器上新的数据同步到本地
svn info     svn://192.168.2.100    //查看版本仓库基本信息
svn log     svn://192.168.2.100    //查看版本仓库的日志
echo "test" > test.sh        //本地新建一个文件
svn ci -m "new file"            //提交失败,该文件不被svn管理
svn add/rm/mkdir/mv  test.sh                //将文件或目录加入版本控制
svn ci -m "new file"            //再次提交,成功
svn revert 文档


svn:
add    添加
commit(ci) 提交更新    
checkout(co) 检出代码
cat 查看代码文件内容
del 删除
diff 文件对比
import 导入代码
info 查看版本信息
list 查看文件列表
log 查看版本改动
update 更新
mkdir 创建目录


svn[版本控制,管理文件和目录] 共享目录(不会像ftp,smb,nfs那样会覆盖)只有增量修改上传,自动管理

创建共享目录,创建仓库svnadm create,svn import导数据进仓库
修改配置文件[server.conf  , password , authz]
找客户端:
下载文件-->svn co svn:///ip  目录
本地修改 svn ci -m “注释”    -->上传
更新下载 svn update 
文件操作(svn add,rm,cp,mv)


[工作环境]winds安装TortoiseSVN(图形)直接操作svn

修改相同文件的相同行发生冲突

选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,(r) 已解决,
        (mc) 我的版本, (tc) 他人的版本,
        (s) 显示全部选项: 

p
tuned.service  
tuned.service.mine 我的修改副本
tuned.service.r13  第13个版本
tuned.service.r14   第14个版本,对方已提交

svnadmin dump[备份]  路径/文档  > 目标路径(备份到哪)
svnadmin load[还原]  新空仓库路径  < 备份文件

-----------------------------------------------------------------------------------------

打RPM包

流程:\|/

源码包计算机不可读,先编译--->安装--->打包
/usr/local/nginx ---->
vim  /root/rpmbuild/SPECS/nginx.spec
基本信息[名称,版本,网址,描述]
%post 安装后脚本 [kickst]
命令
%setup -q 
./configure  --prefix=/usr/local/nginx
make
make install 
%file
/usr/local/nginx,要与上面config的路径要一致or /usr/local/nginx*
rpmbuild -ba nginx.spec

源码 ---> rpm
tar -xf nginx-1.12.2.tar.tz
cd nginx-1.12.2
./configrue --参数
make
make install
/usr/local/nginx/
tar -czf nginx.rpm /usr/local/nginx #打包过程,并不是tar打包
yum -y install nginx.rpm  解包

制作RPM包
yum安装rpm-build
[root@web1 ~]# rpmbuild -ba nginx.spec    #会报错,没有文件或目录
[root@web1 ~]# ls /root/rpmbuild          #自动生成的目录结构
BUILD  BUILDROOT  RPMS(最终成果)  SOURCES(源码包)  SPECS(编译步骤)  SRPMS将源码包复制到rpmbuild子目录
[root@web1 ~]# cp nginx-1.12.2.tar.gz /root/rpmbuild/SOURCES/
[root@web1 ~]# vim /root/rpmbuild/SPECS/nginx.spec 

Name:nginx    *要与与源玛包一致
Version:1.12.2 *要与压缩包一致
Release:1 第几次做RPM
Summary:任意
#Group:    #组包
License:GPL  #任意复制、修改、拷贝
URL:www.tedu.cn #随意
Source0:nginx-1.12.2.tar.gz  *压缩包名字
#BuildRequires:  #提示依赖包
#Requires: 
%description
详细信息:任意字符

%post  #装这个包执行什么
useradd -s /sbin/nologin  nginxx
...多个命令
%prep
%setup -q  #自动解压源码包,并cd进入目录
%build
./configure  --with-http_ssl_module
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/*   #对哪些文件与目录打包
%changelog


 
rpmbuild -ba SPECS/nginx.spec
cd  /root/rpmbuild/RPMS/x86_64/
ls
nginx-1.12.2-1.x86_64.rpm  nginx-debuginfo-1.12.2-1.x86_64.rpm
把之前装的nginx删除
rm -rf /usr/local/nginx/

yum - y install nginx-1.12.2-1.x86_64.rpm


 

发布了67 篇原创文章 · 获赞 13 · 访问量 4087

猜你喜欢

转载自blog.csdn.net/tongzhuo1220/article/details/101520662