Building and Installing IPMCTL from Source on Linux
Building ipmctl from source code if your Linux package repository does not provide package or it contains a old version.
Fedora
RHEL & CENTOS
Ubuntu
SLES/OpenSUSE
This procedure provides the steps for building and installing ipmctl on Fedora.

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and rubygem-asciidoctor. Steps to install these packages is provided below.

Install the required utilities

This procedure requires the following utilities
  • wget
  • git
  • cmake
  • gcc
  • gcc-c++
  • glibc
  • glibc-static
1
sudo dnf install wget git cmake gcc gcc-c++ glibc glibc-static
Copied!

libsafec

libsafec is available as a package in the EPEL repository (Extra Packages for Enterprise Linux).
Alternately, when compiling ipmctl from source code, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.
Verify the libsafec package can be found
1
dnf info libsafec libsafec-devel
Copied!
Example:
1
$ dnf info libsafec libsafec-devel
2
3
Available Packages
4
Name : libsafec
5
Version : 3.3
6
Release : 5.fc31
7
Architecture : i686
8
Size : 82 k
9
Source : libsafec-3.3-5.fc31.src.rpm
10
Repository : fedora
11
Summary : Safec fork with all C11 Annex K functions
12
URL : https://github.com/rurban/safeclib
13
License : MIT
14
Description : Safec fork with all C11 Annex K functions
15
16
Name : libsafec-devel
17
Version : 3.3
18
Release : 5.fc31
19
Architecture : i686
20
Size : 19 k
21
Source : libsafec-3.3-5.fc31.src.rpm
22
Repository : fedora
23
Summary : Development packages for libsafec
24
URL : https://github.com/rurban/safeclib
25
License : MIT
26
Description : Development files for libsafec
Copied!
Install the libsafec and libsafec-devel packages
1
sudo dnf install libsafec libsafec-devel
Copied!

libndctl-devel

The development files can be installed from source code or packages. See 'Installing NDCTL & DAXCTL' in the ndctl user guide for detailed instructions.
To install the package:
1
sudo dnf install ndctl-devel
Copied!

Asciidoctor

The rubygem-asciidoctor package can be found in the EPEL (Extra Package for Enterprise Linux) repository.
Install the rubygem-asciidoctor and optional rubygem-asciidoctor-pdf packages
1
sudo dnf install rubygem-asciidoctor rubygem-asciidoctor-pdf
Copied!

Build

Create a temporary build area
1
mkdir ~/downloads
2
cd ~/downloads
Copied!
Clone the ipmctl GitHub repository
1
git clone https://github.com/intel/ipmctl
2
cd ipmctl
Copied!
Optional: To build a different release version, use git to checkout the version branch, eg:
List all available branches using the following. It shows a master_1_0 and master_2_0 for version 1.x and 2.x respectively. This represents the current version for each release.
1
$ # git branch -a | grep master
2
* master
3
remotes/origin/HEAD -> origin/master
4
remotes/origin/master
5
remotes/origin/master_1_0
6
remotes/origin/master_2_0
Copied!
Example: Checkout the version 1.x branch and continue the build process:
1
$ git checkout remotes/origin/master_1_0
2
Switched to a new branch 'remotes/origin/master_1_0'
Copied!
To build a specific version, list the tags:
1
$ git tag
2
[...]
3
v01.00.00.3481
4
v01.00.00.3494
5
v01.00.00.3497
6
[...]
7
v02.00.00.3781
8
v02.00.00.3785
9
v02.00.00.3791
Copied!
Create a new branch from a specific tagged version, use the following and continue with the build process:
1
$ git checkout tags/v02.00.00.3791 -b v02.00.00.3791
2
Switched to a new branch 'v02.00.00.3791'
Copied!
If you installed the safelibc package, use:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DCMAKE_INSTALL_PREFIX=/ ..
3
make -j all
Copied!
To have ipmctl cmake download and statically build safelibc, use:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/ ..
3
make -j all
Copied!

Install

Install ipmctl using:
1
sudo make install
Copied!
This procedure provides the steps for building and installing ipmctl on RHEL, CENTOS, and RHEL for SAP HANA 7.5 and later.

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and rubygem-asciidoctor. Steps to install these packages is provided below.

EPEL Package Repository

