The daemon-level requirements below cover capture and the file / JSON output modes. Direct-connect target modes layer additional prerequisites on top — see Per-output-mode requirements immediately after.
| Component | Notes |
|---|---|
| IBM Informix CSDK | Installed on the host running the Ripper. INFORMIXDIR set, setcsdk sourced — the package wrapper at /usr/bin/oni_ripper handles this for you via /etc/oni_ripper/environment. Covers both the source CDC connection and the target.mode: informix direct-connect target (same ESQL/C runtime). |
| IBM Informix server with CDC | syscdcv1 must be accessible from the Ripper host. |
| libyaml | Runtime library (libyaml); package's Depends / Requires pulls it in. |
| unixODBC (only when used) | Runtime library (unixODBC / unixodbc). The binary loads libodbc.so.2 at runtime via dlopen only when the operator's YAML selects target.mode: odbc. Hosts that don't use ODBC don't need the package installed at all. Packaging metadata lists it as Suggests / Recommends, not Requires / Depends. |
| librdkafka (only when used) | Runtime library (librdkafka). Same dlopen model as unixODBC: librdkafka.so.1 is loaded only when target.mode: kafka is selected. Hosts that don't use Kafka don't need the package installed. |
| POSIX threads | pthreads, present on every supported distro. |
| Source database | Must have logical logging enabled (CDC requires log records to capture). |
| target.mode | Direct connect? | Extra prerequisites on the Ripper host |
|---|---|---|
| file | no | None beyond the daemon-level requirements. Writes one .sql file per committed transaction under target.file.directory; only filesystem write access is needed. |
| json | no | None beyond the daemon-level requirements. Writes one RFC 8259 .json file per committed transaction under target.json.directory. |
| csv | no | None beyond the daemon-level requirements. Writes one RFC 4180 .csv file per committed transaction under target.csv.directory. |
| kafka | yes — librdkafka (dlopen) | Install librdkafka on the Ripper host (dnf install librdkafka on Fedora / RHEL, apt install librdkafka1 on Debian / Ubuntu). The Ripper loads librdkafka.so.1 at runtime via dlopen when this mode is selected; if the package isn't present the connector logs a CRITICAL line and the target is disabled rather than failing the whole daemon. Network reachability from the Ripper host to the brokers listed in target.kafka.brokers; for SASL/SSL set target.kafka.security_protocol + sasl_*. |
| informix | yes — ESQL/C | Already covered: the IBM Informix CSDK is required for source capture, and the same runtime serves the target connection. The target server must be reachable from the Ripper host and listed in $INFORMIXSQLHOSTS / /etc/sqlhosts. The connecting user needs INSERT / UPDATE / DELETE on the replicated tables (and CONNECT on the target DB). No additional packages. |
| odbc | yes — unixODBC (dlopen) | Three components, all on the Ripper host: (1) the unixODBC runtime (install via dnf install unixODBC on Fedora / RHEL or apt install unixodbc on Debian / Ubuntu — the Ripper loads libodbc.so.2 at runtime via dlopen, so it's only needed when this mode is actually used); (2) the ODBC driver package for the target database (postgresql-odbc, mariadb-connector-odbc, or whichever vendor driver matches the target); (3) a DSN entry in /etc/odbc.ini (or ~/.odbc.ini) that resolves to the target server. See ODBC prerequisites below for the exact package names and the odbcinst.ini / odbc.ini format. |
sudo dnf install ./oni_ripper-1.0.0-1.*.rpm
sudo dpkg -i ./oni-logripper_1.0.0_amd64.deb sudo apt-get install -f # pull missing Depends if any
| Path | Purpose |
|---|---|
| /usr/bin/oni_ripper | Wrapper that sources /etc/oni_ripper/environment then exec's the real binary. |
| /usr/libexec/oni_ripper/oni_ripper | The actual ELF binary. |
| /usr/lib/systemd/system/oni_ripper.service
(RPM) /lib/systemd/system/oni_ripper.service (DEB) |
systemd unit. |
| /etc/oni_ripper/oni_ripper.yml | Runtime config (preserved across upgrades). |
| /etc/oni_ripper/environment | Sources the Informix CSDK setup. |
| /etc/sysconfig/oni_ripper (RPM) /etc/default/oni_ripper (DEB) |
Extra CLI flags via RIPPER_OPTS. |
| /var/lib/oni_ripper/{state, schema_archive, control} | Runtime state directories. |
| /var/log/oni_ripper/ | Log directory. |
| /run/oni_ripper/ | PID file. |
| /usr/lib64/liboni_ripper.so.0 (and the SONAME symlink chain) | Shared library. The CLI binary links against this; host applications can embed the engine directly via the public C API at /usr/include/oni_ripper.h. |
| /usr/lib64/liboni_ripper.a | Static library, same object set as the shared lib. |
| /usr/include/oni_ripper.h | Public C API header. The only header that's part of the library contract; cdcripper.h stays private. |
| /usr/lib64/pkgconfig/oni_ripper.pc | pkg-config manifest. Embedders link with $(pkg-config --cflags --libs oni_ripper). |
The Informix CSDK is not bundled in the package — the wrapper sources /home/informix/etc/setcsdk (or /opt/informix/etc/setcsdk) at startup. If the CSDK lives elsewhere, edit /etc/oni_ripper/environment after install.
The ODBC output mode needs three things on the host running the Ripper: the unixODBC runtime, the driver for the target database, and a DSN entry that resolves to the target server.
sudo dnf install unixODBC sudo dnf install postgresql-odbc # PostgreSQL driver sudo dnf install mariadb-connector-odbc # MariaDB / MySQL driver
sudo apt-get install unixodbc sudo apt-get install odbc-postgresql # PostgreSQL driver sudo apt-get install odbc-mariadb # MariaDB / MySQL driver
unixODBC reads driver registrations from /etc/odbcinst.ini and DSN definitions from /etc/odbc.ini (system-wide) or ~/.odbc.ini (per-user). Most distro driver packages drop a snippet under /etc/odbcinst.ini.d/.
# /etc/odbcinst.ini [PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/lib64/psqlodbcw.so # /etc/odbc.ini [my_postgres_dsn] Driver = PostgreSQL Servername = target.example.com Port = 5432 Database = warehouse
Verify the DSN with isql before pointing the Ripper at it:
isql -v my_postgres_dsn dbuser dbpass
Then point the Ripper at it via the YAML config:
target:
mode: odbc
odbc:
dsn: "my_postgres_dsn"
user: "dbuser"
password: "dbpass"
If the operator picks target.mode: odbc on a host where the prerequisites are missing or the DSN is wrong, the ODBC connector reports the failure at startup and disables the target rather than running with a half-broken sink. Each diagnostic line carries the SQLSTATE plus a one-line fix hint (IM002 → DSN not in /etc/odbc.ini, IM003 → driver missing, 28000 → auth, etc.).
A dedicated oni_ripper system user/group is created via the package's post-install script. Grant the user the necessary database privileges (GRANT DBA TO oni_ripper in the source DB and on syscdcv1), edit /etc/oni_ripper/oni_ripper.yml, then:
sudo systemctl enable --now oni_ripper sudo journalctl -u oni_ripper -f
To run as the Informix admin account instead, drop a systemd override at /etc/systemd/system/oni_ripper.service.d/override.conf setting User=informix and Group=informix.
To discuss how Oninit ® can assist please call on +1-913-732-8892 or alternatively just send an email specifying your requirements.
You get all this for free.. think about what you get if you pay us