我正在尝试使用bash shell脚本在我的Debian 6.0服务器上从源构建postgreSQL但是我遇到了问题。这是我到目前为止所做的代码:
# 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
我得到的错误如下:
/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
谁能告诉我哪里出错了?如果还有其他明显的错误我做错了,我总是乐于听到它!
答案 0 :(得分:3)
你做错的第一件事是编译一个旧的主要版本的旧版本。为什么在8.4.15时你会使用8.4.6,还有一些重要的错误修复?请参阅versioning policy。无论如何,您不应该将8.4用于新部署,请使用最新版本进行新部署。
更好的是,使用pgapt.debian.org处的debian软件包而不是编译自己。
错误的直接原因是解压缩源tarball会产生类似postgresql-8.4.6
的目录,因此您拥有/tmp/postgresql/postgresql-8.4.6
。您正尝试在configure
而不是/tmp/postgresql
中执行/tmp/postgresql/postgresql-8.4.6
脚本。 cd
在运行configure
之前进入创建的目录。