操作系统升级后,无法在OSX El Capitan上启动NodeJS应用程序(Appium)
所以我有一段触发Appium的.Net代码,它是一个在Mac OS上运行的NodeJS应用程序。 它曾经在优胜美地工作,但在XCode和El Capitan更新后停止工作。 我正在尝试运行下面的命令作为代码的一部分:
ssh.RunCommand("/usr/local/bin/forever start /Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js --address 0.0.0.0 --port 4723 --log-level debug --device-name \"iPhone 6\" --platform-name iOS --platform-version \"8.4\" --app \"/Applications/my.app\" --browser-name iOS -l --log /Library/Logs/Appium/current.log");
而且我正在Visual Studio中获得“env:node:No such file or directory”
System Policy: deny file-write-data /usr/bin/env
在system.log我猜OS X不允许我访问/ usr / bin / env了,有什么办法可以绕过吗? 干杯!
这确实是由El Capitan的系统完整性保护(SIP)造成的,但是另一个回答是错误的,因为他们声明/usr/local
仍然是可写的,或者您可以重新获得永久访问权限。
每次我安装一个新的程序时,这完全混淆了我的homebrew
程序安装,而且我必须至less每周一次chown -R username /usr/local
。 SIP有一些不同的命令行参数,可以将其完全禁用(我当然正在考虑这样做),或者只禁用它的一部分。
请注意,禁用/启用/修改系统完整性保护必须在单用户模式下进行,方法是通过按住Cmd+R
重启进入恢复模式,然后启动根terminal并执行csrutil
命令,该命令需要多个参数,即disable
和enable
,还有一些参数,这些参数只能部分禁用特定事物的SIP(在csrutil --help
对话框中没有说明)。 您还需要重新启动才能使设置生效。
El Capitan增加了一个名为系统完整性保护或“SIP”的东西。 即使您是root用户,“SIP”也会阻止您在/usr
写入数据。 但是, /usr/local
仍然可用,这就是您的应用程序正在尝试执行的操作。 但机会是/usr/local
不存在或者您没有适当的权限。
如果/usr/local
已存在,请运行:
sudo chown -R $(whoami):admin /usr/local
否则,按照这个: https : //github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md
- SocketIoClientDotNet – Socket.IO客户端库有时会发出两个连续的事件,有时不会
- Docker容器Windows + Node.js + .NET
- build立一个Web服务以供多个平台使用 – 我应该使用什么格式?
- 无法通过NUGET安装NodeJS
- Flurl.Http自定义错误
- ASP.NET MVC,Node.JS. 他们可以互动吗?
- 用于IBM MQ的.Net AMQP客户端
- 将现有的Node Js项目添加到现有的.Net解决scheme中
- ./ClientApp/boot.server.ts中的错误找不到模块:错误:无法parsing'./../$$_gendir/ClientApp/app/app.server.module.ngfactory'