Установка пакета .rpm на виртуальную машину Unix - root не может видеть файл

Я работаю над приложением AngularJS и хочу, чтобы Protractor работал с ним, чтобы использовать его для автоматического тестирования взаимодействия с пользователем.

Моя среда разработки настроена так, что я выполняю интерфейсную разработку на своем локальном рабочем столе Windows и запускаю grunt на виртуальной машине CentOS 7 для обслуживания внешнего интерфейса приложения.

Я немного использовал системы Unix в прошлом, но в основном только для пары модулей, которые я изучал в университете несколько лет назад, поэтому у меня нет такого большого опыта работы с ними.

Когда я пришел в эту компанию, я начал работать с практиками, которые у них уже были. Ежедневно я использую виртуальную машину Unix просто:

  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 не установлена ​​на виртуальной машине, и она должна быть установлена ​​для запуска команды webdriver-manager start ?

Я загрузил JRE для Linux x64 (файл .rpm) из Oracle и скопировал его на рабочий стол моей виртуальной машины. Теперь я следую инструкциям в Linux Java installation , чтобы установить Java на виртуальную машину, но у меня возникли небольшие проблемы с этим ...

Я выполнил следующие шаги:

  1. Стать пользователем root
  2. Перейдите в каталог, в который вы хотите установить
  3. Установите пакет: `rpm -ivh jre-8u144-linux-x64.rpm

, но когда я запускаю эту последнюю команду для установки пакета, консоль показывает сообщение об ошибке:

open of jre-8u144-linux-x64.Ошибка rpm: нет такого файла или каталога

Если я запускаю ls с терминала, где я вошел в систему как root , я не вижу ни одного файла на рабочем столе (это мое текущее местоположение), но если я запускаю ls с другого терминала, где я не вошел в систему как root , я могу увидеть все файлы на рабочем столе, включая файл jre-8u144-linux-x64.rpm, который я пытаюсь установить ...

Так почему же пользователь root не может видеть файл .rpm, который я хочу установить, даже если "нормальный" пользователь может ...? Я попытался установить JRE от «обычного» пользователя, выполнив команду в этом терминале, но, очевидно, получил ошибку о том, что у меня нет прав для этого:

ошибка: невозможно создать блокировку транзакции на / var / lib / rpm / .rpm.lock (Permission denied)

Как я могу установить JRE, которая мне нужна, чтобы использовать эту среду тестирования на моей виртуальной машине?

0
20.09.2017, 15:58
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. Это должно сработать.

Оба они должны работать, хотя я бы рекомендовал второй.

0
28.01.2020, 04:39

Теги

Похожие вопросы