Возможно ли, чтобы шаг make-файла в хост-ОС выполнял команду оболочки внутри гостевой ОС, работающей на ВМ? - PullRequest
1 голос
/ 14 мая 2011

В настоящее время я занимаюсь разработкой приложений для часов InPulse (если вы гик, посетите сайт www.GetInPulse.com) и собираю часы на Mac. Но развертывание приложения на устройстве занимает несколько минут. Тем не менее, они предлагают симулятор, но он работает только под Linux, поэтому я установил Ubuntu на виртуальной машине, которая прекрасно работает.

Я надеюсь полностью остаться на стороне Mac, за исключением возможности выполнить шаг сборки или сценарий оболочки, который может «вызвать» виртуальную машину, и запустить там сценарий оболочки, который запускает симулятор. Таким образом, я могу просто добавить 'sim' в качестве шага в моем make-файле на стороне 'mac'.

В настоящее время я слишком много болтаю взад-вперед, и у меня везде открыты терминалы как на хосте, так и на гостевой ОС. Кажется, что попытка очистить это и межсервисный скриптинг сработают в теории. Просто не знаю, допустимы ли границы кросс-машин.

1 Ответ

1 голос
/ 14 мая 2011

ОС не знает, что такое «оболочка» внутри гостя.Оболочка является OS-зависимым понятием, и хотя хост-операционная система технически знает все, что происходит в гостевой системе, ее единственный контакт - наблюдение за гостевой памятью и инструкциями, которые она выполняет, в целом здесь неправильный уровень абстракции.

Наиболее естественным способом запуска команд оболочки из одной ОС в другую является использование удаленного средства оболочки по сетевому каналу;на практике это означает SSH .Вам нужна сетевая связь между двумя компьютерами, и как только она у вас есть, не имеет значения, что одна виртуальная машина работает внутри другой.Вероятно, между двумя компьютерами уже есть сетевое соединение;в противном случае убедитесь, что вы активировали мостовую сеть или сеть только на хосте или все, что предлагает технология VM.

Установите на хосте клиент SSH (возможно, он уже есть) и сервер SSH.на гостевой (openssh-server Установите openssh-сервер http://bit.ly/software-small). Затем настройте аутентификацию с открытым ключом между двумя компьютерами, чтобы вам не нужно было вводить парольвсе время.

Вы получите доступ к оболочке для гостя. Если вам нужно манипулировать приложениями с графическим интерфейсом, вам нужно работать немного больше. переменная ssh DISPLAY можетсправка, или, возможно, Как я могу запустить Firefox в Linux без головы (то есть, не требуя libgtk-x11-2.0.so.0)? .

...