Package Pre-requisites

YumaPro SDK installs on most modern Linux systems with very few requirements. You will need:

  • $HOME needs to be set on your system or you need to run netconfd-pro with the option --home=/home/<YOUR-USER-NAME>. To set your $HOME environment variable see: https://help.ubuntu.com/community/EnvironmentVariables

  • a current version of one of the supported Linux systems

  • access to the External Open Source packages listed below

  • root access to your Linux system to install packages

Also, either:

or:

For YumaPro SDK licensees:

You should have received a username and password for access to YumaWorks download site that provides access to the YumaWorks products you have licensed. If you have not received access please contact sales@yumaworks.com.

External Package Needed by the Server and Client

libxml2

libxml2: is needed by some of the XML parsing functions This is usually installed by default on most Linux systems. If you are building YumaPro from source you will also need the associated developer package called libxml2-dev on DEB based systems and libxml2-devel on RPM based systems.

Ubuntu version:

mydir> sudo apt-get install libxml2-dev

Fedora version:

mydir> sudo dnf install libxml2-devel

It is advised to utilize version 2.12+ of libxml2 for optimal performance.

libcbor

libcbor: is needed if the WITH_YANG_CBOR=1 make flag is used in a source build.

  • This library is not needed for binary packages.

  • This library is only used for the Binary Push feature at this time.

  • Introduced in the 22.10T release train.

The developer version of this package must be used. It is called libcbor-dev on DEB based systems and libcbor-devel on RPM based systems.

Ubuntu version:

mydir> sudo apt-get install libcbor-dev

Fedora version:

mydir> sudo dnf install libcbor-devel

Build libcbor From Source Code

If the Binary Push feature is used then the shared library version installed by the platform packager cannot be used. The cmake program must be installed to build libcbor.

The make or linker flags are somehow incompatible because the server will crash as soon as a 'streaming` callback is invoked in the CBOR parser. This behavior does not happen if the library is built from the github sources.

  • The binary library must be built.

  • The static version of the libcbor library should be linked to the application.

The script called 'mk-cbor.sh' shows an example script to make this library.

#
# get, build and install the libcbor.a module
# only needed if yumapro built WITH_YANG_CBOR=1
#
# MUST call in the parent directory of the libcbor dir
# or a new libcbor will be retrieved
#
# Installs in /usr/include and /usr/lib NOT /usr/local
# This allows the static library to be favored if the
# libcbor-dev package also installed
#

echo "Checking if libcbor sources are present in current directory"

if [ ! -d "libcbor" ]
then
    echo "Cloning libcbor github repo"
    git clone https://github.com/PJK/libcbor.git
fi

echo "Building libcbor in bldcbor directory"

mkdir -p bldcbor
rm -rf bldcbor/*
cd bldcbor

cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ../libcbor
make cbor
sudo make install

cd ..

External Packages Needed by the Server

OpenSSH

openssh-server: is needed by the netconfd-pro server for NETCONF over Secure Shell (SSH) support. This package may not be installed on some Linux systems.

The /etc/ssh/sshd_config file must be properly configured and the SSH server restarted before the netconfd-pro server will work. The SSH configuration is covered in Configure SSH.

Ubuntu version:

mydir> sudo apt-get install openssh-server

Fedora version:

mydir> sudo dnf install openssh-server

OpenSSL

openssl: is needed to enable netconfd-pro server and yangcli-pro client to communicate using Transport Layer Security (TLS). This package may not be installed on some Linux systems.

Certificates, /etc/yumapro/netconfd-pro.conf and /etc/yumapro/yangcli-pro.conf must be properly configured to use TLS. The TLS configuration is covered in Configure TLS.

Ubuntu version:

mydir> sudo apt-get install libssl-dev

Fedora version:

mydir> sudo dnf install openssl-devel

libcurl

libcurl: is needed by the netconfd-pro server to support <copy-config> to/from an FTP or TFTP URL. This package may not be installed on some Linux systems. If you are building the software from source code, this library is only required if the WITH_CURL=1 or EVERYTHING=1 make parameter is used. There are several Ubuntu variants of the libcurl4 package. The “gnutls” variant is shown below:

Ubuntu version:

mydir> sudo apt-get install libcurl4-gnutls-dev

Fedora version:

mydir> sudo dnf install libcurl-devel

libfcgi

libfcgi: is needed by the netconfd-pro server to support the RESTCONF protocol. This package may not be installed on some Linux systems. If you are building the software from source code, this library is only required if the WITH_RESTCONF=1 or EVERYTHING=1 make parameter is used.

Ubuntu version:

mydir> sudo apt-get install libfcgi-dev

Fedora version:

mydir> sudo dnf install fcgi-devel

If commands shown above are not successful, install and build FastCGI developer kit from the source:

The archived WEB site for FastCGI: FastCGI Archives

Download latest libfcgi: libfcgi 2.4.1

Build and install from the source (configure, make, make install)

External Packages Needed by the Client

The following packages are needed for the yangcli-pro client to function. If you are building YumaPro from source you will also need the associated developer packages.

libssh2

libssh2: is needed in order to connect to NETCONF servers using the SSH protocol.

  • The developer version of this package should be used. It is called libssh2-1-dev on DEB based systems and libssh2-devel on RPM based systems.

Ubuntu version:

mydir> sudo apt-get install libssh2-1-dev

Fedora version:

mydir> sudo dnf install libssh2-devel

Users of Red Hat and CentOS version 8 and above may find libssh2 is not provided. Please refer this solution in this case.

ncurses

ncurses: is needed for some terminal support. This package is installed by the default Linux installation process. The developer version of this package is called libncurses5-dev on DEB based systems and ncurses-devel on RPM based systems.

Ubuntu version:

mydir> sudo apt-get install libncurses5-dev

Fedora version:

mydir> sudo dnf install ncurses-devel

zlib1g

zlib1g: is needed for data compression support, used by other libraries that YumaPro imports. This package is installed by the default Linux installation process. The developer version of this package. It is called zlib1g-dev on DEB based systems.

Ubuntu version:

mydir> sudo apt-get install zlib1g-dev

Fedora version:

mydir> sudo dnf install zlib-devel

libzmq

libzmq: is needed for ZeroMQ Messaging APIs. This package is not installed by the default Linux installation process.

  • The YumaPro yangcli-gw Manual describes the yangcli-gw program that uses this library.

  • This package is needed only if the WITH_ZEROMQ=1 or the EVERYTHING=1 make flag is used in a source build.

  • The yangcli-gw program is only available in the 23.10T release train, and only in Advanced SDK binary packages.

  • Refer to the yangcli-gw Getting Started section for more details.

Ubuntu version:

mydir> sudo apt-get install libzmq3-dev

Fedora version:

mydir> sudo dnf install zeromq-devel