2012-12-10 51 views
0

我想在我的Debian 6.0服務器上使用bash shell腳本從源代碼生成postgreSQL,但我遇到了問題。這是迄今爲止我所做的代碼:PostgreSQL的Bash部署 - 安裝問題

# 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 

誰能告訴我在哪裏,我錯了嗎?如果還有其他明顯的錯誤,我總是樂於聽到!

回答

3

你做錯的第一件事就是編譯舊版本的舊版本。爲什麼8.4.15的時候你會使用8.4.6,有很多重要的錯誤修復?請參閱versioning policy。無論如何,您不應該將8.4用於新部署,請將最新版本用於新部署。

更好的是,使用Debian軟件包pgapt.debian.org而不是編譯自己。

錯誤的直接原因是解壓縮源代碼包會產生一個像postgresql-8.4.6這樣的目錄,因此您有/tmp/postgresql/postgresql-8.4.6。您正在嘗試執行/tmp/postgresql而不是/tmp/postgresql/postgresql-8.4.6中的configure腳本。 cd運行前創建的目錄configure