Download

The Flexter download process.

Repository Setup

There are two repositories available for Redhat and Debian based Linux operation systems

YUM/DNF Repository

Yum has been the main package installation tool for Redhat based Linux distributions. It has been recently replaced by dnf. However, both yum and dnf are mutually compatible.

Flexter repository configuration should be added under the standard yum location. Please note it will normally require root access to create/edit, eg.:

$ sudo vi /etc/yum.repos.d/sonra-flexter.repo

Below are the recommended settings to be added. The values for and should be altered accordingly with credentials provided by Sonra.

[sonra-flexter]
name=Sonra Repository
baseurl=https://nexus.sonra.io/repository/yum-releases/flexter
username=<USER>
password=<PASS>
gpgkey=https://nexus.sonra.io/RPM-GPG-KEY-Sonra
gpgcheck=0
enabled=0
priority=1

The repository is disabled (enabled=0) by default. It helps to avoid unwanted upgrades, eg. when the server administrator only wants to upgrade the server packages, not necessarily include Flexter itself.

In this case the parameter –enablerepo should be always explicitly used with yum or dnf commands as on the example below:

Installing the latest version

$ sudo yum --enablerepo=sonra-flexter install xml2er xsd2er json2er merge2er flexchma flexter-ui

Installing the specific version

$ sudo yum --enablerepo=sonra-flexter install xml2er-2.4.5 xsd2er-2.4.5 json2er-2.4.5 merge2er-2.4.5 flexchma-2.4.5 flexter-ui-2.4.5

APT Repository

APT has been the main package installation tool for Debian based Linux distributions. Recently it has been replaced by SNAP in Ubuntu based distributions, however, the SNAP installations are not supported yet.

Please note write access (sudo/root) to the following folders will most likely be required: /etc/apt/sources.list.d/ and /etc/apt/auth.conf.d/.

First step is to bring the public keys to recognize the repository’s authenticity and avoid warnings from apt. Depending on the exact distribution and version one of the two commands should work:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 85E8BFDE3AA75F69

# alternatively, if the above doesn’t work:

$ curl -sL @- https://nexus.sonra.io/RPM-GPG-KEY-Sonra | sudo apt-key add -

Please also make sure you have the apt-transport-https installed:

$ sudo apt install apt-transport-https

Then, the new list file needs to be created, sonra-flexter.list:

$ echo "deb [arch=all] https://nexus.sonra.io/repository/apt-releases releases main #Sonra Flexter" | sudo tee /etc/apt/sources.list.d/sonra-flexter.list

Also the new authentication auth file, sonra-flexter.conf, with the and values adapted using credentials provided by Sonra:

echo "machine nexus.sonra.io login <USER> password <PASSWORD>" | sudo tee /etc/apt/auth.conf.d/sonra-flexter.conf

After updating the indexes and the Flexter packages can be installed:

Installing the latest version

$ sudo apt update
$ sudo apt install xml2er xsd2er json2er merge2er flexchma flexter-ui

Installing the specific version

$ sudo apt update
$ sudo apt install xml2er=2.4.5 xsd2er=2.4.5 json2er=2.4.5 merge2er=2.4.5 flexchma=2.4.5 flexter-ui=2.4.5

The repository is enabled by default. We recommend to disable it after installations to avoid unwanted upgrades, eg. when the server administrator wants to upgrade the server packages, not Flexter itself.

To do that edit the /etc/apt/sources.list.d/sonra-flexter.list and comment the relevant section as below:

#deb [arch=all] https://nexus.sonra.io/repository/apt-releases releases main #Sonra Flexter

or run the script to do same:

Disable

$ sudo sed -ri 's/^([^#])/#\1/g' /etc/apt/sources.list.d/sonra-flexter.list

Enable

$ sudo sed -ri 's/^#+//g' /etc/apt/sources.list.d/sonra-flexter.list

Direct Download

In cases where the repository haven’t being setup, the packages can be downloaded directly and installed manually as the procedures below.

Make sure the curl or wget command is available. All examples are based on curl, but you can use wget instead.

# curl approach
$ curl -u "<USER>:<PASS>" -OL <URL>

# wget approach
$ wget --user "<USER>" --password "<PASS>" <URL>

URL pattern:

https://nexus.sonra.io/download/<MODULE>[-VERSION].<EXTENSION>

Examples:

# latest version
$ https://nexus.sonra.io/download/xml2er.rpm

# specific version
$ https://nexus.sonra.io/download/xml2er-2.4.5.rpm

# different package
$ https://nexus.sonra.io/download/xml2er-2.4.5.tgz

Redhat based

Redhat/CentOS/Fedora/Scientific/Oracle variants

Download installers

$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/flexchma.rpm
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/xml2er.rpm
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/xsd2er.rpm
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/json2er.rpm
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/merge2er.rpm
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/flexter-ui.rpm

Checking hash (optional)

Checking if the files were downloaded correctly with the md5 hash algorithm.

$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/flexchma.rpm.md5
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/xml2er.rpm.md5
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/xsd2er.rpm.md5
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/json2er.rpm.md5
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/merge2er.rpm.md5
$ curl -u "USER:PASS" -OL https://nexus.sonra.io/download/flexter-ui.rpm.md5

