diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index 5a0f4b1..9616634 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -10,9 +10,6 @@
 if [[ $ID == macos && ${VERSION_ID%%.*} -ge 12 ]]; then
     KEYCHAIN="--without-osx-keychain"
 fi
-if [[ -n $DISABLE_PCH ]]; then
-    PCH="--without-pch"
-fi
 
 set -x
 
@@ -25,7 +22,7 @@
     ./waf --color=yes distclean
 
     # Build static and shared library in release mode with examples
-    ./waf --color=yes configure --enable-static --enable-shared --with-examples $PCH
+    ./waf --color=yes configure --enable-static --enable-shared --with-examples
     ./waf --color=yes build
 
     # Cleanup
@@ -33,7 +30,7 @@
 fi
 
 # Build shared library in debug mode with tests
-./waf --color=yes configure --disable-static --enable-shared --debug --with-tests $ASAN $COVERAGE $KEYCHAIN $PCH
+./waf --color=yes configure --disable-static --enable-shared --debug --with-tests $ASAN $COVERAGE $KEYCHAIN
 ./waf --color=yes build
 
 # (tests will be run against the debug version)
@@ -41,9 +38,9 @@
 # Install
 sudo ./waf --color=yes install
 
-if [[ $ID_LIKE == *fedora* ]]; then
-    sudo tee /etc/ld.so.conf.d/ndn.conf >/dev/null <<< /usr/local/lib64
-fi
 if [[ $ID_LIKE == *linux* ]]; then
+    if [[ $(uname -m) == x86_64 && -d /usr/lib64 ]]; then
+        sudo tee /etc/ld.so.conf.d/ndn.conf >/dev/null <<< /usr/local/lib64
+    fi
     sudo ldconfig
 fi
diff --git a/.jenkins.d/40-headers-check.sh b/.jenkins.d/40-headers-check.sh
index 28cc98f..5e543dc 100755
--- a/.jenkins.d/40-headers-check.sh
+++ b/.jenkins.d/40-headers-check.sh
@@ -11,7 +11,7 @@
   exit 0
 fi
 
-if [[ $ID_LIKE == *fedora* ]]; then
+if [[ $ID_LIKE == *linux* && -d /usr/local/lib64/pkgconfig ]]; then
   export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
 fi
 
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index 798ac40..78ca054 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -161,37 +161,37 @@
     sudo ldconfig
 
 .. note::
-  When the library is installed in a non-default location (in general: not in ``/usr/lib``
-  or ``/usr/local/lib``; on some Linux distros like Fedora and its derivatives, including
-  CentOS: not in ``/usr/lib``), the following additional actions may be necessary.
+  On Linux, when the library is installed in a non-default location (generally, not in
+  ``/usr/lib`` or ``/usr/local/lib``), the following additional actions may be necessary.
 
-  The library installation path should be added to ``/etc/ld.so.conf`` or in
-  ``/etc/ld.so.conf.d/*.conf`` **before** running ``ldconfig``. For example:
+  The library installation path should be added to ``/etc/ld.so.conf`` or to
+  ``/etc/ld.so.conf.d/*.conf`` before running ``ldconfig``. For example:
 
   .. code-block:: sh
 
-      echo /usr/local/lib | sudo tee /etc/ld.so.conf.d/ndn-cxx.conf
+      echo /usr/local/lib64 | sudo tee /etc/ld.so.conf.d/ndn-cxx.conf
+      sudo ldconfig
 
   Alternatively, the ``LD_LIBRARY_PATH`` environment variable can be set to point to
   the installation directory of the shared library:
 
   .. code-block:: sh
 
-      export LD_LIBRARY_PATH=/usr/local/lib
+      export LD_LIBRARY_PATH=/usr/local/lib64
 
 The ``./waf install`` command installs the following files:
 
--  ``<LIBPATH>/libndn-cxx.a``: static NDN C++ library (if enabled).
--  ``<LIBPATH>/libndn-cxx.so``, ``<LIBPATH>/libndn-cxx.so.<VERSION>`` (on Linux),
-   ``<LIBPATH>/libndn-cxx.dylib``, ``<LIBPATH>/libndn-cxx.<VERSION>.dylib`` (on macOS):
+-  ``<LIBDIR>/libndn-cxx.a``: static NDN C++ library (if enabled).
+-  ``<LIBDIR>/libndn-cxx.so``, ``<LIBDIR>/libndn-cxx.so.<VERSION>`` (on Linux),
+   ``<LIBDIR>/libndn-cxx.dylib``, ``<LIBDIR>/libndn-cxx.<VERSION>.dylib`` (on macOS):
    shared NDN C++ library (if enabled).
--  ``<LIBPATH>/pkgconfig/libndn-cxx.pc``: pkgconfig file storing all necessary flags to
+-  ``<LIBDIR>/pkgconfig/libndn-cxx.pc``: pkgconfig file storing all necessary flags to
    build against the library. For example, if the ``pkg-config`` or ``pkgconf-pkg-config``
    package is installed and ``PKG_CONFIG_PATH`` is configured properly (or if
-   ``<LIBPATH>/pkgconfig`` is a default search path), the command ``pkg-config --cflags
+   ``<LIBDIR>/pkgconfig`` is a default search path), the command ``pkg-config --cflags
    --libs libndn-cxx`` will return all necessary compile and link flags for the library.
--  ``<BINPATH>/ndnsec``: command-line tool to manage NDN keys and certificates.
--  ``<BINPATH>/ndnsec-*``: convenience aliases for ``ndnsec`` tools.
+-  ``<BINDIR>/ndnsec``: command-line tool to manage NDN keys and certificates.
+-  ``<BINDIR>/ndnsec-*``: convenience aliases for ``ndnsec`` tools.
 
 If configured with tests (``./waf configure --with-tests``), the above commands
 will also produce:
