私の状況は次のとおりです。 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 .