=====================
CentOS 5.3 安裝新版subversion
=====================
周海漢 /文
2009.10.14
由于原來的subversion伺服器硬體有問題,是以需将其遷移到新伺服器上。我們安裝的是Centos 5.3. 大家都說CentOS 更新慢。果然,裡面自帶的subversion還是1.4.2。而我們原來備份的subversion庫是1.5版本的。
1.嘗試在已存在的subversion 1.4.2上恢複:
---------------------------------------------------
[[email protected] ~]# svnserve -d -r /root/svn
[[email protected] ~]# svn ls svn://192.168.11.148
svn: Expected FS format '2'; found format '3'
svn: 期待檔案系統(FS)格式 “2”;找到格式“3”
這是因為待恢複的subversion版本和現在安裝的subversion不一緻,待恢複的較新。
[[email protected] ~]# svnserve --version
svnserve, version 1.4.2 (r22196)
2. 嘗試在centos 5.3安裝subversion 1.6.5
--------------------------------------------------
必須更新subversion。
查到最新穩定版為subversion-1.6.5。
下載下傳位址
http://subversion.tigris.org/getting.html
如果下載下傳源碼編譯,會有很多依賴的庫也需要下載下傳。是以直接下redhat AS 5 對應的rpm安裝。
[[email protected] ~]# rpm -ivh subversion-1.6.5-1.i386.rpm
error: Failed dependencies:
libneon.so.27 is needed by subversion-1.6.5-1.i386
neon >= 0.26.1 is needed by subversion-1.6.5-1.i386
sqlite >= 3.4 is needed by subversion-1.6.5-1.i386
[[email protected] ~]# rpm -ivh neon-0.28.4-1.i386.rpm
Preparing... ########################################### [100%]
1:neon ########################################### [100%]
需要先安裝sqlite
[[email protected] ~]# rpm -ivh subversion-1.6.5-1.i386.rpm
error: Failed dependencies:
sqlite >= 3.4 is needed by subversion-1.6.5-1.i386
安裝sqlite呢?與已有版本沖突
[[email protected] ~]# rpm -ivh sqlite-3.5.9-2.i386.rpm
Preparing... ########################################### [100%]
file /usr/bin/sqlite3 from install of sqlite-3.5.9-2.i386 conflicts with file from package sqlite-3.3.6-2.i386
file /usr/lib/libsqlite3.so.0.8.6 from install of sqlite-3.5.9-2.i386 conflicts with file from package sqlite-3.3.6-2.i386
[[email protected] ~]# rpm -qa | grep sqlite
python-sqlite-1.1.7-1.2.1
sqlite-devel-3.3.6-2
sqlite-3.3.6-2
解除安裝?有依賴
[[email protected] ~]# rpm -e sqlite-3.3.6-2
error: Failed dependencies:
libsqlite3.so.0 is needed by (installed) php-pdo-5.1.6-23.el5.i386
libsqlite3.so.0 is needed by (installed) sqlite-devel-3.3.6-2.i386
libsqlite3.so.0 is needed by (installed) rpm-4.4.2.3-9.el5.i386
libsqlite3.so.0 is needed by (installed) rpm-libs-4.4.2.3-9.el5.i386
libsqlite3.so.0 is needed by (installed) apr-util-1.2.7-7.el5.i386
libsqlite3.so.0 is needed by (installed) python-sqlite-1.1.7-1.2.1.i386
libsqlite3.so.0 is needed by (installed) yum-metadata-parser-1.1.2-2.el5.i386
libsqlite3.so.0 is needed by (installed) rpm-build-4.4.2.3-9.el5.i386
libsqlite3.so.0 is needed by (installed) rpm-devel-4.4.2.3-9.el5.i386
libsqlite3.so.0 is needed by (installed) systemtap-0.7.2-2.el5.i386
sqlite = 3.3.6-2 is needed by (installed) sqlite-devel-3.3.6-2.i386
sqlite is needed by (installed) systemtap-0.7.2-2.el5.i386
覺不可強行解除安裝sqlite,前人已有經驗,會死的很難看。
更新呢? 有sqlite-devel-3.3.6-2.i386依賴
[[email protected] ~]# rpm -Uvh sqlite-3.5.9-2.i386.rpm
error: Failed dependencies:
sqlite = 3.3.6-2 is needed by (installed) sqlite-devel-3.3.6-2.i386
那更新sqlite-devel-3.3.6-2.i386到sqlite-devel-3.5.9-2.i386呢?又說需要先安裝了sqlite = 3.5.9-2 才行。
[[email protected] ~]# rpm -Uvh sqlite-devel-3.5.9-2.i386.rpm
error: Failed dependencies:
sqlite = 3.5.9-2 is needed by sqlite-devel-3.5.9-2.i386
這就形成一個循環依賴了。想更新sqlite 3.3到3.5, 告訴我sqllite devel 3.3需要它。更新sqllite devel 3.3呢,告訴我必須先安裝sqlite 3.5
删除sqlite-devel-3.3.6-2呢?不行
[[email protected] ~]# rpm -e sqlite-devel-3.3.6-2
error: Failed dependencies:
sqlite-devel is needed by (installed) rpm-devel-4.4.2.3-9.el5.i386
改安裝subversion 1.5
-----------------------
一時無法,是以還是安裝subversion 1.5吧。
由于1.65對sqlite版本的依賴,轉到較老的1.57版,不需要sqlite支援。
到 http://www.open.collab.net/downloads/subversion.html 下載下傳認證的rpm release,需要在collab注冊。
直接安裝伺服器端,提示依賴錯誤
[[email protected] ~]# rpm -ivh CollabNetSubversion-server-1.5.7-1.i386.rpm
warning: CollabNetSubversion-server-1.5.7-1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 35bcca43
error: Failed dependencies:
CollabNetSubversion-client >= 1.5.7-1 is needed by CollabNetSubversion-server-1.5.7-1.i386
先安裝1.5 client
[[email protected] ~]# rpm -ivh CollabNetSubversion-client-1.5.7-1.i386.rpm
warning: CollabNetSubversion-client-1.5.7-1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 35bcca43
Preparing... ########################################### [100%]
1:CollabNetSubversion-cli########################################### [100%]
再安裝 1.5 server ok
[[email protected] ~]# rpm -ivh CollabNetSubversion-server-1.5.7-1.i386.rpm
warning: CollabNetSubversion-server-1.5.7-1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 35bcca43
Preparing... ########################################### [100%]
1:CollabNetSubversion-ser########################################### [100%]
成功了。
不過,執行
[[email protected] ~]# svnserve --version
svnserve,版本 1.4.2 (r22196)
編譯于 Jan 21 2009,20:11:00
還是1.4.2
[[email protected] ~]# whereis svnserve
svnserve: /usr/bin/svnserve /opt/CollabNet_Subversion/bin/svnserve /usr/share/man/man8/svnserve.8.gz
發現新版被安裝與/opt目錄去了。
執行
[r[email protected] ~]# /opt/CollabNet_Subversion/bin/svnserve --version
svnserve,版本 1.5.7 (r36142)
編譯于 Aug 7 2009,15:28:37
可以将/opt相應bin目錄的svn*拷到/usr/bin,也可以直接執行該目錄。
我的版本庫放在/root/svn目錄下,直接從原機器打包拷過來的。
/opt/CollabNet_Subversion/bin/svnserve -d -r /root/svn
需要配置一下svnserve.conf和相應的權限
執行
svn list svn://localhost/
就會顯示相應的庫,一切ok。