【问题标题】:Mix can't access a directory it just created to run the Phoenix server?Mix 无法访问它刚刚创建的运行 Phoenix 服务器的目录?
【发布时间】:2020-03-28 14:25:05
【问题描述】:

我正在尝试通过管理员 PowerShell 会话中的 official guide 运行 Phoenix 演示应用程序,我是我机器上的管理员。我已经安装了所有依赖项,但是当我尝试运行mix phx.server 时,它告诉我它无法删除文件,因为(它)不是所有者。使用mix phx.new hello 无法完全控制它刚刚创建的这个文件似乎很奇怪。请参阅我的 PowerShell 会话的以下输出:

PS C:\users\Isaiah Nelson\Lab> cd hello
PS C:\users\Isaiah Nelson\Lab\hello> mix ecto.create
Compiling 13 files (.ex)
Generated hello app
The database for Hello.Repo has been created
PS C:\users\Isaiah Nelson\Lab\hello> mix phx.server
** (File.Error) could not remove file "c:/users/Isaiah Nelson/Lab/hello/_build/dev/lib/hello/priv": not owner
    (elixir) lib/file.ex:1128: File.rm!/1
    (mix) lib/mix/utils.ex:452: Mix.Utils.symlink_or_copy/2
    (mix) lib/mix/project.ex:644: Mix.Project.build_structure/2
    (mix) lib/mix/tasks/compile.all.ex:21: Mix.Tasks.Compile.All.run/1
    (mix) lib/mix/task.ex:331: Mix.Task.run_task/3
    (mix) lib/mix/tasks/compile.ex:96: Mix.Tasks.Compile.run/1
    (mix) lib/mix/task.ex:331: Mix.Task.run_task/3
    (mix) lib/mix/tasks/app.start.ex:58: Mix.Tasks.App.Start.run/1

此后,我尝试搜索有关 phx.server 的 Mix Task 的文档,但没有发现为什么会发生这种情况的任何线索。我什至还尝试将“hello”目录所有者设置为管理员、我的用户 (Isaiah Nelson) 和具有完全控制和继承权限的“所有人”,但我仍然无法运行演示应用程序而不会出现此错误。这是 Mix 通过 Powershell 在 Windows 中创建文件的问题,还是其他一些 Windows 文件权限问题?无论哪种方式,我该如何修复它以便运行演示?

【问题讨论】:

  • 我认为在 Windows 上托管的 linux 中运行它可能比解决这个特定问题要快得多。
  • @PawełObrok 一些公司要求服务在 Windows 上运行。

标签: powershell elixir phoenix-framework elixir-mix


【解决方案1】:

如果没有理由以管理员身份运行 phx app,您可以递归地“获取”项目所在文件夹的所有权。右键单击文件夹,然后单击“属性”>“安全”>“高级”(按钮),然后在新窗口中观察顶部的 Owner,单击“更改”链接并找到并选择您的用户名。单击确定关闭搜索对话框,然后选择“将所有子对象权限条目替换为此对象的可继承权限条目”。最后单击确定(或应用)并尝试在没有提升权限的情况下运行应用程序。

编辑

我发现在某些情况下,从 WSL 编辑代码以及以后在没有 WSL 的情况下编辑代码可能会混合文件系统上的访问权限,从而导致这种或类似的行为,例如无法将文件夹移动到其他位置。如果这是你的情况,那么我建议你决定你的开发环境在哪里,在 WSL 中还是在 Win 中。

【讨论】:

  • 根据我的原始帖子,我完全按照您提到的步骤进行了操作。我尝试将所有者设置为不同的配置文件(管理员、每个人、以赛亚纳尔逊),并将继承的权限应用于每个所有者配置文件的整个目录。我确实打开了 WSL(最近也是如此),但没有做任何事情。我想知道在幕后,它是否影响了您建议的访问权限。我会关掉它,看看会发生什么。
猜你喜欢
  • 2021-05-24
  • 2012-02-17
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多