############################################################################### # postgresInstallationInstructions.txt # This document was prepared for Installing Postgres on RedhatLinux 6.2 # Make changes according to the unix, Linux versions you are using. ############################################################################### Postgres Installation Instructions 1. Create postgres user account (if it is already not created) by editing the password file or using an admin tool. Make the home directory for the postgres user "/usr/local/pgsql". Create a ".bash_profile" (or ".cshrc" or ".profile" depending on the shell) in the /usr/local/pgsql directory. Make sure the following variables are set in the start-up file: PATH=$PATH:/usr/local/pgsql/bin PGLIB=/usr/local/pgsql/lib PGDATA=/usr/local/pgsql/data 2. (a) Download Postgress Latest version from www.postgresql.org. Follow the 'Software' link to the download page. Download the full archive: postgresql.versionNumber.tar.gz Example:postgresql.7.0.2.tar.gz (b) Untar "postgresql.versionNumber.tar.gz": gunzip postgresql.versionNumber.tar.gz tar -xvf postgresql.versionNumber.tar 3. (a) The untar creates default directories. Change directory: cd postgresql.versionNumber (b) Read the 'INSTALL' file for step-by-step instructions for building and installing Postgres. 4. (a) Change Directory: cd src. (b) Configure the Postgres source code which involves running the configure script. Syntax: ./configure argument1 argument2 etc., To get help, type: ./configure -- help. To run without arguments, type: ./configure . This option creates a default configuration. use default : "./configure" for a simple configuration. Configure script creates Makefiles, config.h etc., (c) Run make utility to compile postgres. Make sure GNU Make is used to build the souce. On Linux systems, the default make is GNU make. May need to install or specify GNU make (gmake) on other UNIX platforms. 5. If you want to run regression tests, change directory: cd test/regress. Log in as the postgres user and run 'make runcheck'. See the README file in this directory for more information. 6. (a) Change user to root using the command su root. (b) Type password for root. (c) Run the command: 'make install' in the Postgres 'src' directory. 7. The path for the Postgres shared libraries should be added to the system path so that the programs know where to find them. Edit the /etc/ld.so.conf file and add the line: "/usr/local/pgsql/lib". Run ldconfig command as 'root' to rebuild the shared libraries search paths. (The shared library configuration may be different on other Unix systems.) 8. Initialize the Postgres data directory using the following commands. i. cd /usr/local/pgsql. ii. mkdir data. Create a directory "data" where databases will be created. iii. Change ownership to posgres superuser: chown postgres data. iv. Change permisions to be writable only by postgres superuser: chmod 700 data 9. Switch user to postgres superuser using 'su - postgres'. Run the command: usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data This command will set up the initial database and config files in the "/usr/local/pgsql/data" directory. 10. To start the Postgres server, su to the Postgres user and run the command: /usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data 11. Set up a script to automatically start Postgres when system boots up. The Postgres "INSTALL" file gives examples of how to do this for various Unix systems. There is also sample Linux postgres.init file in the postgresql-VersionNumber/support/linux directory. The file "postgres.init.sh" some times may not be in the specified directory. So, run the command "find / -name postgres.init.sh" and use that path in step 11(a). (a) Copy the support/linux/postgres.init.sh to /etc/rc.d/init.d/postgres (b) Edit the file and change the "PGOPTS" variable to: PGOPTS="-i -D /usr/local/pgsql/data" (c) Create symbolic link named /etc/rc.d/rc3.d/S98postgres.init to the /etc/rc.d/init.d/postgres file: ln -s /etc/rc.d/init.d/postgres /etc/rc.d/rc3.d/S98postgres.init NOTE: (1) Make sure to use "S" not "s" (2) Step 11(c) may differ for different falvors of unix, linux. This was used in RedHat Linux 6.2 12. (a) Stopping Postgres Server i. Change user to root using the command: su root. ii. Run the command "/etc/rc.d/init.d/postgres stop" to stop the Postgres server (b) Starting Postgres Server i. Change user to root using the command: su root. ii. Run the command "/etc/rc.d/init.d/postgres start" to start the Postgres server (c) psql is equivalent to sqlplus command. Use it to run queries. 13. Create a database user if it is not already there for the database you are going to create. (a) Log in as the postgres super-user (a) Type the command: /usr/local/pgsql/bin/createuser dbUserName, hit enter. (c) Is this user allowed to create databases?: Y/N - "N" if you don't want the user to create databases. (d) Is this user allowed to create users?: Y/N - "N" if you don't want the user to create users.