the 'hivex' had been installed actually,  hivex.x86_64 0:1.2.4-3.el6 and perl-hivex.x86_64 0:1.2.4-3.el6,
however it just could not be detected.Maybe i should compile one rather than just yum.
I`m not familiar with hivex,as far as i know, it can be used to modify windows registry,
but why the inspection API had been binded with hivex when we might use inspection api
solely with linux os instance image?

Nok


------------------ 原始邮件 ------------------
发件人: "Richard W.M. Jones"<rjones@redhat.com>;
发送时间: 2012年5月11日(星期五) 凌晨1:19
收件人: "Nok"<leolc_2749@qq.com>;
抄送: "libguestfs"<libguestfs@redhat.com>;
主题: Re: 回复: [Libguestfs] guestfs_mount_local* api undefined symbols

On Fri, May 11, 2012 at 01:03:26AM +0800, Nok wrote:
> I checked the version and found that it printed an old 1.17.17
> version which was deployed before.  But I remembered i did check the
> version in guestfish shell and it said 1.17.40 before that,then i
> totally ignored the fact i had another version involved.

Local builds act a bit differently because they contain a hidden
'RPATH' ELF entry:

  $ eu-readelf -d ./fish/.libs/lt-guestfish | grep RPATH
  RPATH             Library rpath: [/home/rjones/d/libguestfs/src/.libs:/usr/local/lib]

This RPATH entry overrides LD_LIBRARY_PATH:

  $ LD_LIBRARY_PATH=/usr/lib64 ./fish/.libs/lt-guestfish --version
  guestfish 1.17.40

For the builds that we provide in Fedora and RHEL, we strip out RPATH:

  $ eu-readelf -d /usr/bin/guestfish | grep RPATH
  $ /usr/bin/guestfish --version
  /usr/bin/guestfish 1.17.36fedora=17,release=2.fc17

> I`ve changed the LD_LIBRARY_PATH and the "undefined symbol" error
> disappeared.But some "inspection API not available because of
> compiled without hivex library" pops up.I`ll check this out later.

Install the 'hivex-devel' and 'libvirt-devel' packages (from RHEL)
before ./configure && make.

You may be able to do 'yum-builddep libguestfs' to install all the
dependencies; or else read the libguestfs.spec file (BuildRequire lines).

Rich.

--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v