Запустить приложение в Windows с рабочего стола Ubuntu

Решение было дано в этой теме форума. Конкретный ответ похоронен где-то в этом потоке. Но я предоставлю здесь шаги. Тем не менее, эта тема форума будет поддерживать вас в обновленном состоянии, когда все будет развиваться. Эти шаги позволяют использовать диалоги KDE с Firefox в Kubuntu 12.04 (другие дистрибутивы KDE также поддерживаются - см. Тему форума).

Мое решение (приведенное ниже) - это комплексное решение. Если количество деталей здесь смущает вас, см. Тему форума или задавайте вопросы здесь.

Сначала вам нужно добавить PPA к Kubuntu. Я знаю два подходящих PPA. blue-shell является основным, но alexey-ivanov также доступен. Пожалуйста, ознакомьтесь с темой форума (или выполните поиск), чтобы узнать, являются ли упомянутые здесь PPA все еще лучшими. (ОБНОВЛЕНИЕ: приведенные ниже ответы говорят о том, что PPA alexey-ivanov может быть уже недействительным.) Я ожидаю, что blue-shell останется хорошим выбором, потому что они являются значительным игроком KDE.

Предостережение: пока существует является пакетом Firefox в PPA, он должен иметь приоритет над другими версиями (не KDE) от Ubuntu (по умолчанию). Но если в PPA нет пакета, будет установлен обычный (не KDE) Firefox. Это обычно делает пользователей KDE недовольными.

Существует несколько простых решений для этого незначительного раздражения. (Вы даже можете игнорировать возможность, упомянутую в моем предостережении, и использовать более простой подход, но я предлагаю комплексное решение в этом ответе. Я также обсужу пару других вариантов в теме форума, упомянутой выше.)

Мое рекомендуемое решение - добавить оба упомянутых выше PPA. (Добавление двух почти так же просто, как добавление одного.) Если есть проблема с одним PPA, Firefox с поддержкой KDE можно вытащить из другого PPA. Решение не является совершенным, но оно разумно. (Опять же, см. Раздел для подробного обсуждения.)

Вот URL-адрес, относящийся к каждому PPA вместе с кодом, который может быть выполнен в терминале для добавления PPA.

http: //www.bluemintlinux.com/2012/08/kubuntu-gets-kde-support-in-firefox.html: sudo apt-add-repository ppa: blue-shell / firefox-kde https://launchpad.net/~ alexey-ivanov / + archive / firefox-kde: sudo apt-add-repository ppa: alexey-ivanov / firefox-kde

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

Теперь задайте приоритет установки каждого PPA следующим образом:

sudo nano /etc/apt/preferences.d/blue-shell-firefox-kde-pin-1001

Теперь вы установите для каждого PPA следующие инструкции только для одного из PPA.

Этот файл должен содержать этот текст:

Package: *
Pin: release o=LP-PPA-blue-shell-firefox-kde
Pin-Priority: 1001

Сделайте то же самое для другого PPA, если вы добавили оба:

sudo nano /etc/apt/preferences.d/alexey-ivanov-firefox-kde-pin-1000

Вот текст, который входит во второй файл: [ ! d22]

Package: *
Pin: release o=LP-PPA-alexey-ivanov-firefox-kde
Pin-Priority: 1000

Обратите внимание, что значения Pin-Priority не совпадают. Я отдал приоритет синей оболочке. (Если вы установите только один PPA, просто используйте для него значение 1000.)

Теперь выполните этот код в терминале:

sudo apt-get update

На этом этапе вы можете установить или обновить Firefox (используя apt-get install). Но я хочу показать еще один шаг, который я включил. Перед запуском apt-get install я выполняю эту команду:

apt-cache policy firefox

Выход будет похож на этот (с разными номерами версий, конечно):

Installed: 16.0.2+build1-0ubuntu0.12.04.1+ppa1
Candidate: 17.0+build2-0ubuntu0.12.04.2~ppa2
Version table:
 17.0.1+build1-0ubuntu0.12.04.1 0
   500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
   500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
 17.0+build2-0ubuntu0.12.04.2~ppa2 0
   1001 http://ppa.launchpad.net/blue-shell/firefox-kde/ubuntu/ precise/main amd64 Packages
 *** 16.0.2+build1-0ubuntu0.12.04.1+ppa1 0
 11.0+build1-0ubuntu4 0
   500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

