2015-11-18 21 views
5

yüklendikten sonra bir NodeJS uygulaması (Appium) başlatılamıyor Bu nedenle, bir Mac OS üzerinde çalışan bir NodeJS uygulaması olan Appium'u tetikleyen bir .Net kodu var. Yosemite üzerinde çalışıyordu ama XCode ve El Capitan güncellemelerinden sonra çalışmayı durdurdu.OS X El Capitan'da bir OSD El Capitan uygulamasında

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"); 

Ve alıyorum: Ben kodunun bir parçası olarak aşağıdaki komutu çalıştırmak çalışıyorum "env: düğümü: Böyle bir dosya ya da dizin" sisteminde Visual Studio

System Policy: deny file-write-data /usr/bin/env 

içinde. log Artık OS X'in/usr/bin/env'ye erişmeme izin vermediğini tahmin ediyorum, baypas etmenin bir yolu var mı? Şerefe!

cevap

-1

El Capitan, Sistem Bütünlüğü Koruması veya "SIP" adlı bir şey ekledi. "SIP", root iseniz bile /usr yazmanızı önler. Bununla birlikte, /usr/local hala kullanılabilir ve uygulamanızın yapmaya çalıştığı şey budur. Ancak, olasılıklar /usr/local değil veya uygun izinlere sahip değilsiniz. /usr/local zaten var

Eğer çalıştırın:

başka

takip bu: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md

+0

İlginç .. Bunu yarın ofiste kontrol edeceğim, çok teşekkürler –

+0

Bu bana yardımcı olmuyor .. –

+0

Bağlantıdan çözümü denediniz mi? –

0

Bu gerçekten El Capitan Sistem Bütünlüğü Koruma (SIP) kaynaklanır, ancak diğer cevaptır /usr/local'un hala yazılabilir olduğunu ya da kalıcı erişimi yeniden kazanabileceğini belirttiği gerçeğiyle yanılıyor.

Bu, yeni bir program yüklediğimde her seferinde homebrew yüklememi tamamen karıştırıyor ve en az haftada bir kez chown -R username /usr/local kullanmam gerekiyor. SIP, tamamen devre dışı bırakmak (ki kesinlikle bunu yapmayı düşünüyorum) ya da sadece bölümlerini devre dışı bırakmak için alabileceği birkaç farklı komut satırı parametresine sahiptir.

Not olduğunu

etkinleştirme/devre dışı/Sistem Bütünlüğü Koruma değiştirerek yani Cmd+R basılı tutarak ve daha sonra bir kök Terminal başlatılması ve çoklu parametreleri alır csrutil komutu, yürütme yoluyla Kurtarma Moduna tekrar başlatarak tek kullanıcı modunda yapılmalıdır disable ve enable, ancak belirli şeyler için yalnızca SIP'yi devre dışı bırakan parametreler (csrutil --help iletişim kutusunda hiç belirtilmemiştir). Ayarların etkili olması için yeniden yeniden başlatmanız gerekecektir.

+0

Cevabınız için teşekkürler! Bunu yapmak için ne yapmam gerektiğini anladım ama etrafta bir Mac klavye yoktu ve bir Windows Klavye ile kurtarma moduna nasıl erişebileceğimi bilmiyorum. Ne aptalca bir durum .. –

+0

Bu yüzden SIP'i kaldırmayı başardım ve şu anda bana şu komutu veriyor: env: node: Böyle bir dosya veya dizin yok "Sonsuza dek" çalışan bir sorun var sanırım komut. Bu, "sonsuza dek" dosyasının içeriğidir: #!/Usr/bin/env düğüm gerektirir ('../ lib/forever').başla(); NodeJS'de çok iyi bir eğitim almıyorum, belki de burada ne eksik olduğumu bilen biri var mı? Teşekkürler! –

+0

Eğer "homebrew" ile NodeJS'yi kurduysanız, güncellemeyi yapmak isteyebilirsiniz; demlemek yükseltme node '. Çok sayıda NodeJS uygulamanız varsa ve bu, "npm" ile yapılan global olarak yüklenmiş bir modül ise, npm güncellemesini yapabilirsiniz; npm yükseltme -g sonsuza kadar böyle bir şey. Bu tek bir Node JS uygulamasına özelse, uygulama dizinine gidin ve 'npm güncelleme yapın; npm yükseltme sonsuza dek '. Bu modül için 'settings.json' gereksinimlerinizi iki kez kontrol etmeniz ve işe yarayan bir şey bulana kadar etrafta dolaşmanız yeterli olacaktır. – rubynorails

İlgili konular