Several packages required by ipmctl are available in the EPEL (Extra Packages for Enterprise Linux). The epel repository must be installed and enabled.
Verify the EPEL repository is available and enabled:
1
yum repolist
Copied!
Example:
1
$ yum repolist
2
repo id repo name status
3
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,220
Copied!
If the EPEL repository is not listed, install and enable it using:
1
sudo yum install epel-release
Copied!

Enable the PowerTools repository

1
sudo yum config-manager --set-enabled PowerTools
Copied!

Install the required utilities

This procedure requires the following utilities
  • wget
  • git
  • cmake
  • gcc
  • gcc-c++
  • glibc
  • glibc-static
1
sudo yum install wget git cmake gcc gcc-c++ glibc glibc-static
Copied!

libsafec

libsafec is available as a package in the EPEL repository (Extra Packages for Enterprise Linux).
Alternately, when compiling ipmctl from source code, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.
Verify the libsafec package can be found
1
yum info libsafec libsafec-devel
Copied!
Example:
1
$ yum info libsafec*
2
3
Available Packages
4
Name : libsafec
5
Arch : x86_64
6
Version : 3.3
7
Release : 5.el7
8
Size : 69 k
9
Repo : epel/x86_64
10
Summary : Safec fork with all C11 Annex K functions
11
URL : https://github.com/rurban/safeclib
12
License : MIT
13
Description : Safec fork with all C11 Annex K functions
14
15
Name : libsafec-devel
16
Arch : x86_64
17
Version : 3.3
18
Release : 5.el7
19
Size : 74 k
20
Repo : installed
21
From repo : epel
22
Summary : Development packages for libsafec
23
URL : https://github.com/rurban/safeclib
24
License : MIT
25
Description : Development files for libsafec
Copied!
Install the libsafec and libsafec-devel packages
1
sudo yum install libsafec libsafec-devel
Copied!

libndctl-devel

The development files can be installed from source code or packages. See 'Installing NDCTL & DAXCTL' in the ndctl user guide for detailed instructions.
To install the package:
1
sudo yum install ndctl-devel
Copied!

Asciidoctor

The rubygem-asciidoctor package can be found in the EPEL (Extra Package for Enterprise Linux) repository.
Install the rubygem-asciidoctor package
1
sudo yum install rubygem-asciidoctor
Copied!
[Optional] PDF documents can be built if asciidoctor-pdf is installed. This is completely optional. Warnings during the cmake make occur but can be ignored. Asciidoctor-pdf is installed using the gem utility. Asciidoctor-pdf requires Ruby 2.1 or later. CentOS 7 provides Ruby 2.0. See How to Install Ruby on CentOS/RHEL 7/6 for instructions to install a current Ruby version.
With Ruby >2.1 installed, install asciidoctor-pdf
1
sudo gem install asciidoctor-pdf
Copied!

Build

Create a temporary build area
1
mkdir ~/downloads
2
cd ~/downloads
Copied!
Clone the ipmctl GitHub repository
1
git clone https://github.com/intel/ipmctl
2
cd ipmctl
Copied!
Optional: To build a different release version, use git to checkout the version branch, eg:
List all available branches using the following. It shows a master_1_0 and master_2_0 for version 1.x and 2.x respectively. This represents the current version for each release.
1
$ # git branch -a | grep master
2
* master
3
remotes/origin/HEAD -> origin/master
4
remotes/origin/master
5
remotes/origin/master_1_0
6
remotes/origin/master_2_0
Copied!
Example: Checkout the version 1.x branch and continue the build process:
1
$ git checkout remotes/origin/master_1_0
2
Switched to a new branch 'remotes/origin/master_1_0'
Copied!
To build a specific version, list the tags:
1
$ git tag
2
[...]
3
v01.00.00.3481
4
v01.00.00.3494
5
v01.00.00.3497
6
[...]
7
v02.00.00.3781
8
v02.00.00.3785
9
v02.00.00.3791
Copied!
Create a new branch from a specific tagged version, use the following and continue with the build process:
1
$ git checkout tags/v02.00.00.3791 -b v02.00.00.3791
2
Switched to a new branch 'v02.00.00.3791'
Copied!
If you installed the safelibc package, use:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DCMAKE_INSTALL_PREFIX=/ ..
3
make -j all
Copied!
To have ipmctl cmake download and statically build safelibc, use:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/ ..
3
make -j all
Copied!

Install

Install ipmctl using:
1
sudo make install
Copied!
This procedure provides the steps for building and installing ipmctl on Ubuntu.

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and ruby-asciidoctor. Steps to install these packages is provided below.

Install the required utilities

This procedure requires the following utilities
  • wget
  • git
  • cmake
  • pkg-config
  • autoconf
  • doxygen
  • libtool
  • gcc
  • gcc-c++
  • glibc
1
sudo apt update
2
sudo apt install wget git cmake pkg-config autoconf doxygen libtool build-essential
Copied!

libsafec

libsafec is available as a package in the default package repository for Ubuntu 19.10 (Eoan) or later. For earlier releases, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.
Verify the libsafec package can be found
1
sudo apt info libsafec* libsafec-dev*
Copied!
Install the libsafec and libsafec-devel packages
1
sudo apt install libsafec-3.5.3 libsafec-dev
Copied!

libndctl-devel

The development files can be installed from source code or packages. See 'Installing NDCTL & DAXCTL' in the ndctl user guide for detailed instructions.
To install the package:
1
sudo apt install libndctl-dev
Copied!

Asciidoctor

Ubuntu 16.04 & 18.04
Install asciidoctor using the ruby gems
1
sudo apt install ruby
2
sudo gem install asciidoctor asciidoctor-pdf --pre
Copied!
Ubuntu 19.04 or later
The ruby-asciidoctor package can be found in the default package repository.
Install the ruby-asciidoctor and optional ruby-asciidoctor-pdf packages
1
sudo apt install ruby-asciidoctor ruby-asciidoctor-pdf
Copied!

Build

Create a temporary build area
1
mkdir ~/downloads
2
cd ~/downloads
Copied!
Clone the ipmctl GitHub repository
1
git clone https://github.com/intel/ipmctl
Copied!
Optional: To build a different release version, use git to checkout the version branch, eg:
List all available branches using the following. It shows a master_1_0 and master_2_0 for version 1.x and 2.x respectively. This represents the current version for each release.
1
$ # git branch -a | grep master
2
* master
3
remotes/origin/HEAD -> origin/master
4
remotes/origin/master
5
remotes/origin/master_1_0
6
remotes/origin/master_2_0
Copied!
Example: Checkout the version 1.x branch and continue the build process:
1
$ git checkout remotes/origin/master_1_0
2
Switched to a new branch 'remotes/origin/master_1_0'
Copied!
To build a specific version, list the tags:
1
$ git tag
2
[...]
3
v01.00.00.3481
4
v01.00.00.3494
5
v01.00.00.3497
6
[...]
7
v02.00.00.3781
8
v02.00.00.3785
9
v02.00.00.3791
Copied!
Create a new branch from a specific tagged version, use the following and continue with the build process:
1
$ git checkout tags/v02.00.00.3791 -b v02.00.00.3791
2
Switched to a new branch 'v02.00.00.3791'
Copied!
If you installed the safelibc package, use:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DCMAKE_INSTALL_PREFIX=/ ..
3
make -j all
Copied!
To have ipmctl cmake download and statically build safelibc, use:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/ ..
3
make -j all
Copied!

Install

Install ipmctl using:
1
sudo make install
Copied!
This procedure provides the steps for building and installing ipmctl on SUSE Linux for Enterprise (SLES) and OpenSUSE (Leap).

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and rubygem-asciidoctor. Steps to install these packages is provided below.

Install the required utilities

This procedure requires the following utilities
  • wget
  • git
  • cmake
  • gcc
  • gcc-c++
  • gem
  • glibc
  • glibc-static
1
sudo zypper install wget git cmake gcc gcc-c++ gem glibc glibc-static
Copied!

libsafec

When compiling ipmctl from source code, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.

libndctl-devel

The development files can be installed from source code or packages. See 'Installing NDCTL & DAXCTL' in the ndctl user guide for detailed instructions. If you installed ndctl using the packages, install the ndctl-devel package using:
1
sudo zypper install libndctl-devel
Copied!
If you built ndctl from the source code, the required header files should already be available.

Asciidoctor

Install the rubygem-asciidoctor and optional rubygem-asciidoctor-pdf packages using the gem command
1
sudo gem install asciidoctor asciidoctor-pdf
Copied!

Build

