Linuxのpathと別名的な事について

このQ&Aのポイント
  • Linuxのpathと別名的な事について説明します。試験する環境でパスが異なるため、スクリプトに手を付けずに試験環境の設定を操作する方法を探しています。
  • Linuxのpathと別名的な事について説明します。質問者はpostgresをインストールした環境で、スクリプト内でのパスの異なりについて困っています。
  • Linuxのpathと別名的な事について説明します。試験する環境のパス設定を変更することで、スクリプトを書き換えずに試験を実施する方法を教えてください。
回答を見る
  • ベストアンサー

linuxのpathと別名的な事について

linuxのpathと別名的な事について os:cent os postgresをインストールした環境があります。 ある環境では /usr/local/pgsql/bin/にpsqlがいて シェルで「/usr/local/pgsql/bin/psql」と記述しているスクリプトがあります。 これを別の環境に持っていったのですが、そこでは /usr/bin/にpsqlがいます。 全部書き換えるのも面倒ですので、 「/usr/local/pgsql/bin/psql」と書かれた内容を サーバーの設定で「/usr/bin/psql」と読みかえて動いてくれれば助かります。 要するに、 実行する環境と、試験する環境でパスが異なるので、 スクリプトに手を付けずに試験環境の設定を操作して試験がしたいという事です。 可能でしょうか?

  • ngwave
  • お礼率65% (240/366)

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

単にpsqlだけならシンボリックリンクで可能です。 /usr/local/pgsql/binのディレクトリが無ければ作成する。 作成した/usr/local/pgsql/binディレクトリに移動して、 ln -s /usr/bin/psql psql シンボリックリンクでググってみてください。

ngwave
質問者

お礼

イケました。ありがとうございます。 何かあったような気はしていたのですが、ショートカットとかエイリアスとか、そういった単語しか浮かばず、シンボリックリンクにたどり着くことが出来ませんでした。

その他の回答 (1)

  • umota
  • ベストアンサー率46% (150/324)
回答No.1

シンポリックリンクを作れば良いのでは?

ngwave
質問者

お礼

ありがとうございます。

