RedHat7.1を使用しています。
質問なのですが
あるパッケージをインストールして
それが/usr/local/hogeというディレクトリに
hogeという実行ファイル(つまり/usr/local/hoge/hoge)と
pluginなどのファイル(hoge実行時に読み込まれる)ができるときに
ユーザにそのhogeを実行させるにはどうすればいいでしょうか?

1.ユーザに/usr/local/hoge/hogeと打たせる
これは少し避けたいです。

2./usr/bin以下にシンボリックリンクを作る
普通はこの方法をすぐ思いつきますが
実行時、他の必要なファイル(plugin)を
/usr/binの中で探してしまい、エラーがでます。

3.全ユーザのパスを/usr/local/hogeに張る
結局、こうすることにしたのですが
全ユーザのパスを一度に変更する事は可能なのでしょうか?
また、どうすればよいのでしょうか?

あと、みなさんはこの場合、どんな方法をとっていますか?

このQ&Aに関連する最新のQ&A

bash とは」に関するQ&A: poor-bashとは?

hoge」に関するQ&A: hoge ってなんですか?

A 回答 (5件)

ユーザーのホームディレクトに.bash_profileというファイルがあります。


その中のPATHを以下のようにしてください。
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME="root"

export USERNAME BASH_ENV PATH

ちなみにloginしなおさないと反映しませんよ。
    • good
    • 0

うまくいきませんでしたか.(_o_)



> どこか他にもパスに関連する設定ファイルがあるのでしょうか?

考えられるのは、
 /etc/profile
 /etc/bashrc
 /etc/profile.d/*.sh
 ~/.bashrc
 ~/.bashrc_profile
ですね.
これらのファイルのどこかに書かれているのでは
ないかと思います.(推測)

==

> しかしbashをよく用いるので、aliasは使えないようですね。

いや、bash でも alias は使えたと思います.

alias hoge='/usr/local/hoge/hoge'
    • good
    • 0

csh.loginにaliasを定義してはどうでしょう。



alias hoge /usr/local/hoge/hoge

この回答への補足

なるほど、いいアイデアですね
しかしbashをよく用いるので、aliasは使えないようですね。

補足日時:2001/07/30 13:44
    • good
    • 0

bash を利用している場合:


/etc/profile に
 PATH=.......
と書かれている部分に
 /usr/local/hoge
を追加する.

tcsh(csh)を利用している場合:
/etc/csh.login に
 setenv PATH .....
と書かれている部分に
 /usr/local/hoge
を追加する.

私は、こういう方法で対処しています.

ただ、各ユーザが自分の環境設定ファイル
(~/.bashrc ~/.cshrc など)を書き換えていると
ダメかもしれません.
(パスの設定を上書きしてしまっている場合など)

この回答への補足

なるほど、最初思いついた方法の3に該当する答えですね
ありがとうございます。

というわけで設定してみたのですが、
なぜかrootでしか有効になりません。(csh,bash共に)
もちろん、新しくシェルを立ち上げなおしました。
試したユーザは.cshrcは使っておらず
bashrcだけを使っており
そこではパスの設定は特に行ってないみたいです

ユーザのパスには/opt/binなどが設定されていますが
/etc/profileにも、/etc/csh.loginにも
/opt/binへのパスは設定していないみたいです

どこか他にもパスに関連する設定ファイルがあるのでしょうか?

補足日時:2001/07/30 13:53
    • good
    • 0

こんにちわ。



例えば、一般的にパスが通っているところ(/usr/local/bin)などに、同名のシェルスクリプトなどを作成して、この中でパスを設定してから、/usr/local/hogeを絶対パスで実行するというのはいかがでしょうか?

この回答への補足

なるほど、ありがとうございます
いい方法ですね
最初、一度そのスクリプトを実行したらそれ以降PATHの環境変数が
増えちゃうんじゃないかなとおもったのですが
考えてみればスクリプトで新しく起動したシェルで実行するので
もともとのシェルには影響ないですね
バッチリだと思うんですが、もう少し試してみます。

補足日時:2001/07/30 14:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報