[Courses] [Postgresql] Installing PostgreSQL and Assignments
Michelle Murrain
michelle at murrain.net
Sun Nov 25 23:21:49 UTC 2007
[A note: the syntax in this post is Dokuwiki. If it gets annoying, let
me know. It's just easier since I write everything in Docuwiki these
days. And, if you use Dokuwiki, you can just copy and paste. :-)]
//**Installing PostgreSQL**//
PostgreSQL can be installed on many platforms. I'll first outline, in a
fair bit of detail, how to install PG on Linux, both using packages, as
well as compiling from source. I'll also touch on installing PG in other
platforms, enough so you should theoretically be able to do it (I have
to admit I haven't tried it.)
The primary goal of this week is to get a working Postgresql
installation that you can use. It's good if you can install this locally
on your primary desktop or laptop first, then once you've gotten used to
it, and we've talked about security issues, etc., then, if that's part
of your project, you can install it on a production (or staging) server.
Of course, if you've done this sort of thing lots of times, and are
really familiar with systems and database admin, by all means, go ahead
and do what you want.
//Linux//
If you want to install PG easily, you can just use the package manager
for your distribution. For most distributions, there are several
packages to install. The core three are generally called
postgresql-version, postgresql-client, and postgresql-common. Here's the
list for Ubuntu:
http://packages.ubuntu.com/cgi-bin/search_packages.pl?searchon=names&subword=1&version=feisty&release=all&keywords=postgresql&sourceid=mozilla-search
For Ubuntu (or Debian):
mpm at chicago:~$ sudo apt-get install postgresql-8.2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
postgresql-client-8.2 postgresql-client-common postgresql-common
Suggested packages:
postgresql-doc-8.2
The following NEW packages will be installed:
postgresql-8.2 postgresql-client-8.2 postgresql-client-common
postgresql-common
0 upgraded, 4 newly installed, 0 to remove and 23 not upgraded.
Need to get 4550kB of archives.
After unpacking 22.9MB of additional disk space will be used.
So this picks up the basics that you need - postgresql-8.2 which is the
server, plus the client and common files. The documentation is also useful.
On Fedora, you should be able to do the following:
yum install postgresql-server
Other distributions (like Gentoo, or SUSE) will have their own
postgresql packages. Find out what they are, and it should be pretty
straightforward to install them. Ask the list if you run into trouble.
**Installing from source**
If you have one of those distros/platforms where you install from
source, or you'd just like to do that, it's fairly straightforward, and
I'll outline some of the options. The advantage, of course, of compiling
from source is that you have granular control over your postgresql
installation, and can choose many different versions (including the most
recent beta). The downside is that it's not part of your package
management system, so it's not as easy to upgrade.
Go to the www.postgresql.org, and find the source downloads
([[http://ftp7.us.postgresql.org/pub/postgresql/source/|here's one
mirror]]) Choose a version (I'm trying the beta out) and download it.
Once you download and expand the package, you'll see a file called
"INSTALL". Have a look at that file. There are TONS of possible options.
I'll tell you about a few. First, the simple version:
./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
So, first, configure, then "make" using gmake - this is the compile
step. Then install - this puts all of the Then you need to add a new
user, called postgres, who will be the admin user for the server. Create
a directory for the data that is owned by the postgres user. Then
initiate the database system (which creates the system tables). Start up
PG, create a database called 'test' and then use the client to interact
with that database.
The other thing you need to do is configure PG to startup automatically
from boot (which basically means adding a startup script to /etc/init.d)
//(A note: installing using package managers will generally have done
all of this for you).//
The options on the ./configure step (syntax would be ./configure
--with-option1 --with-option2) include changing the destination
directory, the directories on the libraries, installing perl, python or
tcl support (full installs of these have to already be present), adding
PAM, LDAP and/or SSL support, etc. Most Linux distributions have
packages to give these, but for some reason, you might want to install
them yourself (especially if you have an unusual setup.)
Make sure to carefully read the INSTALL file - that should take care of
any snags.
//Installing PG on a Macintosh//
The easiest way to go about it is to use
[[http://www.finkproject.org/index.php?phpLang=en|Fink]] which is the
project that brings open source packages to the MacOS (they are compiled
and configured for the mac). It's modeled after the Debian package
manager. Once you install Fink, you can then just:
fink install postgresql82
You can also look for other PG related packages.
You can also use [[http://www.macports.org/|MacPorts]]. I've not tried
it, but it is another avenue. MacPorts work more like Portage - they
aren't compiled, but you compile them.
//Installing PG on Windows//
In the downloads region of www.postgresql.org, there will be a directory
labeled 'win32'. I used "postgresql-8.2.5-1.zip" - but there does exist
a file with the label "binaries no installer" - which I guess you could
try.
//**Assignment for the Week**//
* Install Postgresql on your platform of choice. If you have more
than one available, install on as many as you'd like
* If you took the easy road (installing via a package manager)
download and install the PG Beta (8.3) in /usr/local/src if you want to.
* Open the client as the postgres user:
$ sudo su - postgres (if on Ubuntu - otherwise become the postgres
user to create a database)
$ createdb test
$ psql test
* Have a look around at the commands (much more on this next week!)
* Tell us all how it went? Any snags? Did you install it on a
different platform (like BSD for instance?)
--
Michelle Murrain
Coordinator, Nonprofit Open Source Initiative
http://nosi.net
Skype: pearlbear
AIM: pearlbear0
More information about the Courses
mailing list