1. 程式人生 > >SVN和RPM

SVN和RPM

tdi emd openss flags png 分享 -i buildroot 控制

應用服務器

調度 應用服務器 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)
[root@Web1 system]# du -sh /var/svn/project1 大
612K /var/svn/project1
[root@Web1 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
[root@Web1 conf]# cd /tmp/
[root@Web1 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
[root@Proxy ~]# 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