# helper function
$ md5ck() { md5sum -c <(echo `cat $1.md5` $1); }

$ md5ck flexchma*.rpm
$ md5ck xml2er*.rpm
$ md5ck xsd2er*.rpm
$ md5ck json2er*.rpm
$ md5ck merge2er*.rpm
$ md5ck flexter-ui*.rpm

Installing the packages

$ yum install -y xml2er*.rpm xsd2er*.rpm json2er*.rpm merge2er*.rpm flexchma*.rpm flexter-ui*.rpm

Debian based

Debian/Ubuntu/Linux Mint

Download installers

$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexchma.deb
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xml2er.deb
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xsd2er.deb
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/json2er.deb
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/merge2er.deb
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexter-ui.deb

Checking hash (optional)

Checking if the files were downloaded correctly with the md5 hash algorithm.

$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexchma.deb.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xml2er.deb.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xsd2er.deb.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/json2er.deb.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/merge2er.deb.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexter-ui.deb.md5

# helper function
$ md5ck() { md5sum -c <(echo `cat $1.md5` $1); }

$ md5ck flexchma*.deb
$ md5ck xml2er*.deb
$ md5ck xsd2er*.deb
$ md5ck json2er*.deb
$ md5ck merge2er*.deb
$ md5ck flexter-ui*.deb

Installing the packages

$ apt install xml2er*.deb xsd2er*.deb json2er*.deb merge2er*.deb flexchma*.deb flexter-ui*.deb

Unix based

Linux/Unix/Mac OS X

Download installers

$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexchma.tgz
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xml2er.tgz
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xsd2er.tgz
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/json2er.tgz
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/merge2er.tgz
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexter-ui.tgz

Checking hash (optional)

Checking if the files were downloaded correctly with the md5 hash algorithm.

$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexchma.tgz.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xml2er.tgz.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/xsd2er.tgz.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/json2er.tgz.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/merge2er.tgz.md5
$ curl -u USER:PASS -OL https://nexus.sonra.io/download/flexter-ui.tgz.md5

# helper function

$ md5ck() { md5sum -c <(echo `cat $1.md5` $1); }

$ md5ck flexchma*.tgz
$ md5ck xml2er*.tgz
$ md5ck xsd2er*.tgz
$ md5ck json2er*.tgz
$ md5ck merge2er*.tgz
$ md5ck flexter-ui*.tgz

Installing the packages - with root access

# flexchma
$ tar xzf flexchma*.tgz -C /usr/share
$ ln -s /usr/share/flexter/flexchma/bin/flexchma /usr/bin/ 
# xml2er
$ tar xzf xml2er*.tgz -C /usr/share
$ ln -s /usr/share/flexter/xml2er/bin/xml2er /usr/bin/xml2er

# xsd2er
$ tar xzf xsd2er*.tgz -C /usr/share
$ ln -s /usr/share/flexter/xsd2er/bin/xsd2er /usr/bin/xsd2er

# json2er
$ tar xzf json2er*.tgz -C /usr/share
$ ln -s /usr/share/flexter/json2er/bin/json2er /usr/bin/json2er

# merge2er
$ tar xzf merge2er*.tgz -C /usr/share
$ ln -s /usr/share/flexter/merge2er/bin/merge2er /usr/bin/merge2er

# flexter-ui
$ mkdir -p /usr/share/flexter/flexter-ui
$ tar xzf flexter-ui*.tgz -C /usr/share/flexter/flexter-ui

# complete the installation
$ mkdir -p /etc/flexter
$ ln -s /usr/share/flexter/conf /etc/flexter/conf

Installing the packages - without root access

$ mkdir -p ~/.local/share ~/bin
# flexchma
$ tar xzf flexchma*.tgz -C ~/.local/share
$ ln -s ~/.local/share/flexter/flexchma/bin/flexchma ~/bin/flexchma
# xml2er
$ tar xzf xml2er*.tgz -C ~/.local/share
$ ln -s ~/.local/share/flexter/xml2er/bin/xml2er ~/bin/xml2er

# xsd2er
$ tar xzf xsd2er*.tgz -C ~/.local/share
$ ln -s ~/.local/share/flexter/xsd2er/bin/xsd2er ~/bin/xsd2er

# json2er
$ tar xzf json2er*.tgz -C ~/.local/share
$ ln -s ~/.local/share/flexter/json2er/bin/json2er ~/bin/json2er

# merge2er
$ tar xzf merge2er*.tgz -C ~/.local/share
$ ln -s ~/.local/share/flexter/merge2er/bin/merge2er ~/bin/merge2er

# flexter-ui
$ mkdir -p ~/.local/share/flexter/flexter-ui
$ tar xzf flexter-ui*.tgz -C ~/.local/share/flexter/flexter-ui

# complete the installation

$ mkdir -p ~/.config
$ ln -s ~/.local/share/flexter/conf ~/.config/flexter
# optional - add ~/bin in the path if it isn't there
echo 'export PATH="$PATH:$HOME/bin"' >> ~/.bash_profile
source ~/.bash_profile