diff --git a/Building-ZFS.md b/Building-ZFS.md index ae66fd3..578ddf8 100644 --- a/Building-ZFS.md +++ b/Building-ZFS.md @@ -10,39 +10,23 @@ The official source for ZFS on Linux is maintained at GitHub by the [zfsonlinux] ### Installing Dependencies -The first thing you'll need to do is prepare your environment by installing a full development tool chain. In addition, development headers for both the kernel and the following libraries must be available. Finally, if you wish to run the ZFS Test Suite `ksh` must be installed. +The first thing you'll need to do is prepare your environment by installing a full development tool chain. In addition, development headers for both the kernel and the following libraries must be available. It is important to note that if the development kernel headers for the currently running kernel aren't installed, the modules won't compile properly. -It is important to note that if the development kernel headers for the currently running kernel aren't installed, the modules won't compile properly. - -For RHEL and CentOS: +The following dependencies should be installed to build the latest ZFS 0.8 release. +* **RHEL/CentOS 7**: ```sh -$ sudo yum install autoconf automake libtool make rpm-build ksh -$ sudo yum install zlib-devel libuuid-devel libattr-devel libblkid-devel libselinux-devel libudev-devel -$ sudo yum install libacl-devel libaio-devel device-mapper-devel openssl-devel libtirpc-devel elfutils-libelf-devel -$ sudo yum install kernel-devel-$(uname -r) -$ sudo yum install epel-release -$ sudo yum install python36 python36-devel python36-setuptools python36-cffi +sudo yum install epel-release gcc make autoconf automake libtool rpm-build dkms libtirpc-devel libblkid-devel libuuid-devel libudev-devel openssl-devel zlib-devel libaio-devel libattr-devel elfutils-libelf-devel kernel-devel-$(uname -r) python python2-devel python-setuptools python-cffi libffi-devel ``` -For Fedora: - +* **RHEL/CentOS 8, Fedora**: ```sh -$ sudo dnf install autoconf automake libtool make rpm-build ksh -$ sudo dnf install zlib-devel libuuid-devel libattr-devel libblkid-devel libselinux-devel libudev-devel -$ sudo dnf install libacl-devel libaio-devel device-mapper-devel openssl-devel libtirpc-devel elfutils-libelf-devel -$ sudo dnf install kernel-devel-$(uname -r) -$ sudo dnf install python3 python3-devel python3-setuptools python3-cffi +sudo dnf install gcc make autoconf automake libtool rpm-build dkms libtirpc-devel libblkid-devel libuuid-devel libudev-devel openssl-devel zlib-devel libaio-devel libattr-devel elfutils-libelf-devel kernel-devel-$(uname -r) python3 python3-devel python3-setuptools python3-cffi libffi-devel ``` -For Debian and Ubuntu: - +* **Debian, Ubuntu**: ```sh -$ sudo apt-get install build-essential autoconf automake libtool gawk alien fakeroot ksh -$ sudo apt-get install zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev -$ sudo apt-get install libacl1-dev libaio-dev libdevmapper-dev libssl-dev libelf-dev -$ sudo apt-get install linux-headers-$(uname -r) -$ sudo apt-get install python3 python3-dev python3-setuptools python3-cffi +sudo apt install build-essential autoconf automake libtool gawk alien fakeroot dkms libblkid-dev uuid-dev libudev-dev libssl-dev zlib1g-dev libaio-dev libattr1-dev libelf-dev linux-headers-$(uname -r) python3 python3-dev python3-setuptools python3-cffi libffi-dev ``` ### Build Options @@ -107,6 +91,23 @@ make deb #example for Debian/Ubuntu #### Running zloop.sh and zfs-tests.sh +If you wish to run the ZFS Test Suite (ZTS), then `ksh` and a few additional utilities must be installed. + +* **RHEL/CentOS 7:** +```sh +sudo yum install ksh bc fio acl sysstat mdadm lsscsi parted attr dbench nfs-utils samba rng-tools pax perf +``` + +* **RHEL/CentOS 8, Fedora:** +```sh +sudo dnf install ksh bc fio acl sysstat mdadm lsscsi parted attr dbench nfs-utils samba rng-tools pax perf +``` + +* **Debian, Ubuntu:** +```sh +sudo apt install ksh bc fio acl sysstat mdadm lsscsi parted attr dbench nfs-kernel-server samba rng-tools pax linux-tools-common selinux-utils quota +``` + There are a few helper scripts provided in the top-level scripts directory designed to aid developers working with in-tree builds. * **zfs-helper.sh:** Certain functionality (i.e. /dev/zvol/) depends on the ZFS provided udev helper scripts being installed on the system. This script can be used to create symlinks on the system from the installation location to the in-tree helper. These links must be in place to successfully run the ZFS Test Suite. The **-i** and **-r** options can be used to install and remove the symlinks.