我正在开发一个 AngularJS 应用程序,希望启动并运行 Protractor,以用于自动测试前端用户交互。
我的开发环境的设置方式是,我在本地 Windows 桌面上进行前端开发,并在 CentOS 7 VM 上运行 grunt 来为应用程序的前端提供服务。
我过去曾使用过一些 Unix 系统,但主要只是用于几年前我在大学学习的几个模块,所以没有太多使用它们的经验。
当我加入这家公司时,我开始使用他们已有的实践。日常中,我对 Unix VM 的使用很简单:
- 启动它
- 打开几个终端
- 成为 root (
su -
) - 运行Python(
python3.4 -m myApp start
) - 从适当的位置运行
grunt serve
,为前端服务
我正在关注以下教程:http://www.protractortest.org/#/tutorial尝试启动并运行 Protractor,将其用作我的开发环境中的测试框架,并且已完成设置的前几个步骤,没有任何问题:
npm install -g protractor
webdriver-manager update
当我尝试运行下一个命令:时webdriver-manager start
,我收到一条错误消息:
“java”不被识别为内部或外部命令、可操作程序或批处理文件。
[11:24:04] I/start - Selenium Standalone 已退出,代码为 1
我认为这意味着虚拟机上未安装 Java,并且需要安装 Java 才能运行该命令webdriver-manager start
?
我从以下位置下载了适用于 linux x64 的 JRE(.rpm 文件)甲骨文,并将其复制到我的虚拟机桌面。我现在正在按照以下网址的说明进行操作Linux Java 安装在虚拟机上安装 Java,但这样做遇到了一些麻烦......
我已按照以下步骤操作:
- 成为根用户
- 更改为您要安装的目录
- 安装软件包:`rpm -ivh jre-8u144-linux-x64.rpm
但是当我运行最后一个命令来安装软件包时,控制台显示一条错误:
打开 jre-8u144-linux-x64.rpm 失败:没有这样的文件或目录
如果我ls
从登录身份的终端运行root
,我看不到桌面上的任何文件(这是我当前的位置),但如果我ls
从未登录身份的另一个终端运行root
,我可以看到桌面上的所有文件,包括我正在尝试安装的 jre-8u144-linux-x64.rpm 文件...
那么为什么用户root
看不到我想要安装的 .rpm 文件,即使“普通”用户可以......?我尝试通过在该终端中运行命令来从“普通”用户安装 JRE,但显然收到一条错误,指出我没有执行此操作的权限:
错误:无法在 /var/lib/rpm/.rpm.lock 上创建事务锁(权限被拒绝)
如何安装所需的 JRE,以便在我的 VM 上使用此测试框架?
答案1
正如我在第一段中看到的那样,要成为 root,您需要键入它,su -
当您更改用户时,它会重新初始化您的环境。因此,当成为 root 时,您会更改PWD
环境变量,从而更改您所在的当前目录,它会变为 /root。
有两种方法可以解决您的问题
第一个:
使用su
而不是su -
,您将与普通用户位于同一目录中。所以成为 root 后你就可以输入rpm -ivh jre-8u144-linux-x64.rpm
第二个:
当您与普通用户位于正确的目录中时,您可以在pwd
某处键入并记下该路径。应该类似于 /home/user/something 然后你输入su -
然后执行rpm -ivh /home/user/something/jre-8u144-linux-x64.rpm
。那应该有效。
两者都应该有效,但我会推荐第二个。