我需要使用一些工具,但是当我尝试在Laravel和Cordova中使用PHP Artisan时遇到一些问题,我需要注释一些行,因为$ PATH不能正常工作。我是一个使用Unix的noob:)
在我的问题中更具体一点,我需要这些线路可以很好地协同工作,而不需要根据我需要使用的工具取消注释和注释:
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
export PATH=~/.composer/vendor/bin:$PATH
我取消评论每个错误时的错误:
案例1: Cordova只能在Xcode 4.6或更高版本中运行。
案例2:需要Mcrypt PHP扩展。
编辑:我添加了完整的bash配置文件:
# The next line updates PATH for the Google Cloud SDK.
source /Users/chema/google-cloud-sdk/path.bash.inc
# The next line enables bash completion for gcloud.
source /Users/chema/google-cloud-sdk/completion.bash.inc
#Comment this line make Cordova works fine
#export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
export PATH=${PATH}:/Users/chema/sdk-android/sdk/platform-tools:/Users/chema/sd$
#Comment this line make PHP Artisan with Laravel works fine
export PATH=~/.composer/vendor/bin:$PATH
export ANDROID_HOME=/Users/chema/sdk-android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
如果我取消注释这两行,只需使用PHP Artisan Laravel。
echo PATH 当Cordova工作时,PHP Artisan没有:
xcodebuild / usr / bin / xcodebuild
/Users/chema/.composer/vendor/bin:/Users/chema/google-cloud-sdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin :/用户/ CHEMA / SDK-的Android / SDK /平台的工具:/用户/ CHEMA / SDK-的Android / SDK $:/用户/ CHEMA / SDK-的Android / SDK /工具:/用户/ CHEMA / SDK-的Android / sdk / platform-tools
echo PATH 当PHP Artisan工作时,Cordova没有:
/应用/ XAMPP / xamppfiles / bin中:/用户/ CHEMA /谷歌云-SDK / bin中:在/ usr / local / bin中:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:/用户/ CHEMA / SDK-的Android / SDK /平台的工具:/用户/ CHEMA / SDK-的Android / SDK $:/用户/ CHEMA / SDK-的Android / SDK /工具:/用户/ CHEMA / SDK-的Android / SDK /平台-tools
xcodebuild / usr / bin / xcodebuild
谢谢!
答案 0 :(得分:2)
正在发生的事情是,Cordova需要的head
命令通常存在于OSX上的/usr/bin/head
中,而XAMPP提供的版本却忽略了这一命令。因此需要调整路径顺序。取消注释XAMPP时which head
可能会给您/Applications/XAMPP/xamppfiles/bin/head
而不是/usr/bin/head
这就是说尝试如下所示。
export ANDROID_HOME=/Users/chema/sdk-android/sdk
export PATH=~/.composer/vendor/bin:$PATH
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
这应该将xampp版本的head放在路径的末尾。但这可能会导致其他名称冲突导致XAMPP无法正常工作(我没有安装,因此无法测试)(同时删除了export PATH=${PATH}:/Users/chema/sdk-android/sdk/platform-tools:/Users/chema/sd$
,它会在您的路径中添加看似冗余/错误路径的内容)
如果这仍然不起作用,最好的办法是创建一个运行cordova的包装器脚本,将路径设置为你知道的路径,然后只传递命令行选项
- 编辑 -
OSX路径上的是由path_helper
构建的,它构建了/etc/paths
&&的路径。 /etc/manpaths
这是从你运行shell init /etc/profile
,/etc/zshenv
等运行的。并设置了基本路径
根据你对/Applications/XAMPP/xamppfiles/bin
中的那个人的评论,看来这行export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
要么没有被执行,要么/Applications/XAMPP/xamppfiles/bin
已经在其他地方的PATH中了(你继续寻找你的.bashrc之类的IE,而不是创建一个新的shell等。)
试试这个。将以下内容放入reset_paths.sh
#!/bin/sh
export PATH=
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
PATH=~/.composer/vendor/bin:$PATH
PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
export PATH
这将做的是重置你的路径,执行path_helper来设置来自操作系统的路径,然后坚持下去,所以我们开始新鲜..
然后在你的shell中执行source ./reset_paths.sh
然后尝试从该shell运行Cordova并查看它是否有效。