Virtualbox python 2 x support что это
virtualbox.org
End user forums for VirtualBox
Python 3 support
Python 3 support
by AndreasH » 14. Jul 2017, 11:48
can somebody tell me about the status of Python3 support for the XPCOM bindings?
The SDK installer installs a vboxapi module in /usr/lib/python3.5/dist-packages, but it doesn’t work. Apparently there is no compatible VBoxPython:
Code: Select all Expand viewCollapse view Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type «help», «copyright», «credits» or «license» for more information.
>>> import vboxapi
>>> vm = vboxapi.VirtualBoxManager()
m=VBoxPython3_5m x=No module named ‘VBoxPython3_5m’
m=VBoxPython3m x=No module named ‘VBoxPython3m’
m=VBoxPython x=/opt/VirtualBox/VBoxPython.so: undefined symbol: _Py_ZeroStruct
Traceback (most recent call last):
File » «, line 1, in
File «/usr/local/lib/python3.5/dist-packages/vboxapi/__init__.py», line 970, in __init__
self.platform = PlatformXPCOM(dPlatformParams)
File «/usr/local/lib/python3.5/dist-packages/vboxapi/__init__.py», line 730, in __init__
import xpcom.vboxxpcom
File «/opt/VirtualBox/sdk/bindings/xpcom/python/xpcom/vboxxpcom.py», line 78, in
raise Exception(‘Cannot find VBoxPython module (tried: %s)’ % (‘, ‘.join(_asVBoxPythons),))
Exception: Cannot find VBoxPython module (tried: VBoxPython3_5m, VBoxPython3m, VBoxPython)
I am using Debian 9 with the packaged Python 3.5. I tried both with the pre-built VirtualBox package for Debian 9 as well as the «manual» installer.
Re: Python 3 support
by noteirak » 14. Jul 2017, 19:22
Re: Python 3 support
by klaus » 14. Jul 2017, 19:50
Re: Python 3 support
by klaus » 17. Jul 2017, 17:02
So far this is still unresolved. Really annoying when packaging is getting in the way of actually shipping functionality which would be long there.
Re: Python 3 support
by klaus » 17. Jul 2017, 17:29
Re: Python 3 support
by AndreasH » 17. Jul 2017, 21:15
So far this is still unresolved. Really annoying when packaging is getting in the way of actually shipping functionality which would be long there.
First of all, thanks for taking the time to try and resolve this issue.
I am developing for Debian and understand the packaging system quite well. Actually, I see nothing wrong in that behaviour, at least it fits with the rest of the Debian system. What would be necessary is to split up the whole thing into multiple packages, one main virtualbox package without any python library and a «Recommends: virtualbox-python-support | virtualbox-python3-support», and two separate packages with python 2 and 3 libraries respectively.
If I could get my hands at something like a debianized source package, I might be able to help with this.
I already tried that, indeed it doesn’t have any working Python 3 support.
Re: Python 3 support
by klaus » 17. Jul 2017, 21:57
However, we’re seriously allergic against package splitting. so far we resisted all good advice to split it in any way. Others (e.g. the official debian package) can do what they like, but for us every additional file is adding effort.
Re: Python 3 support
by AndreasH » 18. Jul 2017, 15:10
From what I read so far, it should be possible to change the behaviour of automatic dependencies by adding ‘—exclude=VBoxPython’ to dh_makeshlibs and dh_shlibdeps in debian/rules.
Virtualbox python 2 x support что это
For the various versions of Linux that are supported as host operating systems, see Section 1.4, “Supported Host Operating Systems”.
You may need to install the following packages on your Linux system before starting the installation. Some systems will do this for you automatically when you install Oracle VM VirtualBox.
Qt 5.3.2 or later. Qt 5.6.2 or later is recommended.
SDL 1.2.7 or later. This graphics library is typically called libsdl or similar.
2.3.2. The Oracle VM VirtualBox Kernel Modules
In order to run other operating systems in virtual machines alongside your main operating system, Oracle VM VirtualBox needs to integrate very tightly with your system. To do this it installs a driver module called vboxdrv into the system kernel. The kernel is the part of the operating system which controls your processor and physical hardware. Without this kernel module, you can still use the VirtualBox Manager to configure virtual machines, but they will not start.
Network drivers called vboxnetflt and vboxnetadp are also installed. They enable virtual machines to make more use of your computer’s network capabilities and are needed for any virtual machine networking beyond the basic NAT mode.
Since distributing driver modules separately from the kernel is not something which Linux supports well, the Oracle VM VirtualBox install process creates the modules on the system where they will be used. This means that you may need to install some software packages from the distribution which are needed for the build process. Required packages may include the following:
Kernel header files
Also ensure that all system updates have been installed and that your system is running the most up-to-date kernel for the distribution.
The running kernel and the kernel header files must be updated to matching versions.
On some SUSE and openSUSE Linux versions, you may need to install the kernel-source and kernel-syms packages.
If you suspect that something has gone wrong with module installation, check that your system is set up as described above and try running the following command, as root:
2.3.2.1. Kernel Modules and UEFI Secure Boot
If you are running on a system using UEFI (Unified Extensible Firmware Interface) Secure Boot, you may need to sign the following kernel modules before you can load them:
See your system documentation for details of the kernel module signing process.
2.3.3. Performing the Installation
Oracle VM VirtualBox is available in a number of package formats native to various common Linux distributions. See Section 1.4, “Supported Host Operating Systems”. In addition, there is an alternative generic installer (.run) which you can use on supported Linux distributions.
2.3.3.1. Installing Oracle VM VirtualBox from a Debian or Ubuntu Package
Download the appropriate package for your distribution. The following example assumes that you are installing to a 64-bit Ubuntu Xenial system. Use dpkg to install the Debian package,as follows:
The installer will also try to build kernel modules suitable for the current running kernel. If the build process is not successful you will be shown a warning and the package will be left unconfigured. Look at /var/log/vbox-install.log to find out why the compilation failed. You may have to install the appropriate Linux kernel headers, see Section 2.3.2, “The Oracle VM VirtualBox Kernel Modules”. After correcting any problems, run the following command:
This will start a second attempt to build the module.
If a suitable kernel module was found in the package or the module was successfully built, the installation script will attempt to load that module. If this fails, please see Section 12.7.1, “Linux Kernel Module Refuses to Load” for further information.
Once Oracle VM VirtualBox has been successfully installed and configured, you can start it by clicking VirtualBox in your Start menu or from the command line. See Section 2.3.5, “Starting Oracle VM VirtualBox on Linux”.
2.3.3.2. Using the Alternative Generic Installer (VirtualBox.run)
The alternative generic installer performs the following steps:
The installer must be executed as root with either install or uninstall as the first parameter. For example:
Or if you do not have the sudo command available, run the following as root instead:
2.3.3.3. Performing a Manual Installation
If you cannot use the shell script installer described in Section 2.3.3.2, “Using the Alternative Generic Installer (VirtualBox.run)”, you can perform a manual installation. Run the installer as follows:
This will unpack all the files needed for installation in the directory install under the current directory. The Oracle VM VirtualBox application files are contained in VirtualBox.tar.bz2 which you can unpack to any directory on your system. For example:
To run the same example as root, use the following commands:
The sources for Oracle VM VirtualBox’s kernel module are provided in the src directory. To build the module, change to the directory and use the following command:
If everything builds correctly, run the following command to install the module to the appropriate module directory:
In case you do not have sudo, switch the user account to root and run the following command:
On certain Linux distributions, you might experience difficulties building the module. You will have to analyze the error messages from the build system to diagnose the cause of the problems. In general, make sure that the correct Linux kernel sources are used for the build process.
Note that the /dev/vboxdrv kernel module device node must be owned by root:root and must be read/writable only for the user.
Next, you install the system initialization script for the kernel module and activate the initialization script using the right method for your distribution, as follows:
This example assumes you installed Oracle VM VirtualBox to the /opt/VirtualBox directory.
Create a configuration file for Oracle VM VirtualBox, as follows:
Create the following symbolic links:
2.3.3.4. Updating and Uninstalling Oracle VM VirtualBox
Before updating or uninstalling Oracle VM VirtualBox, you must terminate any virtual machines which are currently running and exit the Oracle VM VirtualBox or VBoxSVC applications. To update Oracle VM VirtualBox, simply run the installer of the updated version. To uninstall Oracle VM VirtualBox, run the installer as follows:
As root, you can use the following command:
To manually uninstall Oracle VM VirtualBox, perform the manual installation steps in reverse order.
2.3.3.5. Automatic Installation of Debian Packages
The Debian packages will request some user feedback when installed for the first time. The debconf system is used to perform this task. To prevent any user interaction during installation, default values can be defined. A file vboxconf can contain the following debconf settings:
The first line enables compilation of the vboxdrv kernel module if no module was found for the current kernel. The second line enables the package to delete any old vboxdrv kernel modules compiled by previous installations.
These default settings can be applied prior to the installation of the Oracle VM VirtualBox Debian package, as follows:
In addition there are some common configuration options that can be set prior to the installation. See Section 2.3.3.7, “Automatic Installation Options”.
2.3.3.6. Automatic Installation of RPM Packages
The RPM format does not provide a configuration system comparable to the debconf system. See Section 2.3.3.7, “Automatic Installation Options” for how to set some common installation options provided by Oracle VM VirtualBox.
2.3.3.7. Automatic Installation Options
The creation of the group vboxusers can be prevented as follows:
If the following line is specified, the package installer will not try to build the vboxdrv kernel module if no module fitting the current kernel was found.
2.3.4. The vboxusers Group
The Linux installers create the system user group vboxusers during installation. Any system user who is going to use USB devices from Oracle VM VirtualBox guests must be a member of that group. A user can be made a member of the group vboxusers either by using the desktop user and group tools, or with the following command:
2.3.5. Starting Oracle VM VirtualBox on Linux
2.4. Installing on Oracle Solaris Hosts
For the specific versions of Oracle Solaris that are supported as host operating systems, see Section 1.4, “Supported Host Operating Systems”.
If you have a previously installed instance of Oracle VM VirtualBox on your Oracle Solaris host, please uninstall it first before installing a new instance. See Section 2.4.4, “Uninstallation” for uninstall instructions.
2.4.1. Performing the Installation
To start installation, run the following commands:
The Oracle VM VirtualBox kernel package is integrated into the main package. Install the Oracle VM VirtualBox package as follows:
The installer will then prompt you to enter the package you wish to install. Choose 1 or all and proceed. Next the installer will ask you if you want to allow the postinstall script to be executed. Choose y and proceed, as it is essential to execute this script which installs the Oracle VM VirtualBox kernel module. Following this confirmation the installer will install Oracle VM VirtualBox and execute the postinstall setup script.
If you need to use Oracle VM VirtualBox from non-global zones, see Section 2.4.6, “Configuring a Zone for Running Oracle VM VirtualBox”.
2.4.2. The vboxuser Group
The installer creates the system user group vboxuser during installation for Oracle Solaris hosts that support the USB features required by Oracle VM VirtualBox. Any system user who is going to use USB devices from Oracle VM VirtualBox guests must be a member of this group. A user can be made a member of this group either by using the desktop user and group tools or by running the following command as root:
Note that adding an active user to the vboxuser group will require the user to log out and then log in again. This should be done manually after successful installation of the package.
2.4.3. Starting Oracle VM VirtualBox on Oracle Solaris
You can configure some elements of the VirtualBox Qt GUI, such as fonts and colours, by running VBoxQtconfig from the terminal.
2.4.4. Uninstallation
Uninstallation of Oracle VM VirtualBox on Oracle Solaris requires root permissions. To perform the uninstallation, start a root terminal session and run the following command:
After confirmation, this will remove Oracle VM VirtualBox from your system.
2.4.5. Unattended Installation
Extract the tar.gz package as described in Section 2.4.1, “Performing the Installation”. Then open a root terminal session and run the following command:
To perform a non-interactive uninstallation, open a root terminal session and run the following command:
2.4.6. Configuring a Zone for Running Oracle VM VirtualBox
Assuming that Oracle VM VirtualBox has already been installed into your zone, you need to give the zone access to Oracle VM VirtualBox’s device node. This is done by performing the following steps. Start a root terminal and run the following command:
Replace vboxzone with the name of the zone where you intend to run Oracle VM VirtualBox.
Use zonecfg to add the device resource and match properties to the zone, as follows:
If you are not using sparse root zones, you will need to loopback mount /opt/VirtualBox from the global zone into the non-global zone at the same path. This is specified below using the dir attribute and the special attribute. For example:
Reboot the zone using zoneadm and you should be able to run Oracle VM VirtualBox from within the configured zone.
Собираем VirtualBox под Windows
Введение
Как известно большинству пользователей Windows-версии VirtualBox (далее — VB, не путать с Visual Basic), в релизе 4.3.14 разработчики этой программы добавили дополнительный механизм защиты, называемый «hardening» (что можно перевести как «упрочнение»), который привёл к многочисленным проблемам совместимости VB с антивирусами, драйверами крипто-модулей и даже отдельными обновлениями самой Windows, в результате чего виртуальные машины попросту отказываются запускаться. В лучшем случае пользователю приходится ждать около месяца, пока проблемная программа, о которой он сообщит разработчикам, окажется учтена в следующем релизе VB. В худшем случае придётся либо удалять конфликтующую программу (или системное обновление), либо откатывать VB до версии 4.3.12 — последней, в которой не было этой защиты. Многочисленные предложения к разработчикам о добавлении пользовательского списка исключений или опции, отключающей защиту целиком, остаются без внимания. Единственный внятный ответ с их стороны звучит так: «не хотите защиту — компилируйте из исходников сами». Что ж, придётся этим заняться.
Несмотря на то, что процедура сборки описана на официальной вики, она неполна и кое в чём устарела, а сама сборка так и норовит выдать странные ошибки. Поэтому когда я всё-таки пробился до конца сей процедуры, я решил, что её описание заслуживает отдельной статьи. Инструкция время от времени обновляется и на текущий момент адаптирована для VB версии 6.1.18, но если кого-то заинтересует сборка более ранних версий VB или библиотек, информацию можно выцарапать из истории правок.
Содержание
Постановка задачи
Изначально я планировал упростить себе задачу и обойтись минимальной пересборкой, чтобы устанавливать официальный дистрибутив и просто подменять в нём бинарные файлы. Однако оказалось, что такой подход не сработает, поскольку не учитывает использование системных механизмов установки и регистрации драйверов и COM-компонентов. Можно было бы попытаться разобраться в деталях и написать автоматизирующий скрипт, но я решил замахнуться на более крупную дичь: самостоятельно собрать полноценный дистрибутив, максимально близкий к официальному и отличающийся от него только отсутствием hardening’а.
Сразу скажу, что на 100% задачу решить не удалось. Слабым звеном оказались гостевые дополнения, которые в официальном пакете собраны под Windows (32- и 64-битную), OS/2, Linux и некоторые другие *NIX-системы. В комментариях соответствующего Makefile указано, что сборка осуществляется удалённо на разных машинах, а настраивать такой комплект виртуалок мне не улыбалось. В итоге я решил собирать из исходных кодов всё, кроме дополнений, ISO-образ которых буду просто скачивать с сервера Oracle. Я пока не исследовал вопрос наличия hardening’а в дополнениях, но даже если он там есть, сообщений о вызванных им проблемах мне до сих пор не попадалось.
Пара предупреждений
• Проблемы безопасности
Про hardening известно, что добавили его не просто так, а для закрытия некой уязвимости VB. Подробно рассказать о сути уязвимости Oracle категорически отказывается, несмотря на то, что в официальных дистрибутивах проблема исправлена много лет назад. В общих чертах речь идёт о том, что системный механизм внедрения библиотек в чужие процессы в случае VB может приводить к неавторизованному повышению привилегий на хостовой машине, и что для этой уязвимости VB есть реально использующиеся эксплойты. Если это вас не пугает, можете продолжать чтение, но я вас предупредил.
• Подписывание драйверов
Как известно, начиная с Vista, 64-битная Windows в обычном режиме запрещает загрузку драйверов, не подписанных сертификатом с цепочкой доверия, ведущей до корневого сертификата Microsoft (а в Windows 10 при загрузке с включённым Secure Boot драйверы и вовсе должны быть подписаны непосредственно самой Microsoft). Поэтому прежде чем компилировать VB даже для личного использования, необходимо продумать решение этой проблемы: либо купить сертификат, либо попробовать найти сервисы, предоставляющие услугу подписывания драйверов для разработчиков open source (если они, конечно, согласятся подписать заведомо уязвимый драйвер), либо перевести свою Windows в тестовый режим и использовать самоподписанный тестовый сертификат.
Далее я буду ориентироваться на этот последний вариант, но в нужных местах укажу, как поменяется процедура при наличии полноценного сертификата.
• Прекращение поддержки 32-битных хостовых систем
Начиная с версии 6.0 в VirtualBox была официально прекращена поддержка 32-битных хостов (к гостевым системам это не относится), однако сама возможность работы в этих системах ещё оставалась. В версии 6.1 сделан следующий шаг, и 32-битная версия пакета окончательно удалена из инсталлятора (за исключением библиотеки программного интерфейса). Я в своей сборке применил аналогичные модификации, а из статьи удалил все ставшие неактуальными инструкции. Если вам нужна поддержка таких систем, вы можете попробовать самостоятельно собрать 32-битный вариант, воспользовавшись предыдущими версиями статьи из репозитория. Но нужно понимать, что чем дальше, тем больше проблем будет возникать, и не все из них можно будет решить самостоятельно. Разумным выходом будет либо оставаться на предыдущих версиях VirtualBox, либо перейти на 64-битную систему.
Готовим окружение
Официально в качестве сборочной системы рекомендуется Windows версии 8.1 или 10. Моя сборочная система построена на базе Windows 7 SP1 x64 ещё с тех времён, когда это была рекомендуемая версия, и проблем пока что не возникало. Если вы выделяете для сборки отдельную машину (реальную или виртуальную), имейте в виду, что ей необходим доступ в Интернет.
Для создания сборочного окружения потребуется немаленький набор программ. Если для программы присутствует портабельная версия, я использую её, а не инсталлятор.
Если вы не планируете собирать такой же пакет, как я, то некоторые из перечисленных инструментов могут вам не потребоваться. Здесь я вкратце перечислю, какую роль они выполняют.
Программа | Версия | Путь установки |
---|---|---|
Visual Studio | 2010 Professional | C:\Program Files (x86)\Microsoft Visual Studio 10.0\ |
SDK | 7.1 | C:\Program Files\Microsoft SDKs\Windows\v7.1\ |
SDK | 8.1 | C:\Programs\DevKits\8.1\ |
WDK | 7.1.0 | C:\WinDDK\7600.16385.1\ |
ActivePerl | 5.26.1 Build 2601 x64 | C:\Programs\Perl\ |
ActivePython | 2.7.14.2717 x64 | C:\Programs\Python\ |
WiX | 3.11.1.2318 | C:\Programs\WiX\ |
Qt | 5.6.3 | C:\Programs\Qt\5.6.3-x64\ |
MinGW-64 | 4.5.4 | C:\Programs\mingw64\ |
Cygwin | — | C:\Programs\cygwin64\ |
SDL | 1.2.15 | C:\Programs\SDL\x64\ |
cURL | 7.74.0 | C:\Programs\curl\ |
OpenSSL | 1.1.1i | C:\Programs\OpenSSL\ |
gSOAP | 2.8.110 | C:\Programs\gSOAP\ |
libvpx | 1.7.0 | C:\Programs\libvpx\ |
libopus | 1.3.1 | C:\Programs\libopus\ |
MiKTeX Portable | 2.9.6942 | C:\Programs\MiKTeX\ |
NASM | 2.14.02 x64 | C:\Programs\nasm\ |
DocBook XML DTD | 4.5 | C:\Programs\DocBook\xml\ |
DocBook XSL Stylesheets | 1.69.1 | C:\Programs\DocBook\xsl\ |
Особенности установки программ
В этом разделе я привожу указания или инструкции для отдельных пакетов, где процедура неочевидна или требует дополнительных шагов.
• Windows SDK v7.1
При установке могут возникнуть проблемы из-за устаревших версий компиляторов и рантайма: они не могут установиться поверх более новых версий, установленных с VS 2010, и инсталлятор считает это критической ошибкой. Необходимо либо отключить соответствующие галочки, либо предварительно удалить из системы пакеты с именами вида «Microsoft Visual C++ 2010 Redistributable», «Microsoft Visual C++ 2010 Runtime», «Microsoft Visual C++ Compilers…» (SDK установит старые версии пакетов, а Windows Update потом обновит их до актуальных).
• Windows SDK v8.1
Достаточно установить только средства разработки (Windows Software Development Kit).
• WDK v7.1
Достаточно установить только сборочные окружения (Build Environments).
• Qt 5.6.3
Начиная с версии Qt 5.7.0 прекращена поддержка сборки в MSVC версий ниже 2012, поэтому используем 5.6.x.
Для Visual Studio 2010 официальные сборки отсутствуют, поэтому необходимо сначала собрать библиотеку из исходных кодов.
• MinGW
Архив просто распаковывается в выбранный каталог установки.
• Cygwin
• OpenSSL
• libvpx
• libopus
• gSOAP
• MiKTeX
• DocBook
Для распаковки архива XML DTD нужно создать отдельный каталог и поместить туда все файлы. Архив с XSL Stylesheets уже содержит нужный подкаталог, поэтому достаточно его просто распаковать и переименовать полученный подкаталог.
Последние штрихи
• Добавление сертификатов
Если у вас нет полноценного сертификата, то рекомендуется создать хотя бы персональный (с ним проще загружать драйверы, чем совсем без подписи). Для этого нужно открыть консоль с повышенными привилегиями и выполнить в ней следующие команды, которые создадут и добавят в личное хранилище два сертификата (SHA-1 и SHA-256):Имя для сертификатов («Roga and Kopyta Ltd») и путь к файлам можно выбирать по своему усмотрению. Также нам потребуются цифровые отпечатки сгенерированных сертификатов. Откройте консоль управления сертификатами (запустите certmgr.msc ), откройте там список персональных сертификатов. Дважды щёлкните на первом из сертификатов «Roga and Kopyta Ltd», в открывшемся диалоге перейдите на вкладку Состав. В поле «Алгоритм подписи» будет указано sha256RSA или sha1RSA. Далее, в самом конце списка будет поле «Отпечаток» со значением в виде последовательности шестнадцатеричных чисел. Скопируйте это значение куда-нибудь. То же самое повторите для второго из сертификатов. Не забудьте отметить, какой из них был SHA-256, а какой — SHA-1.
• Сборка xmllint
• Различные правки VB
• Файл конфигурации сборки VB
Собираем VirtualBox
Для удобства я написал батник, выполняющий все эти шаги автоматически. Если вам регулярно нужно пересобирать пакет, удобнее пользоваться им.
Послесловие
Размер статьи оказался неожиданностью для меня самого. Когда я начинал её писать, то намеревался подробно рассказывать, почему на каждом этапе было выбрано то или иное решение, какие конкретно ошибки выскакивают, если не применить очередную правку, и какие могут быть альтернативные подходы к решению этих ошибок. Но постепенно понял, что если бы я всё это описывал, статья получилась бы и вовсе неприподъёмной. Поэтому прошу прощения за встречающийся кое-где стиль «делай так, а почему — не скажу». Сам недолюбливаю такие инструкции, но тут не видел иного выхода. Впрочем, в отдельных местах я всё-таки постарался хотя бы вкратце пояснить суть происходящего.
Огромное количество аспектов сборочной системы VB осталось за кадром: как из-за нежелания раздувать текст, так и по причине моей лени, когда, найдя какой-то обходной путь для очередной проблемы, я не лез в глубины системы сборки, а поскорее переходил к следующему этапу. В конце концов, моей главной задачей было не найти оптимальный путь, а собрать, наконец, свой вариант актуального VirtualBox’а: сидеть на 4.3.12 уже поднадоело, но я не мог обновлять один из своих основных рабочих инструментов на нечто, что в любой момент может просто отказаться работать на неопределённый срок. Правда, по мере выхода новых версий я иногда узнаю о каких-нибудь новых возможностях сборочной системы и, опробовав их, добавляю соответствующую информацию в статью.
Надеюсь всё же, что, несмотря на недостатки, эта статья окажется кому-нибудь полезной. Для тех, кому лень поднимать всё вышеописанное нагромождение программ, но интересно расковырять получающийся в итоге дистрибутив, я выложил инсталлятор на Яндекс-диск: 6.1.18. Все драйверы в них (да и остальные файлы) подписаны недоверенным сертификатом, так что в 64-битной Windows этот вариант VB заработает только в тестовом режиме. Если имеются вопросы, пожелания, предложения — велкам в комментарии или в личку. И да пребудет с вами Open Source!