Три звездочки выше указывают на тот, который установлен. «Кандидат» показывает вам, какой из них будет установлен, если вы запустите apt-get install. Оглядываясь на это быстро, вы сможете избежать любых неожиданностей (например, потерять версию Firefox с поддержкой KDE, если PPA не работает).

Сводка (tl; dr)

Первая вы делаете это, используйте все эти шаги:

http://www.bluemintlinux.com/2012/08/kubuntu-gets-kde-support-in-firefox.html: sudo apt -add-repository ppa: blue-shell / firefox-kde редактировать файл /etc/apt/preferences.d/XXXX для каждого PPA (установить приоритет) https://launchpad.net/~alexey -ivanov / + archive / firefox-kde: sudo apt-add-repository ppa: alexey-ivanov / firefox-kde политика apt-cache firefox sudo apt-get install firefox firefox-kde-support

Для последующих обновлений вручную, если вы не используете автоматические обновления, сделайте следующее:

отредактируйте файл /etc/apt/preferences.d/XXXX для каждого PPA (заданный приоритет) [ ! d34] (необязательно) политика apt-cache firefox политика apt-cache firefox
1
задан 29 July 2012 в 05:30

3 ответа

Это скорее намек, чем ответ, но он слишком большой для комментария.

Вероятно, вам стоит посмотреть на это. В соответствии с документацией эта команда запускается из ОС хоста (я предполагаю, что хост Ubuntu и гостевой Windows):

VBoxManage guestcontrol "Windows XP Pro" execute --image "cmd.exe" --username javier --verbose "/c" "regedit.exe"

Должен открыть regedit в Windows (гость), но я никогда не был способный заставить его работать.

Вы также можете использовать

VBoxManage showvminfo "Windows XP Pro" | grep State

, чтобы проверить, работает ли виртуальная машина или нет.

3
ответ дан 25 May 2018 в 09:53
  • 1
    Интересные идеи, и я думаю, что это можно использовать как еще один способ выполнить задачу. Гость может быть запущен с хоста, а затем, когда он будет запущен, возможно, команда может работать, чтобы выполнить команду. Для программиста это может быть проще, чем моя идея; он включает использование «сна» в цикле, чтобы дождаться появления виртуальной машины, но все это можно сделать с хоста с помощью одного скрипта. – Marty Fried 21 June 2012 в 21:30
  • 2
    Я просто попробовал вашу первую команду выполнения и смог запустить Quicken с первой попытки с уже запущенной виртуальной машины Windows XP под названием «Windows XP». используя эту команду из командной строки терминала Ubuntu: VBoxManage guestcontrol Windows\ XP exec --image c:\\program\ files\\quicken\\qw.exe --username XXXXX --password XXXXX, где XXXXX было моим именем пользователя и паролем. – Marty Fried 21 June 2012 в 21:50
  • 3
    Возможно, моя проблема в том, что я использую учетную запись с меньшим паролем. – Javier Rivera 21 June 2012 в 22:14
  • 4
    Возможно ... Я только что изменил команду, которую я использовал, чтобы использовать ваш формат, и он действительно запускал regedit. – Marty Fried 21 June 2012 в 22:28
  • 5
    Takkat сказал, что он не работает в беспилотных счетах, подобных моим. Это объясняет, почему я так и не смог это сделать;). – Javier Rivera 21 June 2012 в 22:30

Я удалил оригинальную идею, когда понял, что она не будет работать, потому что Linux не сможет получить доступ к разделу Windows в VM, если он еще не запущен. Может быть более сложный способ сделать это, но я не знаю, действительно ли это того стоит.

Возможно, будет иметь общий общий каталог, а скрипт в Windows всегда будет проверять это , чтобы узнать, пуст он или нет. Если нет, он запускает скрипты в каталоге, который будет помещен в систему Ubuntu перед запуском виртуальной машины.

У вас может быть 2-й скрипт, который удаляет 1-й, поэтому он не запускается в следующий раз.