Create a temporary build area
1
mkdir ~/downloads
2
cd ~/downloads
Copied!
Clone the ipmctl GitHub repository
1
git clone https://github.com/intel/ipmctl
2
cd ipmctl
Copied!
Optional: To build a different release version, use git to checkout the version branch, eg:
List all available branches using the following. It shows a master_1_0 and master_2_0 for version 1.x and 2.x respectively. This represents the current version for each release.
1
$ # git branch -a | grep master
2
* master
3
remotes/origin/HEAD -> origin/master
4
remotes/origin/master
5
remotes/origin/master_1_0
6
remotes/origin/master_2_0
Copied!
Example: Checkout the version 1.x branch and continue the build process:
1
$ git checkout remotes/origin/master_1_0
2
Switched to a new branch 'remotes/origin/master_1_0'
Copied!
To build a specific version, list the tags:
1
$ git tag
2
[...]
3
v01.00.00.3481
4
v01.00.00.3494
5
v01.00.00.3497
6
[...]
7
v02.00.00.3781
8
v02.00.00.3785
9
v02.00.00.3791
Copied!
Create a new branch from a specific tagged version, use the following and continue with the build process:
1
$ git checkout tags/v02.00.00.3791 -b v02.00.00.3791
2
Switched to a new branch 'v02.00.00.3791'
Copied!
The following cmake command will download and statically build safelibc:
1
mkdir output && cd output
2
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
3
make -j all
Copied!

Install

Install ipmctl using:
1
sudo make install
Copied!
Go to the Basic Usage section of this user guide for more information.

Troubleshooting

The following lists common issues and errors encountered during the cmake process and how to resolve them

Issue: -- Could NOT find asciidoctor-pdf (missing: ASCIIDOCTOR_PDF_BINARY)

You may see a warning during the cmake process referencing a missing asciidoctor-pdf binary.
1
-- Could NOT find asciidoctor-pdf (missing: ASCIIDOCTOR_PDF_BINARY)
2
asciidoctor-pdf not found
Copied!

Solution:

PDF documents can be built if asciidoctor-pdf is installed. This is completely optional. Warnings during the cmake make occur but can be ignored. Asciidoctor-pdf is installed using the gem utility. Asciidoctor-pdf requires Ruby 2.1 or later. CentOS 7 provides Ruby 2.0. See How to Install Ruby on CentOS/RHEL 7/6 for instructions to install a later version of Ruby. With Ruby >2.1 installed, install asciidoctor-pdf:
1
sudo gem install asciidoctor-pdf
Copied!

Issue: -- Could NOT find asciidoc (missing: ASCIIDOC_BINARY)

Solution:

If asciidoctor is installed, ascidoc is not required. This message can be safely ignored.---

Issue: -- Could NOT find a2x (missing: A2X_BINARY)

Solution:

The a2x binary is delivered with the asciidoc package. a2x converts Asciidoc text file to PDF, XHTML, HTML Help, manpage or plain text. If the asciidoc package is not installed, this message can be safely ignored. Asciidoctor will be used instead to build the documentation.

Issue: -- package 'safec-3.3>=03032018.0-g570fa5' not found

Example:
1
-- package 'safec-3.3>=03032018.0-g570fa5' not found
2
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:279 (message):
3
A required package was not found
4
Call Stack (most recent call first):
5
/usr/share/cmake/Modules/FindPkgConfig.cmake:333 (_pkg_check_modules_internal)
6
CMakeLists.txt:87 (pkg_check_modules)
Copied!
You should not encounter this message when using the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON cmake option.

Solution:

The issue can occur if the libsafec and libsafec-devel packages are not installed. See the 'Prerequisites' section at the top of this page.
If you installed the libsafec package from a repository other than EPEL, remove and re-install the libsafec package using the epel repository. Follow the instructions in the 'libsafec' section above.
If you built and installed libsafec from source code, the error is caused by a missing pkgconfig (pc) file. Update your LD_LIBRARY_PATH and PKG_CONFIG_PATH to include the path you installed libsafec to. For example, the following adds the common install locaitons to your shell environment. You will need to add these to your shell environment file (eg: ~/.bashrc) for them to become permanent.
1
export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64:${LD_LIBRARY_PATH}
2
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/share/pkgconfig:${PKG_CONFIG_PATH}
Copied!
Alternatively, add -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ONto the cmake file to download and build the static version of libsafec.

Issue: -- cc: internal compiler error: Killed (program cc1)

Solution:
Running make -j all runs lots of processes, which use more memory. The problem above occurs when your system runs out of memory. Use make instead of make -j all.
Last modified 7mo ago
Copy link