Platform: SuSE Linux 9.0 Professional
I got an error when trying to include python in the build. Would like a
solution for it.
Also got an error for trying to include Kerberos. I did not have the
actual kerberos RPMs installed. I do have the Heimdal installed.
Got a dependency problem when installing the RPMs that were build. It
failed on "initscripts" which the package postgresql-7.4.1-1PGDG wants
for ldconfig. I chose to do a --nodeps installation and postgesql seems
to work just fine. Would like a solution here, please.
Trying to install the build postgresql-devel RPM failed with:
file /usr/include/libpgtcl.h from install of
postgresql-devel-7.4.1-1PGDG conflicts with file from package PgTcl-1.4-162
I also included some configuration and script changes I made in order to
get PostgreSQL 7.4.1 RPMs to build and PostgreSQL 7.4.1 to run.
During build of PostgreSQL 7.4.1 on SuSE 9.0 Professional, I got:
checking for python... /usr/bin/python
checking Python installation directories... /usr/lib/python23.zip
checking how to link an embedded Python application... no
configure: error: Python Makefile not found
error: Bad exit status from /var/tmp/rpm-tmp.64666 (%build)
But rpm -q python reports
and rpm -q python-devel
and this exists in /usr/lib/
rwxrwxrwx 1 root root 9 Feb 12 00:16 python -> python2.3
drwxr-xr-x 16 root root 17680 Feb 15 22:11 python2.3
I even created /usr/lib/python23.zip by doing a
zip -r python23.zip python2.3
but still got the same build error.
Changed build to:
rpmbuild --rebuild postgresql-7.4.1-1PGDG.src.rpm --define 'kerberos 0'
--define 'python 0'
File not found:
This is due to SuSE 9.0 not having a /etc/rc.d/init.d directory. SuSE
uses /etc/init.d as the boot directory. SuSE does have an /etc/rc.d
directory, but I it is a symbolic link to /etc/init.d. I solved this
error by adding a symbolic link in /etc/rc.d for init.d->/etc/init.d
I have reported this to SuSE, but thought I should mention it here too.
Had to modify the postgres init script for use in SuSE.
SuSE does not have an /etc/rc.d/init.d/functions file. SuSE uses
/etc/rc.status to report status stuff. That means that the command
success, failure, echo_success, and echo_failure do not exist. I
and added the following from the SuSE supplied init script for 7.3.4.
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
Since a variable, H, is used by the SuSE supplied init script in the
check for status (see following), I added:
test -x $H || exit 5
from the SuSE script. I know I could have just used /usr/bin/postmaster
in the status command, but I wanted to preserve the original structure
of the SuSE status command.
Replacing success, failure, echo_success, and echo_failure with
rc_status -v works just fine.
There is no status command so
does not work. Replaced that line with:
echo -n "Checking for PostgreSQL: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
# NOTE: checkproc returns LSB compliant status values.
/etc/sysconfig/network is not a file but a directory. I really did not
know what to do here so I just commented out the sourcing of the file
and it seems to work fine.
SuSE symbolic links /usr/sbin/rcpostgres to their supplied init script,
so I made that symbolic link as well.