2
ответ дан 25 May 2018 в 09:53
  • 1
    Я хотел бы создать ярлык для Visual Studio и ярлык для Internet Explorer, который можно вызвать с рабочего стола Ubuntu (чтобы они запускались на виртуальной машине). Можно ли это сделать с помощью метода, который вы описали? – Anderson Green 21 June 2012 в 05:24
  • 2
    Я хотел бы знать, можно ли сделать обратное - запуск приложения-хозяина (например, Kolourpaint) из гостевой операционной системы. – Anderson Green 21 June 2012 в 05:28
  • 3
    Может ли сделать обратный с помощью гостевых дополнений? – Anderson Green 21 June 2012 в 05:35
  • 4
    Кроме того, вы имеете в виду папку автозагрузки Windows или список приложений запуска Ubuntu? – Anderson Green 21 June 2012 в 05:36
  • 5
    Извините, я понял, что моя первая идея была ошибочной, потому что папка Windows не существует до тех пор, пока виртуальная машина не будет запущена. Я полностью пересмотрел свой ответ, и я надеюсь, что это не слишком запутывает. – Marty Fried 21 June 2012 в 05:42

Я хотел получить то же самое и в итоге решил его без использования гостевого управления. На моем узле MacOS X у меня есть папка (с именем Windows), которую мой клиент Vbox, работающий с Win7, отображен как Z :. Я использую фиктивные файлы для связи между хостом и моими клиентами следующим образом:

На хосте Mac: - создан один shell-скрипт с иконкой для каждого приложения Windows, которое я хотел запустить в Win-client , То, что они в основном делают, это убедиться, что VirtualBox ранее не запускался, а затем создает файл «запустите этот конкретный приложение» в общей папке, которую Windows может читать после запуска. Пример того, как выглядит такой скрипт, следующий:

#!/bin/bash

# bail if vbox is already started/running windoze...
ps ax | grep -v grep | grep 'Windows 7' > /dev/null
if [ $? -eq 0 ]; then
  echo "Sorry, Windows is already running."
  exit 0
fi

# send a message to Windoze which program to start...
touch /Users/urban/Documents/Windows/START_TS2000I.TXT

# startup Windoze in seamless mode
vboxmanage setextradata 'Windows 7' GUI/Seamless on
vboxmanage startvm 'Windows 7' &

exit 0

Тогда у клиента Windows у меня есть соответствующий скрипт (BAT-файл) в папке Startup, который выглядит так:

@echo off
pushd "C:\Program Files\Omega Research\Program"
if exist Z:\start_ts2000i.txt start ORTrade.exe
if exist Z:\start_ts2000i.txt del Z:\start_ts2000i.txt
.
.
.
exit 0

Таким образом, в любое время, когда я хочу добавить новый значок запуска клиента на своем Mac, я скопирую сценарий оболочки, придумаю новый файл фиктивного файла и добавлю соответствующие строки запуска в BAT-скрипт на клиенте. Отлично работает, и я думаю, что он соответствует идее Мартиса в предыдущем посте.

1
ответ дан 25 May 2018 в 09:53
  • 1
    Вы тестировали это на хосте Ubuntu? – user68186 4 November 2014 в 23:12
  • 2
    Нет, но я уверен, что это будет работать без сбоев. Команды vbox те же, что и bash. – Urban 4 November 2014 в 23:16
  • 3
    Безопаснее использовать pgrep вместо ps | grep. Последний рискует совладать. – muru 4 November 2014 в 23:33
  • 4
    Да, ты прав. Я считаю, что исправил его выше, используя ps, добавив дополнительный grep -v, чтобы отфильтровать проблему самосогласования. Я не мог понять, как использовать pgrep, как вы предложили в этом случае, так как имя VBox «Windows 7» в моем случае является аргументом комментария к процессу, например: MacMini:~ urban$ ps ax | grep -v grep | grep 'Windows 7' 10874 ?? R 4:38.49 /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/VirtualBoxVM --comment Windows 7 --startvm 24507412-789d-42ed-9c79-b4faf0c2d130 --no-startvm-errormsgbox, но, возможно, у вас есть предложение об этом? – Urban 5 November 2014 в 00:31

Другие вопросы по тегам:

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