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:
access to YumaWorks dld site: https://www.yumaworks.com/dld (account needed)
or:
access to YumaPro SDK Basic
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
External Packages Needed by the py-sil-app
Refer to External Packages Needed by PY-SIL