Php sudo:pear:未找到命令
我有雪豹,它显然预装了php和pear。我启用了php,但找不到任何PEAR的迹象。我已经安装了它,现在phpinfo()显示了它的安装Php sudo:pear:未找到命令,php,macos,pear,Php,Macos,Pear,我有雪豹,它显然预装了php和pear。我启用了php,但找不到任何PEAR的迹象。我已经安装了它,现在phpinfo()显示了它的安装 include_path .:/usr/lib/php/share/pear 还是当我输入任何pear命令时 $ sudo pear 我得到一个错误:sudo:pear:command未找到 我遗漏了什么?给这只猫剥皮的方法有很多,但如果您已经安装了定位,我会键入以下内容(您可能会这样做): 这应该列出一个或多个东西,其中一个看起来像通往梨的路径。让我们假
include_path .:/usr/lib/php/share/pear
还是当我输入任何pear命令时
$ sudo pear
我得到一个错误:sudo:pear:command未找到
我遗漏了什么?给这只猫剥皮的方法有很多,但如果您已经安装了定位,我会键入以下内容(您可能会这样做): 这应该列出一个或多个东西,其中一个看起来像通往梨的路径。让我们假设它说的是类似于
/usr/local/bin/pear
。那么您的下一个命令是:
$ sudo /usr/local/bin/pear
我想到两个警告:
pear
所在的目录添加到PATH
环境变量中您需要更新系统$PATH变量,以便pear命令能够工作。使用以下命令编辑bash概要文件(如果您有textmate): 并在这一行中添加:
export PATH=/usr/local/pear/bin:$PATH
在那之后重新加载你的终端,它现在应该可以工作了
编辑:
谢谢你强调我的错误,特罗特。我已经更改了路径,以确定bin的大致位置(取决于您选择安装它的位置)如果您直接在
PHP
上安装了pear(例如MAMP
),您应该将pear
复制到/usr/local/bin
:
cp /php5.3.2/pear /usr/local/bin/pear
然后导出var
PATH
,并在shell中使用“pear
”进行测试。我遇到了类似的问题,需要更新sudoers中的secure\u PATH,因为它覆盖了用户的$PATH
检查sudo上的安全路径
[root@host ~]# sudo -V | grep 'Value to override'
Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin
如果$PATH
被覆盖,我们将visudo
并编辑/etc/sudoers
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
所以我确实有textmate,但当然我没有找到mate命令。我添加了.bash_概要文件的路径,但它是一个新文件,因此可能我在错误的位置添加了它,因为它仍然不起作用。我相当确定/usr/lib/php/share/pear不是实际命令行二进制文件的路径,所以我认为这不会起作用。include_path是包含在include()和require()中的PHP文件的位置。如果发现命令行二进制文件隐藏在同一目录中,那将是非常令人惊讶和值得的。。。我知道路径是/usr/lib/php/share/pear,但奇怪的是,即使我去了那个目录,我仍然无法运行pear,那不是安装pear命令行二进制文件的目录。在终端提示符中键入
locate bin/pear
时会发生什么情况?Locate默认安装在我见过的每个Mac OS X安装上,所以我很惊讶看到你说它没有安装。如果确实没有安装,请尝试where is pear
。如果所有其他操作都失败,您可以尝试sudo/usr/local/bin/pear
和sudo/usr/local/php5/bin/pear
。我在Mac OS X上看到过pear出现在两个位置。如果你真的不知道它在哪里,但确定它在哪里,并且你可以非常耐心地尝试一些彻底但效率低下的方法,比如:sudo find/-name pear
,但这可能需要很长时间才能运行。我准备至少给它几个小时。我怀疑,那只会是真正绝望的时刻。(在生产服务器上运行可能不是个好主意。)所以locate说:locate数据库(/var/db/locate.database)不存在。酷!因此,现在您可以在想要使用它时始终键入sudo/usr/lib/php/bin/pear
,或者您可以按照@hayashi-kei的指示,但使用此行添加:export PATH=/usr/lib/php/bin:$PATH
如果先发布此问题,可能会出现重复的情况?
[root@host ~]# sudo -V | grep 'Value to override'
Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin