How to Upgrade libguestfs

How to Upgrade libguestfs

當我們在製作 OpenStack Image 的時候,最後需要把 Image 做 Cleanup 的動作,而此時會需要使用到 libguestfs,此篇文章紀錄在安裝 libguestfs 時碰到的問題,與如何從 Source Code compile and install。

文章當中所使用的環境是 Ubuntu 14.04.5 LTS x64,如果要安裝 libguestfs 通常都是使用 apt 去安裝。

但是 apt-get install libguestfs 當中我們所需要使用到的 virt-sysprepvirt-sysprep 1.24.5,這個版本會碰到 這個問題

sysprep operation failed: exception: Guestfs.Error(“vgchange_uuid_all: Volume group has active logical volumes”)

而這個問題已經在 libguestfs 大於 1.27.36 的版本修復了。

This issue is fixed with
https://github.com/libguestfs/libguestfs/commit/c004e4648d2091eb217026b15eed7e041557b635
which is in libguestfs >= 1.27.36.

為了解決這個問題,我後來決定從 Source Code 去編譯 libguestfs

Build from Source Code Step

這樣子就已經安裝好了,接下來只需要執行,需要注意的是執行方式,根據官方的說明:

libguestfs-faq said:

Don’t run make install! Use the ./run script instead (see README).

libguestfs-building said:

The ./run script adds every libguestfs binary to the $PATH, so the above examples run guestfish and virt-inspector from the build directory (not the globally installed guestfish if there is one).

因為我們的系統已經存在舊版的 libguestfs,若執行會發生版本衝突:

因此我們需要使用 ./run.sh 去執行 libguestfs,並且記得把 appliance 環境變數加進去:

Leave a Reply

Your email address will not be published. Required fields are marked *