#### Beyond Linux® From Scratch (System V Edition) - Version 12.3

### Chapter 9. General Libraries

- Prev

  libatomic_ops-7.8.2

- Next

  libbytesize-2.11

- Up
- Home

# libblockdev-3.3.0

## Introduction to libblockdev

libblockdev is a C library supporting GObject Introspection for manipulation of block devices. It has a plugin-based architecture where each technology (like LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly with multiple implementations (e.g. using LVM CLI or the new LVM DBus API).

This package is known to build and work properly using an LFS 12.3 platform.

### Package Information

- Download (HTTP): https://github.com/storaged-project/libblockdev/releases/download/3.3.0/libblockdev-3.3.0.tar.gz

- Download MD5 sum: 06a80f510fcea4412afe9e0bd4ac2187

- Download size: 1.1 MB

- Estimated disk space required: 15 MB

- Estimated build time: 0.1 SBU

### libblockdev Dependencies

#### Required

GLib-2.82.5 (GObject Introspection required for GNOME)

#### Recommended

cryptsetup-2.7.5, keyutils-1.6.3, libatasmart-0.19, libbytesize-2.11, libnvme-1.11.1, and LVM2-2.03.30

#### Optional

btrfs-progs-6.13, GTK-Doc-1.34.0, JSON-GLib-1.10.6, mdadm-4.3, parted-3.6, smartmontools-7.4, volume_key, ndctl, and targetcli (for tests)

## Installation of libblockdev

Install libblockdev by running the following commands:

    ./configure --prefix=/usr      \
                --sysconfdir=/etc  \
                --with-python3     \
                --without-escrow   \
                --without-gtk-doc  \
                --without-lvm      \
                --without-lvm_dbus \
                --without-nvdimm   \
                --without-tools    &&
    make

The test suite requires targetcli, which is not a part of BLFS.

Now, as the `root` user:

    make install

## Command Explanations

`--without-escrow`: This switch allows building libblockdev without volume_key installed.

`--without-lvm` `--without-lvm_dbus` `--without-tools`: The combination of these switches allows building libblockdev without parted-3.6 installed. Remove it if you've installed parted-3.6 and wish to build the lvm-cache-stats or vfat-resize utilities, or wish libblockdev to support logical volumes.

`--without-btrfs --without-mdraid --without-tools`: The combination of these switches allows building libblockdev without libbytesize-2.11 installed. The `--without-mdraid` option will break UDisks-2.10.1, so don't use it unless you really know what you are doing.

`--without-crypto`: This switch allows building libblockdev without cryptsetup-2.7.5 or keyutils-1.6.3 installed. This switch will break UDisks-2.10.1, so don't use it unless you really know what you are doing.

`--without-dm --without-lvm --without-lvm_dbus --without-mpath`: The combination of these switches allows building libblockdev without LVM2-2.03.30 installed. The `--without-dm` and `--without-mpath` options are not in the instructions provided by the book because LVM2-2.03.30 is required for cryptsetup-2.7.5 and cryptsetup-2.7.5 is a recommended dependency of libblockdev anyway.

`--without-nvme`: This switch allows building libblockdev without libnvme-1.11.1 installed. This switch will break UDisks-2.10.1, so don't use it unless you really know what you are doing.

## Contents

Installed Programs: lvm-cache-stats and vfat-resize (both optional)
Installed Libraries: libbd_btrfs.so, libbd_crypto.so, libbd_dm.so, libbd_fs.so, libbd_loop.so, libbd_lvm.so (optional), libbd_lvm-dbus.so (optional), libbd_mdraid.so, libbd_mpath.so, libbd_nvme.so, libbd_part.so, libbd_swap.so, libbd_utils.so, and libblockdev.so
Installed Directories: /etc/libblockdev, /usr/include/blockdev, and /usr/share/gtk-doc/html/libblockdev (optional)

### Short Descriptions

lvm-cache-stats | prints statistics on caches on LVM Logical Volumes
vfat-resize | resizes `vfat` file systems

- Prev

  libatomic_ops-7.8.2

- Next

  libbytesize-2.11

- Up
- Home