我正在尝试这样做:
使用automake配置脚本在64位Linux上构建32位?
对我不起作用:(编译葡萄酒.我在config.log中找到了这个:
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Wine"
| #define PACKAGE_TARNAME "wine"
| #define PACKAGE_VERSION "1.5.19"
| #define PACKAGE_STRING "Wine 1.5.19"
| #define PACKAGE_BUGREPORT "wine-devel@winehq.org"
| #define PACKAGE_URL "http://www.winehq.org"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
Run Code Online (Sandbox Code Playgroud)
配置失败: Cannot build a 32-bit program, you need to install 32-bit development libraries.
小智 10
apt-get install gcc-multilib libasound2-dev:i386 libgsm1-dev:i386 libjpeg8-dev:i386 liblcms2-dev:i386 libldap2-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libv4l-dev:i386 libx11-dev:i386 libxinerama-dev:i386 libxml2-dev:i386 zlib1g-dev:i386
Run Code Online (Sandbox Code Playgroud)
和
apt-get install libcapi20-dev:i386 libcups2:i386 libdbus-1-3:i386 libfontconfig:i386 libfreetype6:i386 libglu1-mesa:i386 libgnutls26:i386 libgphoto2-2:i386 libncurses5:i386 libosmesa6:i386 libsane:i386 libxcomposite1:i386 libxcursor1:i386 libxi6:i386 libxrandr2:i386 libxslt1.1:i386 ocl-icd-libopencl1:i386
Run Code Online (Sandbox Code Playgroud)
让我超过X错误.
要在64位计算机上构建32位wine,您可以使用LXC(Linux Containers),这是一个操作系统级虚拟化环境,用于运行多个独立的Linux系统.到目前为止,这是最简单的解决方案,因为Linux(如Ubuntu或Debian)使得构建32位葡萄酒变得困难,因为64位系统没有配备全套32位开发库(参见:Bug#990982) .
因此,编译32位和64位葡萄酒的基本方法是:
在页面上构建Biarch(共享WoW64)Wine在Ubuntu上我们可以阅读以下说明:
安装64位先决条件:
sudo apt-get update
sudo apt-get build-dep wine
Run Code Online (Sandbox Code Playgroud)制作64位葡萄酒:
mkdir $HOME/wine64
cd $HOME/wine64
../wine-git/configure --enable-win64
make -j4
Run Code Online (Sandbox Code Playgroud)安装lxc:
sudo apt-get install lxc
Run Code Online (Sandbox Code Playgroud)使用Ubuntu模板创建一个名为"my32bitbox"的32位容器,并将您的主目录绑定到容器中的/ home目录:
sudo lxc-create -t ubuntu -n my32bitbox -- --bindhome $LOGNAME -a i386
Run Code Online (Sandbox Code Playgroud)将apt配置从主机复制到lxc容器:
sudo cp -R /etc/apt /var/lib/lxc/my32bitbox/rootfs/etc
Run Code Online (Sandbox Code Playgroud)启动容器; 在控制台登录提示下,它会为您提供,使用您的用户名和密码登录.
sudo lxc-start -n my32bitbox
Run Code Online (Sandbox Code Playgroud)现在,您位于容器内,位于您的真实主目录中.如果您不在容器中(您没有提示用户名@ my32bitbox),则打开一个新终端并:
sudo lxc-attach -n my32bitbox
login yourusername+password
Run Code Online (Sandbox Code Playgroud)现在,你在容器中.像往常一样,在树外构建Wine,只是为了获得工具.您必须先安装所有必需的先决条件.例如:
sudo apt-get update
sudo apt-get install python-software-properties git-core
sudo apt-get build-dep wine
mkdir $HOME/wine32-tools
cd $HOME/wine32-tools
~/wine-git/configure
make -j4
Run Code Online (Sandbox Code Playgroud)仍在容器内部,再次执行此操作,这次指向64位数据构建,以及为工具构建的32位工具:
mkdir $HOME/wine32
cd $HOME/wine32
~/wine-git/configure --with-wine64=$HOME/wine64 --with-wine-tools=$HOME/wine32-tools
make -j4
Run Code Online (Sandbox Code Playgroud)仍然在容器内,安装32位葡萄酒,以迫使最后一点建设:
cd $HOME/wine32
sudo make install
Run Code Online (Sandbox Code Playgroud)在仍然在容器内部时,将其关闭:
sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)
这会让你退回到真正的机器中.接下来,您需要删除所有现有的Wine包.您可以从命令行执行此操作,但使用aptitude或其中一个GUI包管理工具可能更容易.您将需要wine-mono,wine-gecko和任选的winetricks作为您的葡萄酒编译版本.但是,这些包装可能取决于现有的葡萄酒装置,这可能会迫使您将其移除.
将新制作的葡萄酒安装到您的真实机器中:
cd $HOME/wine32
sudo make install
cd $HOME/wine64
sudo make install
Run Code Online (Sandbox Code Playgroud)
警告:当您安装本地构建的Wine版本时,程序包管理系统将不知道它存在,因为它不是来自程序包.因此,可以在以后打破其依赖关系或安装冲突版本的葡萄酒,而无需来自包管理工具的警告.您可以通过创建程序包或通过为程序包设置"Pin-Priority:-1"来阻止与apt-pinning冲突的程序包来防止这种情况.
笔记:
sudo或者您需要切换到用户帐户.~/wine32/wine32 ~/.wine/path_to_winapp/my_app.不要那样做。即使在 64 位系统上,Wine 默认也会构建 32 位(因为它必须运行 32 位 Windows 程序)。它还同时构建 64 位 Wine。如果您想禁用它,请配置它:
./configure --disable-win64
| 归档时间: |
|
| 查看次数: |
43297 次 |
| 最近记录: |