Also found I needed to change this routine in /usr/bin/spacewalk-setup-postgresql
postgresql_service() { POSTGRES_SERVICE=postgresql OIFS="$IFS"; IFS=' '; read pgsyn pgformal pgnums <<< "$(psql --version)" ; IFS="$OIFS" OIFS="$IFS"; IFS='.'; read pgvermajor pgverminor pgverpoint <<< "${pgnums}" ; IFS="$OIFS" case "$pgvermajor" in 8) ;; *) POSTGRES_SERVICE=${POSTGRES_SERVICE}-${pgvermajor}${pgverminor} ;; esac if [ -e "$SPACEWALK_TARGET" ] ; then case $1 in initdb) postgresql-setup initdb ;; *) systemctl $1 ${POSTGRES_SERVICE};; esac else case $1 in enable) chkconfig postgresql on ;; *) service ${POSTGRES_SERVICE} $1 ;; esac fi } Robert Boyd Sr. Systems Engineer PeopleFluent p. 919-645-2972 | c. 919-306-4681 e. robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com> [cid:image001.png@01CFAB30.8ABD10A0]<http://www.peoplefluent.com/> Visit: www.peoplefluent.com<http://www.peoplefluent.com/> | Read: Peoplefluent Blog<http://peoplefluent.com/resources/peoplefluent-blog> | Follow: @peoplefluent<http://twitter.com/peoplefluent> | Download: iPad App<http://itunes.apple.com/us/app/peoplefluent/id474251804?mt=8> From: spacewalk-list-boun...@redhat.com [mailto:spacewalk-list-boun...@redhat.com] On Behalf Of Boyd, Robert Sent: Friday, July 25, 2014 3:52 PM To: spacewalk-list@redhat.com Subject: Re: [Spacewalk-list] Support for postgresql > 8.4 Here's what I replaced it with: sub postgresql_start { my $postgres_version = `psql --version`; my ( $pName, $Official_Name, $pVersion ) = split " ", $postgres_version; my ( $psql_Major,$psql_Minor,$psql_Point) = split /\./, $pVersion ; SWITCH: { if ( $psql_Major =~ /8/) { $psql_service_name = "postgresql"; last SWITCH } if ( $psql_Major =~ /9/) { $psql_service_name = "postgresql-".$psql_Major.$psql_Minor; last SWITCH } } system('service $psql_service_name status >&/dev/null'); system('service $psql_service start >&/dev/null') if ($? >> 8); return ($? >> 8); } Monday I'll be trying it out. I expect to find some issues in shell scripts that need the same kind of version detection. Robert Boyd Sr. Systems Engineer PeopleFluent p. 919-645-2972 | c. 919-306-4681 e. robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com> [cid:image001.png@01CFAB30.8ABD10A0]<http://www.peoplefluent.com/> Visit: www.peoplefluent.com<http://www.peoplefluent.com/> | Read: Peoplefluent Blog<http://peoplefluent.com/resources/peoplefluent-blog> | Follow: @peoplefluent<http://twitter.com/peoplefluent> | Download: iPad App<http://itunes.apple.com/us/app/peoplefluent/id474251804?mt=8> From: spacewalk-list-boun...@redhat.com<mailto:spacewalk-list-boun...@redhat.com> [mailto:spacewalk-list-boun...@redhat.com] On Behalf Of Coffman, Anthony J Sent: Friday, July 25, 2014 12:54 PM To: spacewalk-list@redhat.com<mailto:spacewalk-list@redhat.com> Subject: Re: [Spacewalk-list] Support for postgresql > 8.4 Robert - just wanted to let you know I appreciate you blazing this trail. I'm watching this thread with interest. I want to make the same move with Postgres but don't have a lot of time to invest in working through these issues. I think the relevant file is /usr/share/perl5/vendor_perl/Spacewalk/Setup.pm It's got these hardcoded service references sub postgresql_start { system('service postgresql status >&/dev/null'); system('service postgresql start >&/dev/null') if ($? >> 8); return ($? >> 8); } --Tony From: spacewalk-list-boun...@redhat.com<mailto:spacewalk-list-boun...@redhat.com> [mailto:spacewalk-list-boun...@redhat.com] On Behalf Of Boyd, Robert Sent: Friday, July 25, 2014 11:28 AM To: spacewalk-list@redhat.com<mailto:spacewalk-list@redhat.com> Subject: Re: [Spacewalk-list] Support for postgresql > 8.4 I just re-read the report from 2012 and finally understood what Jan logged against that ticket: After re-reading that I did the following: yum deplist spacewalk-postgresql Loaded plugins: downloadonly, product-id, refresh-packagekit, rhnplugin, security, subscription-manager This system is receiving updates from Red Hat Subscription Management. This system is receiving updates from RHN Classic or Red Hat Satellite. rhel-6-server-extras-rpms | 2.6 kB 00:00 rhel-6-server-optional-rpms | 3.5 kB 00:00 rhel-6-server-rhn-tools-rpms | 2.9 kB 00:00 rhel-6-server-rpms | 3.7 kB 00:00 rhel-6-server-supplementary-rpms | 3.7 kB 00:00 Finding dependencies: package: spacewalk-postgresql.noarch 2.2.2-1.el6 dependency: /usr/bin/psql Unsatisfied . dependency dependency: postgresql >= 8.4 provider: postgresql93.x86_64 9.3.4-1PGDG.rhel6 provider: postgresql93.x86_64 9.3.3-1PGDG.rhel6 provider: postgresql93.x86_64 9.3.5-1PGDG.rhel6 dependency: postgresql-contrib >= 8.4 provider: postgresql93-contrib.x86_64 9.3.4-1PGDG.rhel6 provider: postgresql93-contrib.x86_64 9.3.5-1PGDG.rhel6 provider: postgresql93-contrib.x86_64 9.3.3-1PGDG.rhel6 dependency: spacewalk-common = 2.2.2-1.el6 provider: spacewalk-common.noarch 2.2.2-1.el6 dependency: perl(DBD::Pg) provider: perl-DBD-Pg.x86_64 2.15.1-3.el6 provider: perl-DBD-Pg.x86_64 2.15.1-4.el6_3 provider: perl-DBD-Pg.x86_64 2.15.1-4.el6_3 provider: perl-DBD-Pg.x86_64 2.15.1-3.el6 dependency: spacewalk-backend-sql-postgresql provider: spacewalk-backend-sql-postgresql.noarch 2.2.43-1.el6 dependency: spacewalk-java-postgresql provider: spacewalk-java-postgresql.noarch 2.2.123-1.el6 After this I manually selected the listed items: yum install postgresql93-contrib spacewalk-common perl-DBD-Pg spacewalk-backend-sql-postgresql spacewalk-java-postgresql If Jan's statement about the master package is correct then I've successfully installed all of the components. I found the messages from the list about taking care of the jdbc and did all those fixes too. >From Paul Robert Marino: Ok three things here 1) install the PostgreSQL 8 libraries and JDBC driver 2) make sure the PostgreSQL 9.2 JDBC driver is installed 3) fix the symlink for the jdbc driver to point to the the 9.2 version here is where it points to by default " # ls -l /usr/share/java/postgresql-jdbc.jar lrwxrwxrwx. 1 root root 44 Nov 5 2012 /usr/share/java/postgresql-jdbc.jar -> /usr/share/java/postgresql-8.4-703.jdbc4.jar " you need to point it to the PostgreSQL 9.2 JDBC driver instead It would be nice if going forward all of this information is collected in 1 place as a set of notes for those choosing to install spacewalk with postgresql v9 or greater. Unless we're only interested in everyone who follows after us having to feel the same pains. Now I'm trying to initialize spacewalk and here's what I get: spacewalk-setup --disconnected --answer-file=answer-files/spacewalk-configure * Loading answer file: answer-files/spacewalk-configure. * Setting up SELinux.. ** Database: Setting up database connection for PostgreSQL backend. ** Database: Installing the database: ** Database: This is a long process that is logged in: ** Database: /var/log/rhn/install_db.log *** Progress: # Could not install database. [root@rdcengsw01 ~]# less /var/log/rhn/install_db.log error reading information on service postgresql: No such file or directory [root ~]# grep "error reading information" `which spacewalk-setup` [root ~]# chkconfig --list | grep post postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off postgresql-9.3 0:off 1:off 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off It looks like to me that the install script supports postgresql version 8.4 ONLY. Has anyone actually done a straight install (not an upgrade of postgresql ) of spacewalk with postgresql v9.*? Am I going to have to do what Jonathan says to install the 8.4 postgresql package(s) and then hide the binaries? This seems really ridiculously complicated. It can't possibly be that involved to change the perl code that's looking for the postgres components to have it check for the right names for a higher version. It would be fairly easy to set up a table to have it check for any version of postgresql, extract the version number and select where to find the files necessary based on the version. I'll be happy to have a go at it if I can figure out where the routines are that handle that. At least perl is in my skillset. Robert Boyd Sr. Systems Engineer PeopleFluent p. 919-645-2972 | c. 919-306-4681 e. robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com> [cid:image001.png@01CFAB30.8ABD10A0]<http://www.peoplefluent.com/> Visit: www.peoplefluent.com<http://www.peoplefluent.com/> | Read: Peoplefluent Blog<http://peoplefluent.com/resources/peoplefluent-blog> | Follow: @peoplefluent<http://twitter.com/peoplefluent> | Download: iPad App<http://itunes.apple.com/us/app/peoplefluent/id474251804?mt=8> From: spacewalk-list-boun...@redhat.com<mailto:spacewalk-list-boun...@redhat.com> [mailto:spacewalk-list-boun...@redhat.com] On Behalf Of Jonathan Hoser Sent: Thursday, July 24, 2014 11:00 AM To: spacewalk-list@redhat.com<mailto:spacewalk-list@redhat.com> Subject: Re: [Spacewalk-list] Support for postgresql > 8.4 Hi Robert, I faced the same issues (I think) - if I remember correctly; I think I faked it, by installing Postgres 8.x (from the default repos) then getting 9.1 (for me) from postgres-repos and then (re-)moving/hiding the 8.4 binaries. Needed to take care of a bunch of Jars (9.x connectors etc) but that was it... If you want more details, I might be able to tell you on Monday... Best -Jonathan On 07/24/2014 04:38 PM, Boyd, Robert wrote: Bedankt for the suggestion Andreas, It appears that someone previously - in 2012 logged a report about this very same problem with the installation procedure. The installation guide on the wiki states: "Spacewalk uses database server to store its primary data. It supports either PostgreSQL (version 8.4 and higher) or Oracle RDBMS (version 10g or higher)." Unfortunately the rpm needs some help to differentiate when something higher than 8.4 is actually installed. As far as I can tell from what I read in the response to the bug report, the problem is that the RPM is looking for 8.4 specific files and needs to be updated to include handling the changes implemented for 9 and above. Creating and managing RPMs is not in my current skillset - I would rather not spend my time learning how to do that when I won't be doing that as a regular thing. It looks like I'd have to find the source of the spacewalk rpm to discover exactly how it's coded and how it's specifying the postgresql dependencies. Then I could put together a fakeout rpm as a companion to the postgresql9x rpms that would provide the missing metadata to fake out the spacewalk rpm. Seems like it would be a much easier effort for someone already well familiar with the spacewalk rpm construction to make the mods necessary to handle postgresql9x. Robert Boyd Sr. Systems Engineer PeopleFluent p. 919-645-2972 | c. 919-306-4681 e. robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com> [cid:image001.png@01CFAB30.8ABD10A0]<http://www.peoplefluent.com/> Visit: www.peoplefluent.com<http://www.peoplefluent.com/> | Read: Peoplefluent Blog<http://peoplefluent.com/resources/peoplefluent-blog> | Follow: @peoplefluent<http://twitter.com/peoplefluent> | Download: iPad App<http://itunes.apple.com/us/app/peoplefluent/id474251804?mt=8> From: spacewalk-list-boun...@redhat.com<mailto:spacewalk-list-boun...@redhat.com> [mailto:spacewalk-list-boun...@redhat.com] On Behalf Of Andreas Dijkman Sent: Thursday, July 24, 2014 3:12 AM To: spacewalk-list@redhat.com<mailto:spacewalk-list@redhat.com> Subject: Re: [Spacewalk-list] upgrading postgres (8.4 > 9.x) on the spacewalk server ? Hi, The RPM isn't actually looking at the file but at the file specs of all available RPM's. You need to install and rpm that provides the binary /usr/bin/psql in it's metadata. You could build an metadata-only-rpm that depends on all the postgresql-9.x-stuff and provides the necessary files in it's metadata and secretly creates symlinks underneath. Met vriendelijke groet, Andreas Dijkman Oracle Technical Consultant Phone: +31(0)50-210 0132 | Mobile: +31(0)6-8115 2982 Cygnis<http://www.cygnis.nl/> | Stationsweg 3B | 9726 AC Groningen Op maandag afwezig On 23 Jul, 2014, at 23:42 , Boyd, Robert <robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com>> wrote: I tried changing the link for /usr/bin/psql to directly link to the binary. That didn't help. I tried removing the link and copying the binary to /usr/bin/psql -- that didn't help either. I take it this means that the error message I'm getting isn't telling me the truth about what the real error is. Robert Boyd Sr. Systems Engineer PeopleFluent p. 919-645-2972 | c. 919-306-4681 e. robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com> -----Original Message----- From: Boyd, Robert Sent: Wednesday, July 23, 2014 5:33 PM To: 'spacewalk-list@redhat.com<mailto:spacewalk-list@redhat.com>' Subject: RE: [Spacewalk-list] upgrading postgres (8.4 > 9.x) on the spacewalk server ? I'm attempting an install of spacewalk 2.2 using postgresql-9.3. I installed and manually configured postgresql. When I attempt to install spacewalk I get this error: yum install spacewalk-postgresql ... many dependencies resolved ... etc ... Error: Package: spacewalk-postgresql-2.2.2-1.el6.noarch (spacewalk) Requires: /usr/bin/psql However there is clearly something there: [root ~]# ll /usr/bin/psql lrwxrwxrwx. 1 root root 28 Jul 21 12:35 /usr/bin/psql -> /etc/alternatives/pgsql-psql [root ~]# ll /etc/alternatives/pgsql-psql lrwxrwxrwx. 1 root root 23 Jul 21 12:35 /etc/alternatives/pgsql-psql -> /usr/pgsql-9.3/bin/psql [root ~]# ll /usr/pgsql-9.3/bin/psql -rwxr-xr-x. 1 root root 447560 Mar 18 03:19 /usr/pgsql-9.3/bin/psql What is this package expecting to find there? Is a symbolic link not good enough? Can I fake it out by copying over the real binary or changing the link to point directly to the binary instead of an intermediate link? Robert Boyd Sr. Systems Engineer PeopleFluent p. 919-645-2972 | c. 919-306-4681 e. robert.b...@peoplefluent.com<mailto:robert.b...@peoplefluent.com> _______________________________________________ Spacewalk-list mailing list Spacewalk-list@redhat.com<mailto:Spacewalk-list@redhat.com> https://www.redhat.com/mailman/listinfo/spacewalk-list -- Jonathan Hoser, M.Sc. Institute of Bioinformatics and System Biology WWW: http://mips.helmholtz-muenchen.de ________________________________ Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de<http://www.helmholtz-muenchen.de> Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess, Dr. Nikolaus Blum, Dr. Alfons Enhsen Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671
_______________________________________________ Spacewalk-list mailing list Spacewalk-list@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-list