2012-12-10 4 views
0

J'essaye de compiler postgreSQL à partir de la source sur mon serveur Debian 6.0 en utilisant un script shell bash mais je rencontre des problèmes. Voici le code que je l'ai fait jusqu'à présent:Déploiement de Bash de PostgreSQL - Problème d'installation

# 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 

L'erreur que je reçois est comme suit:

/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 

Quelqu'un peut-il me dire où je me trompe s'il vous plaît? S'il y a quelque chose d'évident que j'ai mal fait, je suis toujours ouvert à entendre parler de ça!

Répondre

3

La première chose que vous faites mal est de compiler une ancienne version d'une ancienne version majeure. Pourquoi diable utiliseriez-vous 8.4.6 quand il y a 8.4.15, avec quelques corrections de bugs importantes? Voir le versioning policy. Vous ne devriez pas utiliser 8.4 pour de nouveaux déploiements de toute façon, utilisez la dernière version pour les nouveaux déploiements.

Encore mieux, utilisez les paquets debian au pgapt.debian.org plutôt que de vous compiler.

La cause immédiate de l'erreur est que le déballage de l'archive tar source produit un répertoire tel que postgresql-8.4.6, donc vous avez /tmp/postgresql/postgresql-8.4.6. Vous essayez d'exécuter le script configure dans /tmp/postgresql et non /tmp/postgresql/postgresql-8.4.6. cd dans le répertoire créé avant d'exécuter configure.