文章 ,论文 ,笔记
人 电脑 --- > 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 *要与与源玛包一致 %post #装这个包执行什么 |
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