実行するPostgreSQLクライアント(psql)のバージョンをどのように指定しますか?

実行するPostgreSQLクライアント(psql)のバージョンをどのように指定しますか?

私の状況は次のとおりです。 CentOSシステムには2つのバージョンのPostgreSQLがインストールされており、これら2つのバージョンには2つの異なるpsql対話型端末があります。

/usr/bin/psql私が走ると、1つが位置して開始されます。psql -U username

別の新しいものがあります/usr/pgsql-9.1/bin/psql

psqlコマンドラインから実行すると、デフォルトで最新バージョンが起動したいと思います。これはどのように達成できますか?

答え1

あるいは、シンボリックリンクを回避して変更を防ぐために、$PATHハッシュテーブルにコマンドを追加することもできます。

hash -p /usr/pgsql-9.1/bin/psql psql

これにより、コマンドはコマンドハッシュテーブルに保存され、他のコマンドの前に実行されます(実際のパス検索は実行されません)。

以前に呼び出したコマンドを使用している場合、そのコマンドpsqlはすでにハッシュテーブルにあり、そのコマンドを検索するときに最初のヒットになります。この場合、まず次のように入力して前のエントリを削除します。

hash -d psql

次に、上記のコマンドを実行します。.bashrcご希望の場所で受け取ることができます。

答え2

あなたの編集PATHこのように/usr/pgsql-9.1/bin/(最新の)ものが前に来ます/usr/bin/

パッケージマネージャにとって安全性の低い代替手段は、新しいシンボリックリンク(テストされていない)に移動/削除/名前を変更し、psqlシンボリック/usr/bin/リンクを作成することです。/usr/bin/

> cd /usr/bin
# move the old one however you like
> ln -s /usr/pgsql-9.1/bin/psql .

関連情報