Reputation: 593
I am trying to build postgreSQL from source on my Debian 6.0 server using a bash shell script but I am running into problems. This is the code I have made so far:
# Initial
apt-get update
apt-get -y install aptitude bzip2 libbz2-dev git-core
aptitude -y install sudo python-all-dev python-setuptools libxml2-dev libgeoip-dev libxslt1-dev uuid-dev gcc automake autoconf libpcre3-dev libssl-dev unzip zip python-psycopg2 libpq-dev wget make libreadline-dev
aptitude -y full-upgrade
# POSTGRESQL
###############################
# Postgresql Download & Install
wget http://ftp.postgresql.org/pub/source/v8.4.6/postgresql-8.4.6.tar.gz -P /tmp
mkdir /tmp/postgresql
tar xzf /tmp/postgresql-8.4.6.tar.gz -C "/tmp/postgresql"
cd /tmp/postgresql/
mkdir /usr/local/pgsql
./configure --prefix=/usr/local/pgsql
cd /usr/local/pgsql
make
make install
# Add User
useradd -s /bin/false "postgresql_user"
chown "postgresql_user" usr/local/pgsql
# Clean Up
rm /tmp/postgresql-8.4.6.tar.gz
rm /tmp/postgresql
# Create Database
echo "CREATE ROLE PSQL LOGIN ENCRYPTED PASSWORD 'PASS';" | sudo -u postgresql_user usr/local/pgsql
sudo -u postgresql_user /opt/bin/createdb --owner PSQL DATADB
The error I get is as follows:
/root/StackScript: line 22: ./configure: No such file or directory
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.
chown: cannot access `usr/local/pgsql': No such file or directory
sudo: usr/local/pgsql: command not found
sudo: /opt/bin/createdb: command not found
Can anyone tell me where I am going wrong please? If there is anything else obvious I have done incorrectly I am always open to hear about it!
Upvotes: 0
Views: 223
Reputation: 324551
The first thing you're doing wrong is compiling an old point release of an old major version. Why on earth would you be using 8.4.6 when there's 8.4.15, with quite a few significant bug fixes? See the versioning policy. You shouldn't be using 8.4 for new deployments anyway, use the latest version for new deployments.
Even better, use the debian packages at pgapt.debian.org rather than compiling yourself.
The immediate cause of the error is that unpacking the source tarball produces a directory like postgresql-8.4.6
so you have /tmp/postgresql/postgresql-8.4.6
. You're trying to execute the configure
script in /tmp/postgresql
not /tmp/postgresql/postgresql-8.4.6
. cd
into the created directory before running configure
.
Upvotes: 3