関連するQ&A

  • RedHat9にPostgreSQL構築できるが、再起動すると消滅

    WindowsXP内のVMWareに仮想マシンRedHat9を構築して便利に使っています。今回この中ににPostgreSQL構築しpostgresql-8.1.3.tar.gzを/usr/local/srcにダウンロード #useradd postgres #mkdir /usr/local/pgsql #mkdir /usr/local/pgsql/data #cd /usr/lcal/src #tar zxfv postgres-8.1.3.tar.gz #chown postgres.postgres /usr/locl/pgsql #chown -R postgres.postgres postgresql.1.3 #su - postgres $cd /usr/local/src/postgresql-8.1.3 $./configure $gmake $gmake install 以上で無事postgreSQLデータベースが完成 引き続きユーザpostgresで $/usr/local/pgsql/bin/initdb -D /usr/local/pogsql/data $/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data $/usr/local/pgsql/bin/createdb TestDB $/usr/local/pgsql/bin/psql TestDB で作成したTestDBに接続でき、テーブルも作りました。 ところがRedHat9をいったん再起動するとできている筈のTestDBに接続できなくなります。どこかにどこかに設定ミスがありますか。何かヒントをいただければうれしいです。 $/usr/local/

  • PostgreSQLをCentOS5にインストールしました。

    閲覧有難うございます。 質問内容なのですが、Postgresqlをインストールしたのですがpostgresql.confとpg_hba.confが見つかりません。 OSはCentOS5です。 インストール方法は以下の手順で行いました。 # /usr/sbin/adduser postgres # chown postgres:postgres /usr/local/pgsql # mkdir /usr/local/src/postgres-8.2.6 # chown postgres:postgres /usr/local/src/postgresql-8.3.7 # su - postgres # cd /usr/local/src # tar xfz /usr/local/src/postgres-8.2.6.tar.gz # cd /usr/local/src/postgres-8.2.6 # ./configure # make # make install また、 [root@ ~]# su - postgres -bash:  LD_LIBRARY_PATH=/usr/local/pgsql/lib: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found [postgres@ ~]$ のようなエラーがはかれるようになりました。 どうか皆様のお力をお貸しください。

  • PostgreSqlインストールで

    Linux環境にPostgreSqlをインストールしたいのですが以下のエラーがでて困ってます; 手順としては 1, ./configure 2, gmake 3, su 4, gmake install 5, mkdir /usr/local/pgsql/data 6, chown postgres /usr/local/pgsql/data 7, su - postgres 8, /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 9, /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & 10, /usr/local/pgsql/bin/createdb test 11, /usr/local/pgsql/bin/psql test まず手順8で以下のエラーが出ます database "postgres" does not exist その後、手順9を実行すると以下のエラーがでます createdb: could not connect to database template1: could not connect to server: そのようなファイルやディレクトリはありません Is the server runnning locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 解決策等ご存知でしたら教えて頂けないでしょうか? よろしくお願い致します。

  • shで、パスがとおりません

    シェル内の リダイレクトのパスが通らない原因は何でしょうか? ◆シェル実行時のエラー bash: ./bb.sh: bad interpreter: No such file or directory ◆シェル(PostgresqlへCSVデータ取込) #!/bin/sh /usr/local/pgsql/bin/psql -d swan2 -c "copy abctbl_wk from stdin using delimiters ',' with null as ''" < ./csv/abcTBL.csv

  • LinuxでpostreSQLを毎日バックアップしたく、crontab

    LinuxでpostreSQLを毎日バックアップしたく、crontabに設定して 定時にpostgres.shファイルを実行させようとしています。 ファイルの中に、 if [ -x /usr/local/pgsql/bin/pg_dump ]; then とあるのですが、これは、 /usr/local/pgsql/bin/pg_dumpが存在する場合 という意味で合っていますでしょうか? よろしくお願いします。

  • パス(PATH)の設定ファイルについて

    OSはRed Hat Linux 9 を使用しております。 また、シェルはbashを使用しております。 ユーザがシステムにログインする際は、通常ですと /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ファイルを読込、パス(PATH)の設定を行うと思いますが、 sshでrootユーザでシステムにログインした際は、 「echo $PATH」の結果は以下でした。 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/sbin su -で再度rootユーザでログインした際、もしくは、他ユーザからsu -でログインすると 「echo $PATH」の結果は以下でした。 /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/sbin ログインの仕方でパス(PATH)に違いがあります。 また、「/usr/local/bin」をパス(PATH)として設定している記述が 上記ファイルに見当たりません。 http://sakaguch.com/PastBBS/0038/B0018808.html http://oshiete1.goo.ne.jp/kotaeru.php3?q=800405 等のサイトを参考に、以下ディレクトリ配下を確認しましても /etc/profile.d /etc/rc.d/init.d /etc/rc.d/rc3.d 「/usr/local/bin」をパス(PATH)として設定している記述が 見当たりません。 ログインの仕方でパス(PATH)に何故違いがあるのか、 また「/usr/local/bin」をパス(PATH)として設定している記述がある ファイルをご存知の方ご教授頂きたく思います。 宜しくお願いします。

  • 続 PostgreSQLのインストール

    fedora core1です。 postgreSQLで 一般ユーザーでログイン後 vi .bashrcで エディターを起動し export PATH=$PATH;/usr/local/pgsql/bin export MANPATH=$MANPATH:/usr/local/pgsql/man export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib 追加編集後 :wqで終了すると E45: 'readonly' オプションが設定されています (! を追加で上書き) :wq!で ".bashrc" ".bashrc" E212: 書込み用にファイルを開けません というエラーがでました。 これはどう対処したらよいでしょうか?

  • LINUXサーバーについての質問です。

    LINUXサーバーについての質問です。 http://qiita.com/suin/items/5c4e21fa284497782f71 上記サイトのシェルスクリプトの42行目の PATH=/sbin:/usr/sbin:/bin:/usr/bin は何を意味してるのでしょうか? このシェルスクリプトのファイルの置かれているパスですか? そうであれば、シェルスクリプトには必ずパスを記入するものでしょうか? 教えてください。

  • シェル変数(path)の挙動がわかりません

    シェル変数の挙動がわからなくて困っています。 以下のような3ファイルがあります。 % cat /tmp/test_config.sh #!/opt/local/bin/zsh path=($path /tmp) % cat /tmp/test.sh #!/opt/local/bin/zsh . /tmp/test_config.sh echo $PATH echo $path /tmp/test2.sh % cat /tmp/test2.sh #!/opt/local/bin/zsh echo $PATH echo $path which test.sh これを、所有者のユーザで実行するのとsu -c で実行するので挙動が変わります。 % /tmp/test.sh /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/tmp /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/local/bin /opt/local/sbin /tmp /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/tmp /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/local/bin /opt/local/sbin /tmp /tmp/test.sh % sudo su - hogehoge -c /tmp/test.sh /bin:/usr/bin:/usr/ucb:/usr/local/bin:/tmp /bin /usr/bin /usr/ucb /usr/local/bin /tmp /bin:/usr/bin:/usr/ucb:/usr/local/bin /bin /usr/bin /usr/ucb /usr/local/bin test.sh not found この挙動の違いは、何から産まれるんでしょう? .zshrc でそういう設定ができるんでしょうか? .zshenv は使ってません。 (なお、環境変数$PATHを使えば目的は果たせると言うのはわかっています)

  • 環境変数pathについて

    環境変数pathについてお聞きしたいことがあります。たとえば /usr/local/bin:/bin:/usr/bin: このような場合、/usr/local/binと/binと/usr/binに入力されたコマンドのプログラム ファイルを探しに行くというような解釈をしているのですが、 /usr/local/binがあるならば/binや/usr/binといったようなpathは必要ないような気がします。なぜこのような書き方をするのでしょうか? お忙しいところ申し訳ございませんがよろしくお願いします。