thelastpickle / cassandra-reaper

Automated Repair Awesomeness for Apache Cassandra
http://cassandra-reaper.io/
Apache License 2.0
485 stars 217 forks source link

Debian package places executables in /usr/local/bin instead of /usr/bin #275

Open danielkza opened 6 years ago

danielkza commented 6 years ago

Project board link

/usr/local is reserved for system administrators, and software managed by the system package manager should not place content there. The executables should live in /usr/bin instead.

Additionally, having the cassandra-reaper executable in /usr/local makes it impossible to customize the JVM options without overwriting installed package files, which is usually bad practice. It would be nice to have a way to override them with environment variables or a configuration file (although this probably warrants a different report).

┆Issue is synchronized with this Jira Story by Unito

jchoksijudopay commented 4 years ago

Just to clarify, this issue is not Debian specific. The RH / CentOS RPM packages also have the same issue:

Name        : reaper
Version     : 2.0.5
Release     : 1
Architecture: x86_64
Install Date: Wed 29 Jul 2020 01:08:05 AM UTC
Group       : default
Size        : 64139116
License     : unknown
Signature   : (none)
Source RPM  : reaper-2.0.5-1.src.rpm
Build Date  : Fri 19 Jun 2020 08:51:12 AM UTC
Build Host  : fv-az59.ssevj3vat21ehjswixikrxonzg.cx.internal.cloudapp.net
Relocations : /
Packager    : <runner@fv-az59>
Vendor      : runner@fv-az59
URL         : http://example.com/no-uri-given
Summary     : no description given
Description :
no description given
/etc/bash_completion.d/spreaper
/etc/cassandra-reaper/cassandra-reaper.yaml
/etc/cassandra-reaper/configs/cassandra-reaper-cassandra-sidecar.yaml
/etc/cassandra-reaper/configs/cassandra-reaper-cassandra-ssl.yaml
/etc/cassandra-reaper/configs/cassandra-reaper-cassandra.yaml
/etc/cassandra-reaper/configs/cassandra-reaper-h2.yaml
/etc/cassandra-reaper/configs/cassandra-reaper-memory.yaml
/etc/cassandra-reaper/configs/cassandra-reaper-postgres.yaml
/etc/cassandra-reaper/configs/cassandra-reaper.yaml
/etc/init.d/cassandra-reaper
/lib/systemd/system/cassandra-reaper.service
/usr/local/bin/cassandra-reaper
/usr/local/bin/spreaper
/usr/share/cassandra-reaper/cassandra-reaper-2.0.5.jar

Content under /usr/local/ needs to be outside of OS packaging control.

There should be a way to configure the JVM options without needing to modify the package controlled script.