How to install nghttp2, h2load on OracleLinux 6.7
- install HTTP/2 server nghttp2
- install HTTP/2 benchmark tool h2load
Background
https://gist.github.com/sonots/2bdf6cd26c23ef44db71
centos6 だと epel の libev が古くてめんどくさくなったので centos7 でビルドした
So let me try...
Prerequisite
- OracleLinux 6.7 installed (Red Hat Enterprise Linux Server 6.7)
Oracle Linux Server release 6.7
- Read : How to build from git https://github.com/tatsuhiro-t/nghttp2
Building from git
Building from git is easy, but please be sure that at least autoconf 2.68 is used:
$ autoreconf -i
$ automake
$ autoconf
$ ./configure
$ make
To compile the source code, gcc >= 4.8.3 or clang >= 3.4 is required.
Before compile ... required libraries
yum groupinstall "Development tools"
cd
git clone https://github.com/tatsuhiro-t/spdylay.git
git clone https://github.com/tatsuhiro-t/nghttp2.git
more spdylay/README.rst
more nghttp2/README.rst
gcc -v
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
We need to install newer gcc as well as Python 2.7 -
Installing Software Collection Library Utility from Oracle Public Yum
http://docs.oracle.com/cd/E37670_01/E59096/html/section_e3v_nbl_cr.html
# wget -O /etc/yum.repos.d/public-yum-ol6.repo http://public-yum.oracle.com/public-yum-ol6.repo
[ol6_software_collections]
name=Software Collection Library release 1.2 packages for Oracle Linux 6 (x86_64)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/SoftwareCollections12/x86_64/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
yum install scl-utils
yum install devtoolset-3 python27
scl enable devtoolset-3 python27 bash
wget ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.64.tar.gz
tar zxvf autoconf-2.64.tar.gz
cd autoconf-2.64
./configure
make
make install
autoconf --version
cd
wget ftp://xmlsoft.org/libxml2/libxml2-2.7.7-1.x86_64.rpm
wget ftp://xmlsoft.org/libxml2/libxml2-devel-2.7.7-1.x86_64.rpm
wget ftp://xmlsoft.org/libxml2/libxml2-python-2.7.7-1.x86_64.rpm
yum -Uvh libxml2-*
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/rudi_m/RedHat_RHEL-6/x86_64/libev4-4.15-7.1.x86_64.rpm
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/rudi_m/RedHat_RHEL-6/x86_64/libev-devel-4.15-7.1.x86_64.rpm
yum -Uvh libev*
Now make install
cd
cd spdylay
autoreconf -i
automake
autoconf
./configure
make
make install
cd ../nghttp2
export PKG_CONFIG_PATH=/lib/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig
autoreconf -i
automake
autoconf
./configure --with-spdylay
make
make install
Done
Requirements
The following package is required to build the libnghttp2 library:
- pkg-config >= 0.20
To build and run the unit test programs, the following package is required:
- cunit >= 2.1
To build the documentation, you need to install:
- sphinx (http://sphinx-doc.org/)
To build and run the application programs (
nghttp
,nghttpd
,nghttpx
andh2load
) in thesrc
directory, the following packages are required:
- OpenSSL >= 1.0.1
- libev >= 4.15
- zlib >= 1.2.3
ALPN support requires OpenSSL >= 1.0.2 (released 22 January 2015).
LibreSSL >= 2.2.0 can be used instead of OpenSSL, but OpenSSL has more features than LibreSSL at the time of this writing.To enable the SPDY protocol in the application program
nghttpx
andh2load
, the following package is required:
- spdylay >= 1.3.2
To enable
-a
option (getting linked assets from the downloaded resource) innghttp
, the following package is required:
- libxml2 >= 2.7.7
The HPACK tools require the following package:
- jansson >= 2.5
To build sources under the examples directory, libevent is required:
- libevent-openssl >= 2.0.8
To mitigate heap fragmentation in long running server programs (
nghttpd
andnghttpx
), jemalloc is recommended:
- jemalloc
libnghttp2_asio C++ library requires the following packages:
- libboost-dev >= 1.54.0
- libboost-thread-dev >= 1.54.0
The Python bindings require the following packages:
- cython >= 0.19
- python >= 2.7
- python-setuptools