OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

全ユーザのパスの指定

  • すぐに回答を!
  • 質問No.110245
  • 閲覧数94
  • ありがとう数2
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 0% (0/7)

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に張る
結局、こうすることにしたのですが
全ユーザのパスを一度に変更する事は可能なのでしょうか?
また、どうすればよいのでしょうか?

あと、みなさんはこの場合、どんな方法をとっていますか?
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全5件)

  • 回答No.1
レベル8

ベストアンサー率 40% (16/40)

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

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

お礼率 0% (0/7)

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


  • 回答No.2
レベル8

ベストアンサー率 50% (22/44)

bash を利用している場合: /etc/profile に  PATH=....... と書かれている部分に  /usr/local/hoge を追加する. tcsh(csh)を利用している場合: /etc/csh.login に  setenv PATH ..... と書かれている部分に  /usr/local/hoge を追加する. 私は、こういう方法で対処しています ...続きを読む
bash を利用している場合:
/etc/profile に
 PATH=.......
と書かれている部分に
 /usr/local/hoge
を追加する.

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

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

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

お礼率 0% (0/7)

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

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

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

どこか他にもパスに関連する設定ファイルがあるのでしょうか?
投稿日時 - 2001-07-30 13:53:13
  • 回答No.3
レベル9

ベストアンサー率 46% (30/65)

csh.loginにaliasを定義してはどうでしょう。 alias hoge /usr/local/hoge/hoge ...続きを読む
csh.loginにaliasを定義してはどうでしょう。

alias hoge /usr/local/hoge/hoge
補足コメント
yuhei-lab

お礼率 0% (0/7)

なるほど、いいアイデアですね
しかしbashをよく用いるので、aliasは使えないようですね。
投稿日時 - 2001-07-30 13:44:14
  • 回答No.4
レベル8

ベストアンサー率 50% (22/44)

うまくいきませんでしたか.(_o_) > どこか他にもパスに関連する設定ファイルがあるのでしょうか? 考えられるのは、  /etc/profile  /etc/bashrc  /etc/profile.d/*.sh  ~/.bashrc  ~/.bashrc_profile ですね. これらのファイルのどこかに書かれているのでは ないかと思います.(推測) == ...続きを読む
うまくいきませんでしたか.(_o_)

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

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

==

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

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

alias hoge='/usr/local/hoge/hoge'
  • 回答No.5
レベル11

ベストアンサー率 36% (86/235)

ユーザーのホームディレクトに.bash_profileというファイルがあります。 その中のPATHを以下のようにしてください。 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and ...続きを読む
ユーザーのホームディレクトに.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しなおさないと反映しませんよ。
このQ&Aで解決しましたか?
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