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存在于/home/lubuntu/Tools/android-sdk-linux/platform-tools
然后我执行了adb start-server
:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
然后sudo adb install test.apk
sudo: adb: command not found
我在环境变量$ PATH中添加了adb,但是sudo找不到它。 为什么呢?
答案 0 :(得分:6)
sudo
表示您正在切换到root,这并不一定意味着您的环境出现了。那可能很危险。
冒风险,添加-E
选项以继承调用环境。
答案 1 :(得分:5)
问题是为该用户设置了PATH var,而root没有aditional PATH条目,因此无法找到该程序。
您也应该为root设置adb:
adb环境变量
打开~/.bashrc
并将以下内容添加到最底层
export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools
将<sdk>
更改为实际路径。即/home/user/android-sdk-linux
关闭并重新打开终端以刷新变量。
如果不起作用,请将adb和其他二进制文件的符号链接创建到/ usr / local / bin
答案 2 :(得分:2)
由于您在第二个示例中以root身份运行adb,因此adb也必须位于root的路径上。
答案 3 :(得分:2)
完全同意@unwind的答案。
你不能使用“sudo”来做这件事。
试试没有sudo,我想这对你有用。
此外,您应该将路径添加到sdk中存在的名为“tools”的文件夹中,尽管它与您的问题无关,但建议。
答案 4 :(得分:2)
完全同意。
问题是Android Debug Bridge(adb)命令行工具未链接到路径。在路径中设置后,它对我有用。
$ gedit ~/.bashrc
在.bashrc
中设置如下路径export PATH=${PATH}:~/adt-bundle/tools
export PATH=${PATH}:~/adt-bundle/platform-tools