|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +# script to add apt.postgresql.org to sources.list |
| 4 | + |
| 5 | +# from command like |
| 6 | +CODENAME="$1" |
| 7 | +# lsb_release is the best interface, but not always available |
| 8 | +if [-z"$CODENAME" ];then |
| 9 | + CODENAME=$(lsb_release -cs2>/dev/null) |
| 10 | +fi |
| 11 | +# parse os-release (unreliable, does not work on Ubuntu) |
| 12 | +if [-z"$CODENAME"-a-f /etc/os-release ];then |
| 13 | +. /etc/os-release |
| 14 | +# Debian: VERSION="7.0 (wheezy)" |
| 15 | +# Ubuntu: VERSION="13.04, Raring Ringtail" |
| 16 | + CODENAME=$(echo$VERSION| sed -ne's/.*(\(.*\)).*/\1/') |
| 17 | +fi |
| 18 | +# guess from sources.list |
| 19 | +if [-z"$CODENAME" ];then |
| 20 | + CODENAME=$(grep'^deb' /etc/apt/sources.list| head -n1| awk'{ print $3 }') |
| 21 | +fi |
| 22 | +# complain if no result yet |
| 23 | +if [-z"$CODENAME" ];then |
| 24 | + cat<<EOF |
| 25 | +Could not determine the distribution codename. Please report this as a bug to |
| 26 | +pgsql-pkg-debian@postgresql.org. As a workaround, you can call this script with |
| 27 | +the proper codename as parameter, e.g. "$0 squeeze". |
| 28 | +EOF |
| 29 | +exit 1 |
| 30 | +fi |
| 31 | + |
| 32 | +# errors are non-fatal above |
| 33 | +set -e |
| 34 | + |
| 35 | +cat<<EOF |
| 36 | +This script will enable the PostgreSQL APT repository on apt.postgresql.org on |
| 37 | +your system. The distribution codename used will be$CODENAME-pgdg. |
| 38 | +
|
| 39 | +EOF |
| 40 | + |
| 41 | +case$CODENAMEin |
| 42 | +# known distributions |
| 43 | + sid|wheezy|squeeze|lenny|etch) ;; |
| 44 | + precise|lucid) ;; |
| 45 | +*)# unknown distribution, verify on the web |
| 46 | +DISTURL="http://apt.postgresql.org/pub/repos/apt/dists/" |
| 47 | +if [-x /usr/bin/curl ];then |
| 48 | + DISTHTML=$(curl -s$DISTURL) |
| 49 | +elif [-x /usr/bin/wget ];then |
| 50 | + DISTHTML=$(wget --quiet -O -$DISTURL) |
| 51 | +fi |
| 52 | +if ["$DISTHTML" ];then |
| 53 | +if!echo"$DISTHTML"| grep -q"$CODENAME-pgdg";then |
| 54 | +cat<<EOF |
| 55 | +Your system is using the distribution codename$CODENAME, but$CODENAME-pgdg |
| 56 | +does not seem to be a valid distribution on |
| 57 | +$DISTURL |
| 58 | +
|
| 59 | +We abort the installation here. Please ask on the mailing list for assistance. |
| 60 | +
|
| 61 | +pgsql-pkg-debian@postgresql.org |
| 62 | +EOF |
| 63 | +exit 1 |
| 64 | +fi |
| 65 | +fi |
| 66 | +;; |
| 67 | +esac |
| 68 | + |
| 69 | +#echo -n "Press Enter to continue, or Ctrl-C to abort." |
| 70 | +# |
| 71 | +#read enter |
| 72 | + |
| 73 | +echo"Writing /etc/apt/sources.list.d/pgdg.list ..." |
| 74 | +cat> /etc/apt/sources.list.d/pgdg.list<<EOF |
| 75 | +deb http://apt.postgresql.org/pub/repos/apt/$CODENAME-pgdg main |
| 76 | +#deb-src http://apt.postgresql.org/pub/repos/apt/$CODENAME-pgdg main |
| 77 | +EOF |
| 78 | + |
| 79 | +echo"Importing repository signing key ..." |
| 80 | +KEYRING="/etc/apt/trusted.gpg.d/apt.postgresql.org.gpg" |
| 81 | +test -e$KEYRING|| touch$KEYRING |
| 82 | +apt-key --keyring$KEYRING add -<<EOF |
| 83 | +-----BEGIN PGP PUBLIC KEY BLOCK----- |
| 84 | +Version: GnuPG v1.4.12 (GNU/Linux) |
| 85 | +
|
| 86 | +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 |
| 122 | +VPZ67j5UMxqtT/Y4+NHcQGgwF/1i |
| 123 | +=Iugu |
| 124 | +-----END PGP PUBLIC KEY BLOCK----- |
| 125 | +EOF |
| 126 | + |
| 127 | +echo"Running apt-get update ..." |
| 128 | +apt-get update |
| 129 | + |
| 130 | +cat<<EOF |
| 131 | +
|
| 132 | +You can now start installing packages from apt.postgresql.org. |
| 133 | +
|
| 134 | +Have a look at https://wiki.postgresql.org/wiki/Apt for more information; |
| 135 | +most notably the FAQ at https://wiki.postgresql.org/wiki/Apt/FAQ |
| 136 | +EOF |