Postgres.app 设置:获取 `which psql` 以返回所需路径

Posted

技术标签:

【中文标题】Postgres.app 设置:获取 `which psql` 以返回所需路径【英文标题】:Postgres.app setup: getting `which psql` to return desired path 【发布时间】:2015-04-29 00:35:04 【问题描述】:

我刚刚安装了 Postgres.app,现在 which psql 什么也没返回。我关注了instructions listed on the Postgres site;这就是我所做的:

1) 将旧版本的 Postgres 拖到垃圾箱。清空垃圾箱。

2) 下载了 Postgres.app 的当前版本。将其拖到 Applications 文件夹中。

3) 重启终端。

我从which psql 寻找的输出类似于: /Applications/Postgres.app/Contents/Versions/9.3/bin/psql

当我运行brew install postgresql 后跟which psql 时,我得到/usr/local/bin/psql。这至少是一些东西,但这不是我想要的。

如果有用,这是我的 .bashrc:

if [ -f ~/.bash_profile ]; then
    source ~/.bash_profile
fi

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
export DYLD_LIBRARY_PATH="/Applications/Postgres.app/Contents/MacOS/lib:$DYLD_LIBRARY_PATH"

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"

rvm get stable --auto-dotfiles

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

还有我的 .bash_profile:

export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/share/python:$PATH

# Python
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
if [[ -r /usr/local/share/python/virtualenvwrapper.sh ]]; then
    source /usr/local/share/python/virtualenvwrapper.sh
else
    echo "WARNING: Can't find virtualenvwrapper.sh"
fi

export PS1="\h:\w \u\$ "

# for git
LESS="-qrX -P %lt"
export LESS

# colorize shell output
export CLICOLOR=1
export LSCOLORS=Hxfxcxdxbxegedabagacad

#========== ALIASES ===========

alias u="cd .."
alias uu="cd ../.."
alias uuu="cd ../../.."
alias cd..="cd .."
alias rm="rm -i"
alias ll="ls -laFGh"
alias ls="ls -FGh"
alias new="ls -lat | head -15"

# node needs to not have DYLD_LIBRARY_PATH set
alias node="DYLD_LIBRARY_PATH=''; node"

# postgres stuff
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
export DYLD_LIBRARY_PATH="/Applications/Postgres.app/Contents/MacOS/lib:$DYLD_LIBRARY_PATH"

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

非常感谢!

【问题讨论】:

【参考方案1】:

解决方案!对于后代,这对我有用:

1) 将行 export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin 添加到 .bash_profile。为了进一步阅读,我在Postgres.app Command Line Tools page 上找到了这个解决方案。

2) 运行brew uninstall postgresql。这似乎不是最理想的,因为我以后几乎肯定会想要它,但在卸载之前,我在运行which psql 时得到了安装 brew 的 postgresql 的路径。

【讨论】:

以上是关于Postgres.app 设置:获取 `which psql` 以返回所需路径的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Postgres.app 在 Mavericks 中安装 pg gem

使用 `which()` 获取匹配的行和列索引

Postgres.app 说“在端口 5432 上运行”但 psql 命令失败

javascript 闭包的理解

Postgres.app:pg_restore 挂起

markdown Postgres.app:如何删除postmaster.pid文件?