如何在 Oracle VM VritualBox 中运行的 Debian GNU/Linux 9 (stretch) 64 位中安装 IONIC 框架?

如何在 Oracle VM VritualBox 中运行的 Debian GNU/Linux 9 (stretch) 64 位中安装 IONIC 框架?

我想安装 IONIC,但我不喜欢 Windows,因为迟早会出现一些不兼容的开发工具或服务的问题。

讽刺的是,我在 Debian 上安装 IONIC 时也遇到了问题,但我认为这与我在 VirtualBox 中运行 Debian 有关……而且我正尝试在 Windows 中的共享文件夹中安装 IOINC。

Node、npm 和 IONIC 已安装并正常运行。当我尝试在与 Windows 共享的文件夹中创建 IONIC 应用“ionic start myApp tabs”时出现问题。

我想要安装 IONIC 应用程序的文件夹是 Debian 上安装并在 Windows 中创建的共享文件夹。实际上,我可以在系统的其他文件夹中创建 IONIC 应用程序,唯一显示这些错误的是共享文件夹。

我认为这不是权限问题。我以 root 身份尝试了所有安装步骤,但出现相同的错误。IONIC 也可以写入共享文件夹,因为里面有很多文件,但出于某种原因,IONIC 应用程序的创建始终无法正常结束。

我想日志的最后几行可以为某人提供正在发生的事情的线索并帮助我修复它。

67177 verbose cwd /media/sf_IONIC-Shared/myApp3
67178 error Linux 4.9.0-3-amd64
67179 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
67180 error node v6.11.1
67181 error npm  v3.10.10
67182 error path ../acorn/bin/acorn
67183 error code EROFS
67184 error errno -30
67185 error syscall symlink
67186 error rofs EROFS: read-only file system, symlink '../acorn/bin/acorn' -> '/media/sf_IONIC-Shared/myApp3/node_modules/.bin/acorn'
67187 error rofs This is most likely not a problem with npm itself
67187 error rofs and is related to the file system being read-only.
67187 error rofs
67187 error rofs Often virtualized file systems, or other file systems
67187 error rofs that don't support symlinks, give this error.
67188 verbose exit [ -30, true ]

请帮忙。谢谢。

PD:您可以在以下链接中阅读完整日志

https://drive.google.com/open?id=0ByMd2Tsklj1pVnM3Ymx1ajhVV0k

答案1

发生此错误的原因是 IONIC 使用了 NPM,而 NPM 使用了 VirtualBox 文件系统不喜欢的符号链接(出于安全原因,我不明白)。

幸运的是,有一个解决办法......你可以在这里阅读原始答案:https://github.com/npm/npm/issues/992#issuecomment-289935776

无论如何,解决方案已复制如下。

在主机上(假设是 Windows),但是这个的一些变体可以在任何操作系统上运行:cd C:\Program Files\Oracle\VirtualBox

  1. 运行以下命令:VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1 将 VM_NAME 替换为您的虚拟机名称(如果您不知道,请在 VBox 中转到机器 > 设置 > 常规 > 基本 > 名称 --- 同时将 SHARE_NAME 替换为您的共享文件夹的名称,如果您不记得,请转到机器 > 设置 > 共享文件夹。

  2. 重启虚拟机和 VirtualBox,但以管理员身份运行。在 Windows 主机上,只需右键单击 VirtualBox 图标并选择以管理员身份运行。

PD:这在使用 NPM(不仅是 IONIC)并且在 VirtualBox 中安装了共享文件夹时也应该很有用。

答案2

注意,修复似乎有效,但有点令人困惑:您必须实际设置共享目录 GUEST 名称,又名前缀

sf_SharedWithUbuntu

以我的情况为例:

@DELL_TTM MINGW64 /d/Program 文件

./VBoxManage.exe setextradata "Ubuntu 16 LTS" VBoxInternal2/SharedFoldersEnableSymlinksCreate/sf_SharedWithUbuntu 1

并且不要忘记检查这个**VBoxManager程序是否静默失败;)

./VBoxManage.exe getextradata "Ubuntu 16 LTS" enumerate

返回

键:GUI/LastCloseAction,值:PowerOff 键:GUI/LastGuestSizeHint,值:1920,954 键:GUI/LastNormalWindowPosition,值:3840,27,1920,1053,max 键:GUI/RestrictedRuntimeDevicesMenuActions,值:HardDrives 键:GUI/RestrictedRuntimeMachineMenuActions,值:SaveState,PowerOff 键:GUI/ScaleFactor,值:1 键:GUI/StatusBar/IndicatorOrder,值:HardDisks,OpticalDisks,FloppyDisks,Network,USB,SharedFolders,Display,VideoCapture,Feat 键:VBoxInternal2/SharedFlodersEnableSymlinksCreate/SharedWithUbuntu,值:1 键:VBoxInternal2/SharedFoldersEnableSymlinksCreate/SharedWithUbuntu,值: 1 键:VBoxInternal2/SharedFoldersEnableSymlinksCreate/sf_SharedWithUbuntu,值:1

主机:Windows 7 Guest Ubuntu 16 LTS VirtualBoxManager:版本 5.1.30 r118389(Qt5.6.2)

相关内容