在 Unix VM 上安装 .rpm 包 - root 无法查看该文件

在 Unix VM 上安装 .rpm 包 - root 无法查看该文件

我正在开发一个 AngularJS 应用程序,希望启动并运行 Protractor,以用于自动测试前端用户交互。

我的开发环境的设置方式是,我在本地 Windows 桌面上进行前端开发,并在 CentOS 7 VM 上运行 grunt 来为应用程序的前端提供服务。

我过去曾使用过一些 Unix 系统,但主要只是用于几年前我在大学学习的几个模块,所以没有太多使用它们的经验。

当我加入这家公司时,我开始使用他们已有的实践。日常中,我对 Unix VM 的使用很简单:

  1. 启动它
  2. 打开几个终端
  3. 成为 root ( su -)
  4. 运行Python( python3.4 -m myApp start)
  5. 从适当的位置运行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,但这样做遇到了一些麻烦......

我已按照以下步骤操作:

  1. 成为根用户
  2. 更改为您要安装的目录
  3. 安装软件包:`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。那应该有效。

两者都应该有效,但我会推荐第二个。

相关内容