2012-02-24 8 views
6
sudo echo $PATH 

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/lubuntu/Tools/android-sdk-linux/platform-tools 

ADBに "コマンドが見つかりませんが、" その後、私はadb start-serverを実行/home/lubuntu/Tools/android-sdk-linux/platform-tools

に存在する:

* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 

その後sudo adb install test.apk

sudo: adb: command not found 

私は環境変数$ PATH、bにadbを追加しました。 sudoはそれを見つけることができませんでした。 なぜですか?

答えて

6

sudoは、ルートに切り替えるという意味であり、必ずしも環境が当てはまるとは限りません。それは危険です。

リスクがある場合は、-Eオプションを追加して呼び出し環境を継承してください。

+0

THXに次のように

$ gedit ~/.bashrc 

パスを設定し、私はsudoの-E ADB '、' -E'オプションをテストするだけでなく、失敗したtemp.apk'をインストール==> 'sudo:adb:command not found'、 '-E'オプションは' sudo 'のために動作しませんか? – Searene

+0

from man sudo: -E(環境を保存する)オプションは、sudoers(5)のenv_resetオプションよりも優先されます)。これは、一致するコマンドのいずれかがSETENVタグを有するかのsetenvオプションがsudoersファイルに設定されている場合にのみ利用可能である(5)。 – lamplightdev

2

2番目の例でadbをルートとして実行しているため、adbもルートのパスになければなりません。

2

は@unwindの回答に完全に同意します。
"sudo"を使ってこれをしてはいけません。
sudoを使わないで試してみてください。あなたのためにうまくいくと思います。

また、sdkに存在する「tools」という名前のフォルダにパスを追加する必要があります。ただし、問題には関係しませんが、提案が必要です。

5

問題は、そのユーザーにはPATH varが設定されており、ルートには追加のPATHエントリがないため、プログラムが見つかりません。

あなたもルートのセットアップADBべき:

ADB環境変数

オープン~/.bashrcと実際のパスに変更<sdk>一番下

export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools 

に以下を追加します。すなわち/home/user/android-sdk-linux 端末を閉じてもう一度開いて変数を更新してください。

adb setup

から動作しない場合には、/ usr/local/binに

2

にADBと他のバイナリからのシンボリックリンクは完全に同意します。

問題はAndroid Debug Bridge(adb)のコマンドラインツールで、パスにリンクされていませんでした。パスに設定した後、それは私のために働いた。 bashrcに

export PATH=${PATH}:~/adt-bundle/tools 
export PATH=${PATH}:~/adt-bundle/platform-tools 
関連する問題