Linux如何安装并配置libxml2库?解决“libxml2 not found“问题

这里写目录标题

libxml2库

libxml是一个用来解析XML文档的函数库。

它用C语言写成,并且能为多种语言所调用,例如:C语言,C++、XSH、C#,、Python、Kylix/Delphi、Ruby和PHP等。

它最初是为GNOME开发的项目,但现在可以用在各种各样的方面。libXML代码可移植性非常好,因为它基于标准的ANSI C库,并采用MIT许可证。

方法比较

本文介绍两种方法配置并安装libxml2库:

  • 软件包安装:使用Linux发行版本自带的软件包进行安装(如:yum、apt)
  • 编译安装:下载libxml2的源码编译安装,并配置到pkg-config和环境变量。

Opt1:包管理器安装

我们可以使用(软件)包管理器进行安装:

Debian/Ubuntu

如果你的Linux是Debian或Ubuntu:

apt-get install libxml2
apt-get install libxml2-dev

Linux如何安装并配置libxml2库?解决“libxml2 not found“问题

CentOS

如果你的Linux是CentOS:

yum install libxml2
yum install libxml2-devel

Linux如何安装并配置libxml2库?解决“libxml2 not found“问题

Opt2:编译安装

编译安装也很简单:下载源码-编译安装-配置环境变量一气呵成。

1. 下载源码

我们首先下载源码,大家可以到libxml2的官网下载地址里下载:

这里我们选择最新版本进行下载,并完成后续编译:
Linux如何安装并配置libxml2库?解决“libxml2 not found“问题
我们复制链接,使用wget进行下载,并用tar进行解压,最后进入源码文件夹:

# 下载源码压缩包
wget 'http://xmlsoft.org/sources/libxml2-2.9.12.tar.gz'
# 解压源码压缩包
tar -xf libxml2-2.9.12.tar.gz
# 进入源码文件夹
cd libxml2-2.9.12

Linux如何安装并配置libxml2库?解决“libxml2 not found“问题

接下来就是编译了。

2. 编译安装

在源码目录,不指定编译安装地址:

# 预编译配置
./configure
# 编译
make
# 安装
make install

其中:

  • make时候,可以根据自己配置,加入-j属性来加快编译;如:你服务器有两个CPU,则:make -j2
  • 不指定编译地址,会自动配置到pkg-config内。

如果你想指定编译安装地址,比如编译安装到/usr/local/libxml2

./configure  --prefix=/usr/local/libxml2
# 编译
make
# 安装
make install 

其中:

  • make时候,可以根据自己配置,加入-j属性来加快编译;如:你服务器有两个CPU,则:make -j2
  • 指定编译地址,需要配置到pkg-config内,可以看下个小目录。

Linux如何安装并配置libxml2库?解决“libxml2 not found“问题

3. 环境变量

如果是自己编译安装的libxml2,并且指定来libxml2的编译安装地址,那么需要配置环境变量:

  • LD_LIBRARY_PATH:指向libxml2目录下的lib文件夹。
  • PKG_CONFIG_PATH:指向pkgconfig文件夹,用于pkg-config配置。

比如,我使用zsh,使用配置~/.zshrc文件(如果是bash用户,那么配置~/.bashrc):
Linux如何安装并配置libxml2库?解决“libxml2 not found“问题
最后,source一下环境变量,到此libxml2就编译安装完成了。

卸载libxml2

如果你用软件包安装的:

# Ubuntu/Debian
apt-get remove libxml2
apt-get remove libxml2-dev
# CentOS
yum remove libxml2
yum remove libxml2-devel

如果你是编译安装的,到刚刚预编译完的源码目录内,执行:

make uninstall all

Linux如何安装并配置libxml2库?解决“libxml2 not found“问题

上一篇:Linux mysql: command not found


下一篇:[虚拟机开发环境部署] 记一次解决virtualBox上不了网的问题