Warum nimmst du nicht einfach das Paket deines Betriebssystems und lässt selbiges alles notwendige erledigen?
Den Benutzer im “bin” Verzeichnis enden zu lassen … na ja, wird funktionieren, ist aber keine geschickte Wahl.
Na, Ihr seid mir noch Freunde: Kritik ja, aber nicht wie ich’s am Besten einrichten soll
Nein, zurück zum Ernst.
Wo soll ich den User “postgres” denn SONST landen lassen? In /usr/lib/… ist PG installiert (worden). Soll ich’s in passwd leer lassen? Kannst du mir bitte ein Beispiel hinstellen?
Nein, ich hab’s nicht selbst kompiliert, sondern mittels apt-get installiert. Es ist automatisch in /usr/lib/ gestrandet.
Mühsam finde ich, dass ich (nach “su postgres”) für die Utilities immer diese langen Verzeichnisse eingeben muss und nicht einfach “pg_ctl” oder “initdb” eingeben kann. Kann mir vielleicht jemand sagen (Beispiel zeigen), wie ich mir das vereinfachen könnte, OHNE den in passwd von Euch kritisierten Eintrag? Wie gesagt: Ich fahre mit Debian/Linux.
Was mir verdächtig vorkommt, ist die Meldung “Could not change to root” (s. Beispiel):
postgres@nas:/root$ /usr/lib/postgresql/8.4/bin/pg_ctl --help
[color=#ff0000]could not change directory to "/root"[/color]
pg_ctl is a utility to start, stop, restart, reload configuration files,
report the status of a PostgreSQL server, or signal a PostgreSQL process.
Usage:
...ff...
Doch: So viel war mir auch schon klar, doch ich weiss nicht WIE und WO ich das tun soll. Es soll ja automatisch passieren, nach dem Einloggen (also nach “su - postgres”).
Ich hab’s jetzt mal hingebastelt, indem ich in /etc/profile, unmittelbar vor “export path” dies eingebaut habe (108 = postgres):
if [ "`id -u`" -eq 108 ]; then
PATH="/usr/local/bin:/usr/bin:/bin:[color=#b22222]/usr/lib/postgresql/8.4/bin:[/color]/usr/local/games:/usr/games"
fi
Das funktioniert zwar (yipee!), doch ich bin nicht so überzeugt, dass dies der richtige Ort dafür ist.
OK. Ich zeige hier mal, wie ich das jetzt gemacht habe. Vielleicht haben andere ja eine ähnliche Frage, dann können sie hier eine (EINE) Antwort finden:
Dann ein Verzeichnis /home/postgres/ erstellt. Owner und Group = postgres. Mit rwxr-xr-x.
Dort drin eine Datei .profile wie folgt erstellt:
# /home/postgres/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
[color=#ff0000]# rts 2011-08-05 >
PATH="$PATH:/usr/lib/postgresql/8.4/bin"
function mypath(){
old=$IFS
IFS=:
printf "%s\n" $PATH
IFS=$old
}
# rts 2011-08-05 <
[/color]
*) Meine speziellen Anpassungen für PG sind rot gekennzeichnet, das Andere ist sozusagen Standard. Die Funktion mypath kann ich nach einem “su - postgres” aufrufen: Sie zeigt mir den gegenwärtigen PATH an; schön lesbar aufbereitet. Nach einem Upgrade kann das hilfreich sein.