Download/Install
Flexter is distributed as six packages: xml2er, xsd2er, json2er, merge2er, flexchma and flexter-ui. They are available from the Sonra YUM/DNF and APT repositories, and as RPM, DEB and TGZ files for manual installation.
Every method below needs the repository credentials provided by Sonra. Replace <USER> and <PASS> with them.
Repository Setup
Supported distributions: Red Hat Enterprise Linux, CentOS Stream, Rocky Linux, AlmaLinux, Fedora, Oracle Linux and Amazon Linux. Both dnf and yum work with the commands below.
Create the repository file, which normally requires root access:
sudo vi /etc/yum.repos.d/sonra-flexter.repo
with the following content:
[sonra-flexter]
name=Sonra Repository
baseurl=https://yum.sonra.io/flexter
username=<USER>
password=<PASS>
gpgkey=https://yum.sonra.io/RPM-GPG-KEY-Sonra
gpgcheck=0
enabled=0
priority=1
The repository is created with enabled=0 so that a routine dnf upgrade of the server never upgrades Flexter unintentionally. Always pass --repo=sonra-flexter explicitly when installing or upgrading Flexter.
Installing the latest version
sudo dnf --repo=sonra-flexter install xml2er xsd2er json2er merge2er flexchma flexter-ui
Installing a specific version
sudo dnf --repo=sonra-flexter install xml2er-2.14.2 xsd2er-2.14.2 json2er-2.14.2 merge2er-2.14.2 flexchma-2.14.2 flexter-ui-2.14.2
Supported distributions: Debian, Ubuntu, Linux Mint, MX Linux, Kali Linux, Raspberry Pi OS and Pop!_OS.
Write access (sudo or root) to /etc/apt/sources.list.d/ and /etc/apt/auth.conf.d/ is required, and the apt-transport-https, curl and gpg packages must be installed:
sudo apt update
sudo apt install apt-transport-https curl gpg
Import the Sonra signing key so that apt trusts the repository:
curl -sL https://apt.sonra.io/DEB-GPG-KEY-Sonra | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/DEB-GPG-KEY-Sonra
Create the repository list file:
echo "deb [arch=all signed-by=/etc/apt/trusted.gpg.d/DEB-GPG-KEY-Sonra] https://apt.sonra.io/flexter releases main #Sonra Flexter" | sudo tee /etc/apt/sources.list.d/sonra-flexter.list > /dev/null
Create the authentication file with your credentials:
echo "machine apt.sonra.io login <USER> password <PASS>" | sudo tee /etc/apt/auth.conf.d/sonra-flexter.conf > /dev/null
Installing the latest version
sudo apt update
sudo apt install xml2er xsd2er json2er merge2er flexchma flexter-ui
Installing a specific version
sudo apt update
sudo apt install xml2er=2.14.2 xsd2er=2.14.2 json2er=2.14.2 merge2er=2.14.2 flexchma=2.14.2 flexter-ui=2.14.2
Unlike the DNF repository, the APT repository is enabled by default. To avoid unintended Flexter upgrades during routine server maintenance, disable it once the installation is done by renaming the list file, and rename it back before the next Flexter upgrade:
# disable
sudo mv /etc/apt/sources.list.d/sonra-flexter.list{,.disabled}
# re-enable
sudo mv /etc/apt/sources.list.d/sonra-flexter.list{.disabled,}
Manual Download
When no repository has been set up, the packages can be downloaded directly and installed manually.
Every package is available at the following URL pattern. Omit -VERSION to get the latest release:
https://download.sonra.io/flexter/<MODULE>[-VERSION].<EXTENSION>
# examples
https://download.sonra.io/flexter/xml2er.rpm
https://download.sonra.io/flexter/xml2er-2.14.2.rpm
https://download.sonra.io/flexter/xml2er-2.14.2.tgz
The downloads are authenticated. All examples below use curl, but wget works the same way:
# curl
curl -u "<USER>:<PASS>" -OL <URL>
# wget
wget --user "<USER>" --password "<PASS>" <URL>
Download the installers
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/flexchma.rpm
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/xml2er.rpm
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/xsd2er.rpm
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/json2er.rpm
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/merge2er.rpm
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/flexter-ui.rpm
Checking the hashes (optional)
Each package has a companion .md5 file to verify the download:
for m in flexchma xml2er xsd2er json2er merge2er flexter-ui; do
curl -u "<USER>:<PASS>" -OL "https://download.sonra.io/flexter/$m.rpm.md5"
done
# helper function
md5ck() { md5sum -c <(echo "$(cat "$1.md5") $1"); }
for f in *.rpm; do md5ck "$f"; done
Install the packages
sudo dnf install xml2er*.rpm xsd2er*.rpm json2er*.rpm merge2er*.rpm flexchma*.rpm flexter-ui*.rpm
Download the installers
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/flexchma.deb
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/xml2er.deb
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/xsd2er.deb
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/json2er.deb
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/merge2er.deb
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/flexter-ui.deb
Checking the hashes (optional)
Each package has a companion .md5 file to verify the download:
for m in flexchma xml2er xsd2er json2er merge2er flexter-ui; do
curl -u "<USER>:<PASS>" -OL "https://download.sonra.io/flexter/$m.deb.md5"
done
# helper function
md5ck() { md5sum -c <(echo "$(cat "$1.md5") $1"); }
for f in *.deb; do md5ck "$f"; done
Install the packages
sudo apt install ./xml2er*.deb ./xsd2er*.deb ./json2er*.deb ./merge2er*.deb ./flexchma*.deb ./flexter-ui*.deb
For distributions that are neither RHEL nor Debian based, such as macOS, Alpine, Arch, Gentoo, the BSDs or Solaris derivatives, the .tgz packages are extracted manually.
Download the installers
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/flexchma.tgz
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/xml2er.tgz
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/xsd2er.tgz
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/json2er.tgz
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/merge2er.tgz
curl -u "<USER>:<PASS>" -OL https://download.sonra.io/flexter/flexter-ui.tgz
Checking the hashes (optional)
Each package has a companion .md5 file to verify the download:
for m in flexchma xml2er xsd2er json2er merge2er flexter-ui; do
curl -u "<USER>:<PASS>" -OL "https://download.sonra.io/flexter/$m.tgz.md5"
done
# helper function
md5ck() { md5sum -c <(echo "$(cat "$1.md5") $1"); }
for f in *.tgz; do md5ck "$f"; done
Install with root access
The packages extract into /usr/share/flexter. Link the command line tools into /usr/bin and the configuration directory into /etc/flexter:
for m in flexchma xml2er xsd2er json2er merge2er flexter-ui; do
sudo tar xzf $m*.tgz -C /usr/share
done
for m in flexchma xml2er xsd2er json2er merge2er; do
sudo ln -s /usr/share/flexter/$m/bin/$m /usr/bin/$m
done
sudo mkdir -p /etc/flexter
sudo ln -s /usr/share/flexter/conf /etc/flexter/conf
Install without root access
The same layout under the user’s home directory, with the tools linked into ~/.local/bin and the configuration into ~/.config/flexter:
mkdir -p ~/.local/share ~/.local/bin ~/.config
for m in flexchma xml2er xsd2er json2er merge2er flexter-ui; do
tar xzf $m*.tgz -C ~/.local/share
done
for m in flexchma xml2er xsd2er json2er merge2er; do
ln -s ~/.local/share/flexter/$m/bin/$m ~/.local/bin/$m
done
ln -s ~/.local/share/flexter/conf ~/.config/flexter
Make sure ~/.local/bin is on your PATH. If it is not, add it to your shell profile:
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bash_profile
source ~/.bash_profile
Continue with the Database Setup and the Post-Installation steps.