Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: Packaging
    • Labels:
      None

      Description

      Starting with CASSANDRA-13252, new releases will be provided as both official RPM and Debian packages. While the Debian packages are already well established with our user base, the RPMs just have been release for the first time and still require some attention.

      Feel free to discuss RPM related issues in this ticket and open a sub-task to fill a bug report.

      Please note that native systemd support will be implemented with CASSANDRA-13148 and this is not strictly a RPM specific issue. We still intent to offer non-systemd support based on the already working init scripts that we ship. Therefor the first step is to make use of systemd backward compatibility for SysV/LSB scripts, so we can provide RPMs for both systemd and non-systemd environments.

      1. cassandra-3.9-centos6.patch
        14 kB
        Nathaniel Tabernero

        Issue Links

          Activity

          Hide
          ntabernero Nathaniel Tabernero added a comment -

          patch file against cassandra-3.9 for creating a rpm which works on Centos 6

          Show
          ntabernero Nathaniel Tabernero added a comment - patch file against cassandra-3.9 for creating a rpm which works on Centos 6
          Hide
          ntabernero Nathaniel Tabernero added a comment - - edited

          I've attached a patch file against cassandra-3.9 for creating a rpm which works on Centos 6 (cassandra-3.9-centos6.patch). At the time we upgraded Cassandra, version 3.9 was the latest stable version. This patch file includes a rpm spec file which has a dependency on python27 from the centos-release-scl repo. The python27 package will install python into an alternate location which will not conflict the Centos 6's default installed python 2.6 . Additionally, the spec file will modify the cqlsh script to use python 2.7.

          Here are the steps we use to install Cassandra 3.9 on Centos 6.9 in our environment:

          #Install Java 8, then
          sudo yum install centos-release-scl # install SCL repo
          sudo yum localinstall cassandra-3.9-2.scl.el6.noarch.rpm #install custom build cassandra 3.9 rpm
          sudo service cassandra start
          sudo chkconfig cassandra on

          If this custom rpm is not available and cassandra 3.9 is already installed through other means, then:

          sudo yum install centos-release-scl # install SCL repo
          sudo yum install python27 # install Python 2.7

          Then, manually modify the cqlsh script. Add the following lines after the comment header

          # Enable python2.7 from centos 6 SCL
          source /opt/rh/python27/enable

          I hope this is helpful!

          Show
          ntabernero Nathaniel Tabernero added a comment - - edited I've attached a patch file against cassandra-3.9 for creating a rpm which works on Centos 6 ( cassandra-3.9-centos6.patch ). At the time we upgraded Cassandra, version 3.9 was the latest stable version. This patch file includes a rpm spec file which has a dependency on python27 from the centos-release-scl repo. The python27 package will install python into an alternate location which will not conflict the Centos 6's default installed python 2.6 . Additionally, the spec file will modify the cqlsh script to use python 2.7. Here are the steps we use to install Cassandra 3.9 on Centos 6.9 in our environment: #Install Java 8, then sudo yum install centos-release-scl # install SCL repo sudo yum localinstall cassandra-3.9-2.scl.el6.noarch.rpm #install custom build cassandra 3.9 rpm sudo service cassandra start sudo chkconfig cassandra on If this custom rpm is not available and cassandra 3.9 is already installed through other means, then: sudo yum install centos-release-scl # install SCL repo sudo yum install python27 # install Python 2.7 Then, manually modify the cqlsh script. Add the following lines after the comment header # Enable python2.7 from centos 6 SCL source /opt/rh/python27/enable I hope this is helpful!
          Hide
          mshuler Michael Shuler added a comment -

          Feel free to attach your spec file, but I'd be most interested in the precise steps for a user to go from the stock CentOS/RHEL 6 AWS AMIs to installing and successfully starting the service and running cqlsh on these OS versions. If we go there, this needs to be documented on the download page. I don't believe just installing the Cassandra RPM will be able to pull dependencies, since it sounds like there is a step to add some other repository. I imagine the Cassandra versions that require JDK8 could also be problematic on CentOS 6?

          Good starting points for step-by-step How-To on installing Cassandra with RPM.
          CentOS 6 AMI
          RHEL 6 AMI

          I do think it would be interesting and helpful for users stuck on ancient OS versions, but will require someone interested in those OS versions to do some testing, update documentation, add docker builds for these OS versions, and verify what's built works properly (might also be possible in docker). Thanks!

          Show
          mshuler Michael Shuler added a comment - Feel free to attach your spec file, but I'd be most interested in the precise steps for a user to go from the stock CentOS/RHEL 6 AWS AMIs to installing and successfully starting the service and running cqlsh on these OS versions. If we go there, this needs to be documented on the download page. I don't believe just installing the Cassandra RPM will be able to pull dependencies, since it sounds like there is a step to add some other repository. I imagine the Cassandra versions that require JDK8 could also be problematic on CentOS 6? Good starting points for step-by-step How-To on installing Cassandra with RPM. CentOS 6 AMI RHEL 6 AMI I do think it would be interesting and helpful for users stuck on ancient OS versions, but will require someone interested in those OS versions to do some testing, update documentation, add docker builds for these OS versions, and verify what's built works properly (might also be possible in docker). Thanks!
          Hide
          ntabernero Nathaniel Tabernero added a comment -

          We had the spec file depend on python27 which is from the centos-release-scl repository.

          Show
          ntabernero Nathaniel Tabernero added a comment - We had the spec file depend on python27 which is from the centos-release-scl repository.
          Hide
          mshuler Michael Shuler added a comment -

          How do you deal with the dependency of python-2.7 on an OS where python-2.7 is not available/installable? At datastax, the spec just completely ignored the version, which is what made cassandra installable on < centos/rhel-7.

          Show
          mshuler Michael Shuler added a comment - How do you deal with the dependency of python-2.7 on an OS where python-2.7 is not available/installable? At datastax, the spec just completely ignored the version, which is what made cassandra installable on < centos/rhel-7.
          Hide
          ntabernero Nathaniel Tabernero added a comment -

          Hi,

          My project is stuck on Centos 6 (for now). We came up with a spec file to build an rpm that is works for Centos 6. Is this something you would be interested in?

          Show
          ntabernero Nathaniel Tabernero added a comment - Hi, My project is stuck on Centos 6 (for now). We came up with a spec file to build an rpm that is works for Centos 6. Is this something you would be interested in?
          Hide
          mshuler Michael Shuler added a comment -

          Reuploaded gpg-signed rpms for 2.2.10 just now, so this should be fixed.

          Show
          mshuler Michael Shuler added a comment - Reuploaded gpg-signed rpms for 2.2.10 just now, so this should be fixed.
          Hide
          mshuler Michael Shuler added a comment -

          Looks like I missed a package signature on 2.2.10, but the repository signature looks good. I believe setting gpgcheck=0 while leaving repo_gpgcheck=1 will allow installation, and we'll get this right on the next upload.

          $ rpm -K *.rpm
          cassandra-2.1.18-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fe4b2bda) 
          cassandra-2.2.10-1.noarch.rpm: sha1 md5 OK
          cassandra-3.0.14-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fe4b2bda) 
          cassandra-3.11.0-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fe4b2bda)
          
          Show
          mshuler Michael Shuler added a comment - Looks like I missed a package signature on 2.2.10, but the repository signature looks good. I believe setting gpgcheck=0 while leaving repo_gpgcheck=1 will allow installation, and we'll get this right on the next upload. $ rpm -K *.rpm cassandra-2.1.18-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fe4b2bda) cassandra-2.2.10-1.noarch.rpm: sha1 md5 OK cassandra-3.0.14-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fe4b2bda) cassandra-3.11.0-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#fe4b2bda)
          Hide
          easyoups regis le bretonnic added a comment -

          Hi michael,
          In fact, up to now, we were working on centos6 with python 2.7 provided by the software collection.
          We will analyze this and try to plan an OS upgrade. Thank a lot. Regards.

          Show
          easyoups regis le bretonnic added a comment - Hi michael, In fact, up to now, we were working on centos6 with python 2.7 provided by the software collection. We will analyze this and try to plan an OS upgrade. Thank a lot. Regards.
          Hide
          mshuler Michael Shuler added a comment -

          Cassandra requires Python 2.7. The earliest RHEL/CentOS version that Python 2.7 is available to satisfy that dependency is RHEL/CentOS 7.0, so that is the distribution that we build the packages on.

          Show
          mshuler Michael Shuler added a comment - Cassandra requires Python 2.7. The earliest RHEL/CentOS version that Python 2.7 is available to satisfy that dependency is RHEL/CentOS 7.0, so that is the distribution that we build the packages on.
          Hide
          easyoups regis le bretonnic added a comment - - edited

          Hi

          First, thanks a lot for providing rpm packages of cassandra.
          We just upgrade our cluster from 3.0.13 to 3.0.14... Except if I make a wrong analysis, take care that this release requires glibc 2.14 which is not compatible with centos 6. Maybe you should not make a noarch rpm but a el7 one...

          Regards

          Show
          easyoups regis le bretonnic added a comment - - edited Hi First, thanks a lot for providing rpm packages of cassandra. We just upgrade our cluster from 3.0.13 to 3.0.14... Except if I make a wrong analysis, take care that this release requires glibc 2.14 which is not compatible with centos 6. Maybe you should not make a noarch rpm but a el7 one... Regards
          Hide
          mshuler Michael Shuler added a comment -

          3.0.14 and 3.11.0 were both just released with signed packages and repo. Dennis 3.10 will not be re-released, but 3.11.0 is the bug-fix release on top of 3.10 and is a long-term release series, so that's the one you want

          /etc/yum.repos.d/cassandra.repo for 3.11 series
          [cassandra]
          name=Apache Cassandra
          baseurl=https://www.apache.org/dist/cassandra/redhat/311x/
          gpgcheck=1
          repo_gpgcheck=1
          gpgkey=https://www.apache.org/dist/cassandra/KEYS
          
          /etc/yum.repos.d/cassandra.repo for 3.0 series
          [cassandra]
          name=Apache Cassandra
          baseurl=https://www.apache.org/dist/cassandra/redhat/30x/
          gpgcheck=1
          repo_gpgcheck=1
          gpgkey=https://www.apache.org/dist/cassandra/KEYS
          
          Show
          mshuler Michael Shuler added a comment - 3.0.14 and 3.11.0 were both just released with signed packages and repo. Dennis 3.10 will not be re-released, but 3.11.0 is the bug-fix release on top of 3.10 and is a long-term release series, so that's the one you want /etc/yum.repos.d/cassandra.repo for 3.11 series [cassandra] name=Apache Cassandra baseurl=https: //www.apache.org/dist/cassandra/redhat/311x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https: //www.apache.org/dist/cassandra/KEYS /etc/yum.repos.d/cassandra.repo for 3.0 series [cassandra] name=Apache Cassandra baseurl=https: //www.apache.org/dist/cassandra/redhat/30x/ gpgcheck=1 repo_gpgcheck=1 gpgkey=https: //www.apache.org/dist/cassandra/KEYS
          Hide
          denno Dennis added a comment -

          Pretty cool, very convenient to install.
          Just missing 3.10 in rpm packages unfortunately.

          Show
          denno Dennis added a comment - Pretty cool, very convenient to install. Just missing 3.10 in rpm packages unfortunately.
          Hide
          mshuler Michael Shuler added a comment -

          3.0.x example yum configuration with gpgcheck disabled:

          /etc/yum.repos.d/cassandra.repo
          [cassandra]
          name=Apache Cassandra
          baseurl=https://www.apache.org/dist/cassandra/redhat/30x/
          gpgcheck=0
          gpgkey=https://www.apache.org/dist/cassandra/KEYS
          
          Show
          mshuler Michael Shuler added a comment - 3.0.x example yum configuration with gpgcheck disabled: /etc/yum.repos.d/cassandra.repo [cassandra] name=Apache Cassandra baseurl=https: //www.apache.org/dist/cassandra/redhat/30x/ gpgcheck=0 gpgkey=https: //www.apache.org/dist/cassandra/KEYS

            People

            • Assignee:
              spodxx@gmail.com Stefan Podkowinski
              Reporter:
              spodxx@gmail.com Stefan Podkowinski
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:

                Development