Lines 45-50
Link Here
|
45 |
ssl? ( >=dev-libs/openssl-0.9.6-r1 )" |
45 |
ssl? ( >=dev-libs/openssl-0.9.6-r1 )" |
46 |
|
46 |
|
47 |
PG_DIR="/var/lib/postgresql" |
47 |
PG_DIR="/var/lib/postgresql" |
|
|
48 |
MAX_CONNECTIONS=1024 |
48 |
|
49 |
|
49 |
pkg_setup() { |
50 |
pkg_setup() { |
50 |
if [ -f ${PG_DIR}/data/PG_VERSION ] ; then |
51 |
if [ -f ${PG_DIR}/data/PG_VERSION ] ; then |
Lines 123-129
Link Here
|
123 |
--libdir=/usr/lib \ |
124 |
--libdir=/usr/lib \ |
124 |
--enable-depend \ |
125 |
--enable-depend \ |
125 |
--with-gnu-ld \ |
126 |
--with-gnu-ld \ |
126 |
--with-maxbackends=1024 \ |
127 |
--with-maxbackends=${MAX_CONNECTIONS} \ |
127 |
$myconf || die |
128 |
$myconf || die |
128 |
|
129 |
|
129 |
make || die |
130 |
make || die |
Lines 222-254
Link Here
|
222 |
einfo "Read the documentation to check how to upgrade to version ${PV}." |
223 |
einfo "Read the documentation to check how to upgrade to version ${PV}." |
223 |
fi |
224 |
fi |
224 |
else |
225 |
else |
225 |
# On hppa, postgresql need way more than the default sem index and shmmax |
226 |
local SEM=`sysctl -n kernel.sem | cut -f-3` |
226 |
if [ "${ARCH}" = "hppa" ]; then |
227 |
local SEMMNI=`sysctl -n kernel.sem | cut -f4` |
227 |
SEM_IDX_MIN=1024 |
228 |
local SEMMNI_MIN=`expr \( ${MAX_CONNECTIONS} + 15 \) / 16` |
228 |
SHMMAX_MIN=100000000 |
229 |
local SHMMAX=`sysctl -n kernel.shmmax` |
229 |
SEM_IDX=`sysctl kernel.sem | awk '{ print $6 }'` |
230 |
local SHMMAX_MIN=134217728 # 128M |
230 |
if [ $SEM_IDX -lt ${SEM_IDX_MIN} ]; then |
231 |
|
231 |
eerror "The last value of /proc/sys/kernel/sem is too low for postgresql to run" |
232 |
if [ ${SEMMNI} -lt ${SEMMNI_MIN} ]; then |
232 |
eerror "Temporary setting this value to ${SEM_IDX_MIN} while creating the initial database." |
233 |
eerror "The current value of SEMMNI is too low" |
233 |
cat /proc/sys/kernel/sem | sed -e "s/\t${SEM_IDX}/\t${SEM_IDX_MIN}/" > /proc/sys/kernel/sem |
234 |
eerror "for postgresql to run ${MAX_CONNECTIONS} connections" |
234 |
fi |
235 |
eerror "Temporary setting this value to ${SEMMNI_MIN} while creating the initial database." |
|
|
236 |
echo ${SEM} ${SEMMNI_MIN} > /proc/sys/kernel/sem |
235 |
fi |
237 |
fi |
236 |
sudo -u postgres /usr/bin/initdb --pgdata ${PG_DIR}/data |
238 |
sudo -u postgres /usr/bin/initdb --pgdata ${PG_DIR}/data |
237 |
|
239 |
|
238 |
if [ "${ARCH}" = "hppa" ]; then |
240 |
if [ ! `sysctl -n kernel.sem | cut -f4` -eq ${SEMMNI} ] ; then |
239 |
if [ ! `sysctl kernel.sem | awk '{ print $6 }'` -eq ${SEM_IDX} ] ; then |
241 |
echo ${SEM} ${SEMMNI} > /proc/sys/kernel/sem |
240 |
cat /proc/sys/kernel/sem | sed -e "s/\t${SEM_IDX_MIN}/\t${SEM_IDX}/" > /proc/sys/kernel/sem |
242 |
ewarn "Restoring the SEMMNI value to the previous value" |
241 |
ewarn "Restoring the sem idx value to the previous value" |
243 |
ewarn "Please edit the last value of kernel.sem in /etc/sysctl.conf" |
242 |
ewarn "Please edit the last value of kernel.sem in /etc/sysctl.conf" |
244 |
ewarn "and set it to at least ${SEMMNI_MIN}" |
243 |
ewarn "and set it to at least ${SEM_IDX_MIN}" |
245 |
ewarn "" |
244 |
fi |
246 |
ewarn " kernel.sem = ${SEM} ${SEMMNI_MIN}" |
245 |
|
247 |
ewarn "" |
246 |
if [ `sysctl kernel.shmmax | awk '{ print $3 }'` -lt ${SHMMAX_MIN} ]; then |
248 |
fi |
247 |
eerror "The current value of /proc/sys/kernel/shmmax is too low" |
249 |
|
248 |
eerror "for postgresql to run. Please edit /etc/sysctl.conf and set" |
250 |
if [ ${SHMMAX} -lt ${SHMMAX_MIN} ]; then |
249 |
eerror "this value to at least ${SHMMAX_MIN}." |
251 |
eerror "The current value of SHMMAX is too low for postgresql to run." |
|
|
252 |
eerror "Please edit /etc/sysctl.conf and set this value to at least ${SHMMAX_MIN}." |
253 |
eerror "" |
254 |
eerror " kernel.shmmax = ${SHMMAX_MIN}" |
255 |
eerror "" |
250 |
|
256 |
|
251 |
fi |
|
|
252 |
fi |
257 |
fi |
253 |
|
258 |
|
254 |
einfo "If you are upgrading from a pre-7.3 version of PostgreSQL, please read" |
259 |
einfo "If you are upgrading from a pre-7.3 version of PostgreSQL, please read" |