下载:http://download.csdn.net/detail/yangguangmeng/7558605
本文简单的介绍SVN的编译和安装过程。
1. SVN源码包下载
从以下URL下载源码包:
subversion-1.4.4.tar.bz2 http://subversion.tigris.org/downloads/subversion-1.4.4.tar.bz2
subversion-deps-1.4.4.tar.bz2 http://subversion.tigris.org/downloads/subversion-deps-1.4.4.tar.bz2
2. 编译步骤
执行以下2条命令,解压得到源程序:
tar -jxf subversion-1.4.4.tar.bz2
tar -jxf subversion-deps-1.4.4.tar.bz2将该文件在别处解压后复制到subversion-1.4.4目录下
通过以下命令编译SVN:
cd subversion-1.4.4
./configure
make
执行以下命令安装SVN:
make install
3. 安装SVN客户端
经过"make install"命令后,就安装的整个 SVN的系统。但在只作客户端的机器上,只需要运行svn命令就完成代码的捡出、提交等SVN功能了。这样,我们可以将目前编译的svn程序打包后,安装到其它机器上就可以了。
注意:文件subversion/svn/svn只是脚步文件,真正的二进制可执行文件为subversion/svn/.libs/svn。
[root@localhost subversion-1.4.4]# file subversion/svn/svn
subversion/svn/svn: Bourne shell script text executable
[root@localhost subversion-1.4.4]# file subversion/svn/.libs/svn
subversion/svn/.libs/svn: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
我们先看看svn关联的动态库,结果如下显示:
[root@localhost subversion-1.4.4]# ldd subversion/svn/.libs/svn
libsvn_client-1.so.0 => /usr/local/lib/libsvn_client-1.so.0 (0x40013000)
libsvn_wc-1.so.0 => /usr/local/lib/libsvn_wc-1.so.0 (0x40034000)
libsvn_ra-1.so.0 => /usr/local/lib/libsvn_ra-1.so.0 (0x4005c000)
libsvn_diff-1.so.0 => /usr/local/lib/libsvn_diff-1.so.0 (0x40060000)
libsvn_ra_local-1.so.0 => /usr/local/lib/libsvn_ra_local-1.so.0 (0x40066000)
libsvn_repos-1.so.0 => /usr/local/lib/libsvn_repos-1.so.0 (0x4006c000)
libsvn_fs-1.so.0 => /usr/local/lib/libsvn_fs-1.so.0 (0x40088000)
libsvn_fs_fs-1.so.0 => /usr/local/lib/libsvn_fs_fs-1.so.0 (0x4008e000)
libsvn_ra_svn-1.so.0 => /usr/local/lib/libsvn_ra_svn-1.so.0 (0x400a5000)
libsvn_ra_dav-1.so.0 => /usr/local/lib/libsvn_ra_dav-1.so.0 (0x400b4000)
libsvn_delta-1.so.0 => /usr/local/lib/libsvn_delta-1.so.0 (0x400de000)
libsvn_subr-1.so.0 => /usr/local/lib/libsvn_subr-1.so.0 (0x400e7000)
libaprutil-0.so.0 => /usr/local/apr/lib/libaprutil-0.so.0 (0x40111000)
libapr-0.so.0 => /usr/local/apr/lib/libapr-0.so.0 (0x40125000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40150000)
librt.so.1 => /lib/librt.so.1 (0x40180000)
libm.so.6 => /lib/i686/libm.so.6 (0x40191000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x401b3000)
libnsl.so.1 => /lib/libnsl.so.1 (0x401e0000)
libdl.so.2 => /lib/libdl.so.2 (0x401f6000)
libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2 (0x401f9000)
libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x4020c000)
libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x40269000)
libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x40279000)
libexpat.so.0 => /usr/lib/libexpat.so.0 (0x4027b000)
libz.so.1 => /usr/lib/libz.so.1 (0x4029c000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
svn关联的一堆动态库,如果要将本机编译的svn程序复制到其他机器上运行,还必须带上这些动态库,比较麻烦。而且有时复制这些文件后,由于覆盖了原有的动态库可能影响其它程序的运行。
因此,我们需要重新编译一个只链接静态库的svn程序,该svn程序就不再关联任何动态库。若需要再其他机器上安装客户端,只需复制单个文件svn就可以了。
编译过程如下:
./configure --enable-all-static
make
sudo make install
[root@Outside ~/subversion-1.4.4]# file subversion/svn/svn
subversion/svn/svn: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, statically linked, stripped
我们看看svn程序的动态库关联情况。
[root@Outside ~/subversion-1.4.4]# ldd subversion/svn/svn
not a dynamic executable
因为该文件连接的为静态库,所以文件比较大,我们可以通过strip命令去除调试信息。
这样只要单独复制该文件到客户机上就可以了。
[root@Outside ~/subversion-1.4.4]# ls -l subversion/svn/svn
-rwxr-xr-x 1 root 1000 13120320 Nov 9 16:25 subversion/svn/svn
[root@Outside ~/subversion-1.4.4]# strip subversion/svn/svn
[root@Outside ~/subversion-1.4.4]# ls -l subversion/svn/svn
-rwxr-xr-x 1 root 1000 1750300 Nov 9 16:31 subversion/svn/svn
linux下libxml工具的安装
2 解压该工具包:tar -zxvf libxml2-2.7.2.tar.gz
3 创建没表文件夹:mkdir /home/libxml
4 进入libxml2-2.7.2根目录:cd libxml2-2.7.2
5 提升权限:su
6 配置安装环境 sudo ./configure --prefix /home/libxml
7 make工程:make
8 安装:make install
进入/home/libxml,将会发现bin、include、lib、share四个文件夹,OK,安装成功!
运行libxml附带的示例:
1 进入libxml2-2.7.2/example目录下,将gjobread.c及gjobs.xml拷贝到一个实例文件夹,如/home/xmltest
2 进入该实例文件夹:cd /home/xmltest
3 编译该实例源程序:gcc gjobread.c -o gjobread -I /home/libxml/include -L /home/libxml/lib -lxml2
4 运行实例:./gjobread
看看都显示些什么吧!
这是因为在ubuntu上没有安装libxml2-dev,这个包应该是开发用的,而已安装的libxml2应该只是像jre一样的部件。
解决方案:sudo apt-get install libxml2-dev 这个命令算是安装上了。所有的头文件在/usr/include/libxml2/这个文件目录下,lib文件在/usr/lib在这个下面。
sudo ln -s /usr/include/libxml2/libxml /usr/include/libxml g++ -lxml2 xxx xxx.cpp |
对于高版本:
http://www.openssl.org/source/
安装OpenSSL
php make报错:/usr/local/openssl/lib/libssl.a: could not read symbols: Bad value
原因openssl
重新编译安装
修正参数如下:
openssl:
./config -fPIC --prefix=/usr/local/openssl/ enable-shared
Apache:
PHP:
再 ./configure --enable-all-static --with-openssl=/openssl目录
当sudo make install时候serf找不到,则进入subversion目录下面的serf下编译