
Ubuntu日本語フォーラム

ログインしていません。
端末でsudoもdirもすべて実行できなくなってしまいました。実行すると以下のようなエラーメッセージが出ます。
Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
こうなるまえに、WideStudioを導入しようと、WEBを参考に作業をおこなっていました。
その途中で環境変数の設定というところが紹介されており、よく分からないまま紹介されているコードを端末から実行したところ、こうなってしまいました。
完全に理解できないままやってしまった自分のミスです。
下に、そのときの設定で打ち込んだコマンドが、下のソースの頭から三行目までです。その直後ディレクトリの中身を見ようとdirをしたらエラーになってしまいました。
root@butt:/opt/widestudio-3.20-1.orig/src# export WSDIR=/usr/local/ws/bin
root@butt:/opt/widestudio-3.20-1.orig/src# export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
root@butt:/opt/widestudio-3.20-1.orig/src# export LD_LIBRARY_PATH:/usr/local/ws/lib
bash: export: `LD_LIBRARY_PATH:/usr/local/ws/lib': not a valid identifier
root@butt:/opt/widestudio-3.20-1.orig/src# dir
Command 'dir' is available in '/bin/dir'
The command could not be located because '/bin' is not included in the PATH environment variable.
dir: command not found
ご迷惑をお掛け致しますが、よろしくお願いします。
オフライン
butt による投稿:
Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
親切に(?)エラーメッセージがでるようになっているのですね。知りませんでした。。
意訳すると、sudoコマンドは/usr/bin/sudoとして存在するはずだけど、PATHに入っていないので実行できません、のような意味になります。
butt による投稿:
下に、そのときの設定で打ち込んだコマンドが、下のソースの頭から三行目までです。その直後ディレクトリの中身を見ようとdirをしたらエラーになってしまいました。
root@butt:/opt/widestudio-3.20-1.orig/src# export WSDIR=/usr/local/ws/bin
root@butt:/opt/widestudio-3.20-1.orig/src# export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
root@butt:/opt/widestudio-3.20-1.orig/src# export LD_LIBRARY_PATH:/usr/local/ws/lib
bash: export: `LD_LIBRARY_PATH:/usr/local/ws/lib': not a valid identifier
root@butt:/opt/widestudio-3.20-1.orig/src# dir
Command 'dir' is available in '/bin/dir'
The command could not be located because '/bin' is not included in the PATH environment variable.
dir: command not found
export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
とやってしまうとデフォルトのPATHが上書きされてしまい、/bin, /sbin, /usr/bin, /usr/sbinなどへPATHが通らなくなります。
やるなら、
export PATH=$PATH:$LD_LIBRARY_PATH:/usr/local/ws/lib
では無いかと。
PATHにLD_LIBRARY_PATHを含めるというのがなんとも不思議な感じがするので、参考にした情報元を再確認していただいた方がよいかも知れません。
(実は
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
だったりしないでしょうか)
また、rootになって作業しているように見えますが、rootになって作業していると本来root権限が要らない作業までroot権限でやってしまったり、/var/log/auth.logに作業履歴が残らなかったりしますので、sudoを使ってroot権限での作業を必要最低限に押さえる習慣を身につけられるとよいのではないかと思います。
オフライン
対策を書き忘れていました。
設定ファイルを書き換えていなければログインしなおせば、元の状態に戻るかと思います。
設定ファイルを書き換えていれば、元に戻してください。
とりあえずは
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
などとすればPATHで設定したディレクトリにあるコマンドへのPATHが通ります。
オフライン
hmatsue様、お返事ありがとうございます。
hmatsue による投稿:
export PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
とやってしまうとデフォルトのPATHが上書きされてしまい、/bin, /sbin, /usr/bin, /usr/sbinなどへPATHが通らなくなります。
やるなら、
export PATH=$PATH:$LD_LIBRARY_PATH:/usr/local/ws/lib
では無いかと。
PATHにLD_LIBRARY_PATHを含めるというのがなんとも不思議な感じがするので、参考にした情報元を再確認していただいた方がよいかも知れません。
(実はexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ws/lib
だったりしないでしょうか)
パスという概念がよく分かっていなかったので、どうして/binにちゃんとsudoやapt-getが存在してるのに動かないのか分からなかったのですが、よくわかりました。
また、参考にしているWEBページをもう一度確認したところ確かに、export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ws/libとなっていました。
hmatsue による投稿:
また、rootになって作業しているように見えますが、rootになって作業していると本来root権限が要らない作業までroot権限でやってしまったり、/var/log/auth.logに作業履歴が残らなかったりしますので、sudoを使ってroot権限での作業を必要最低限に押さえる習慣を身につけられるとよいのではないかと思います。
アドバイスありがとうございます。sudo su とやってしまえば、その後のパスワードの入力が必要ないので楽だなぁ程度にしか考えていませんでした。
確かに、rootで作業していると、編集したデータ等がrootディレクトリのもとに保存されるので、アレ?とおもっていました。
Windowsだとブラックボックス化されているところでも、Linuxだと自分で触ることができるという楽しい反面、理解して作業しないと大変なことに簡単になってしまうということがよくわかりました。気をつけます。
ほんとうにたすかりました。早速、教えていただいた方法でもう一度環境変数を設定してみます。
オフライン
対策もふくめて、教えていただいた方法で設定し直したところ、無事、コマンドも、新しくインストールしたソフトも無事にパスが通るようになり、実行できるようになりました。
自分でパスがとおるように設定するなんて、Windowsの時はやったことがなかったので、勉強になりました。
また、親切に教えてくださってありがとうございます。おかげで、なんとか直すことができました。
オフライン
解決されたようでよかったです。
最終的な設定内容が固まったら、
gedit ~/.xprofile
などとしてユーザの設定ファイルを開いて、そこに追記するとよいかもです。
# 余談ですが、Windowsではコマンドプロンプトを開いて
# echo %PATH%
# などとすればPATHの内容が確認できます。
# 最近はあまり手動で設定する機会はないかもですが。
オフライン