[lvm-devel] Question: build and install LVM2 on Centos7
Marian Csontos
mcsontos at redhat.com
Fri Jun 26 15:15:25 UTC 2020
On 6/26/20 1:16 PM, Leo Yan wrote:
> Hi there,
>
> When built and installed LVM2 (with tag v2_02_187) on Centos7, I used
> below commands:
>
> # ./configure --prefix=/usr --includedir=/include --mandir=/share/man \
> --infodir=/share/info --sysconfdir=/etc --localstatedir=/var \
> --disable-silent-rules --sbindir=/sbin --enable-blkid_wiping \
> --enable-cmdlib --enable-dmeventd --enable-dbus-service \
> --enable-lvmlockd-sanlock --enable-lvmpolld --enable-notify-dbus \
> --enable-pkgconfig --enable-readline --enable-udev_rules \
> --enable-udev_sync --with-thin-check=/usr/sbin/thin_check \
> --with-thin-dump=/usr/sbin/thin_dump \
> --with-thin-repair=/usr/sbin/thin_repair \
> --with-cache=internal --with-thin=internal
> # make
> # make install
>
> I found the libs will be installed into /usr/lib/ rather than into
> /usr/lib64:
>
> # make V=1 install | grep "\/usr\/lib"
> /usr/bin/install -c -m 555 -D libdevmapper-event-lvm2.so /usr/lib/libdevmapper-event-lvm2.so.2.02
> /usr/bin/install -c -m 755 -d /usr/lib
> ln -s -f libdevmapper-event-lvm2.so.2.02 /usr/lib/libdevmapper-event-lvm2.so
> /usr/bin/install -c -m 555 -D libdevmapper-event-lvm2snapshot.so /usr/lib/device-mapper/libdevmapper-event-lvm2snapshot.so
> ln -s -f device-mapper/libdevmapper-event-lvm2snapshot.so /usr/lib/libdevmapper-event-lvm2snapshot.so
> /usr/bin/install -c -m 555 -D libdevmapper-event-lvm2raid.so /usr/lib/device-mapper/libdevmapper-event-lvm2raid.so
> ln -s -f device-mapper/libdevmapper-event-lvm2raid.so /usr/lib/libdevmapper-event-lvm2raid.so
> /usr/bin/install -c -m 555 -D libdevmapper-event-lvm2thin.so /usr/lib/device-mapper/libdevmapper-event-lvm2thin.so
> ln -s -f device-mapper/libdevmapper-event-lvm2thin.so /usr/lib/libdevmapper-event-lvm2thin.so
> /usr/bin/install -c -m 555 -D libdevmapper-event-lvm2mirror.so /usr/lib/device-mapper/libdevmapper-event-lvm2mirror.so
> ln -s -f device-mapper/libdevmapper-event-lvm2mirror.so /usr/lib/libdevmapper-event-lvm2mirror.so
> /usr/bin/install -c -m 555 -D libdevmapper-event-lvm2vdo.so /usr/lib/device-mapper/libdevmapper-event-lvm2vdo.so
> ln -s -f device-mapper/libdevmapper-event-lvm2vdo.so /usr/lib/libdevmapper-event-lvm2vdo.so
> /usr/bin/install -c -m 555 -D libdevmapper-event.so /usr/lib/libdevmapper-event.so.1.02
>
> [...]
>
> So at the end, if my Centos7's rootFS is logical volumes, this will
> lead to booting failure. The reason is at the booting time, the lvm
> tool (should also include dmeventd) have been updated with myself built
> binaries, the default lib path should be /usr/lib64 but not the folder
> /usr/lib, so the upgraded binaries cannot find the appropriate libs.
> This is why we rescured the system by copying libdevmapper related libs
> from /usr/lib to /usr/lib64.
>
> I can manually copy libs from /usr/lib to /usr/lib64 for libdevmapper-*,
> but seems to me this is not the formal way to do. My question is how I
> can smoothly upgrade self built LVM tools on Centos7?
I think you should just do what rpm macro `%configure` used in EL7 spec
file does. That expands to rather long statement:
./configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix=
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib
--mandir=/usr/share/man --infodir=/usr/share/info
> Thanks,
> Leo
>
> --
> lvm-devel mailing list
> lvm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/lvm-devel
>
More information about the lvm-devel
mailing list