在非标准的Homebrew安装时安装Watchman

5

我正在使用React Native,需要安装watchman。运行react-native run-ios时,出现以下错误。

watchman --no-pretty get-sockname returned with exit code=1, signal=null, 
stderr= 2017-05-05T08:17:49,256: [2110218240] while computing sockname: 
failed to create /usr/local/var/run/watchman/foo-state: No such file or directory

经过调查,似乎是由于没有标准的/usr/local/ homebrew安装引起的。

是否有方法可以更改watchman正在使用的statedir


为什么你会有一个非标准的homebrew安装? - Toby
这不是我可以在我的工作站上更改的东西。 - developarvin
Brew 不应安装在 /opt 目录,因为这会在多用户系统中造成问题。 - undefined
3个回答

4
我通过创建目录并将该目录的所有权分配给我的用户,解决了这个问题。
sudo mkdir /usr/local/var/run/watchman/foo-state
sudo chown -R myusername /usr/local/var/run/watchman/foo-state

这个解决方案很好。为了支持配置 --statefile,在 React Native 中添加一个环境变量可能会很有用。 - pietro909
如果用户安装在主目录中,多用户系统上很可能存在危险。 - undefined

0

来自watchman --help

 --statefile=PATH       Specify path to file to hold watch and trigger state

所以我认为你需要使用--statefile选项。


我不确定这会有什么帮助,因为这意味着编辑运行React Native包管理器的脚本。 - developarvin

0

解决这个问题最安全的方法是删除状态目录。运行 rm -rf /usr/local/var/run/watchman/root-state。这个方法已经为我解决了同样的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接