我通过编译源代码在 Ubuntu 12.04 上安装 wine 1.6.2,因为我无法从 ppa 中找到二进制文件。
但当我现在编译 中的源代码时/tmp
,我的可用空间/
已下降到 70Mb。已经有一段时间了,我不知道需要多长时间才能完成编译,也不知道我的编译进展到了什么程度。现在我已经停止编译了。我停在
gcc -c -I. -I. -I../../../include -I../../../include -DWINE_STRICT_PROTOTYPES -DWINE_NO_NAMELESS_EXTENSION -DWIDL_C_INLINE_WRAPPERS -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-2 -gstrict-dwarf -fno-omit-frame-pointer -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -o automation.o automation.c
gcc -c -I. -I. -I../../../include -I../../../include -DWINE_STRICT_PROTOTYPES -DWINE_NO_NAMELESS_EXTENSION -DWIDL_C_INLINE_WRAPPERS -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-2 -gstrict-dwarf -fno-omit-frame-pointer -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -o db.o db.c
gcc -c -I. -I. -I../../../include -I../../../include -DWINE_STRICT_PROTOTYPES -DWINE_NO_NAMELESS_EXTENSION -DWIDL_C_INLINE_WRAPPERS -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-2 -gstrict-dwarf -fno-omit-frame-pointer -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -o format.o format.c
^Z
[1]+ Stopped make
是否可以知道从编译源进行安装可能需要多长时间和多少空间?
如果你是我,你会在哪些方面做得更好?谢谢。
答案1
测量 GCC 编译时间
$> time ./configure
$> time make depend
$> time make
$> time make install
这时间实用程序提供系统编译时间的统计信息。使用时间测量实用程序构建后,您可以使用以下命令检查目录的大小:
测量构建尺寸
$> DIRECTORY="/source/compiler/output/directory"
$> du -m $DIRECTORY
你在哪里建造真的很重要吗?
不,这只是另一个圣战开发人员参与的...这只是一个 $PATH。在 /tmp/、/opt/、/home/、/root/ 或任何地方编译它:这是一个偏好问题。
我在 /opt/src/ 中做事是因为我保留源代码,因为我根据我的特定要求修改它。
估计
我估计你的编译时间应该不会超过2小时。
估计编译时间是一个分析过程,研究其他人编译具有类似处理器(即英特尔)的源代码需要多长时间,并进行一些粗略的数学计算,这很难科学。
我是如何得出答案的:
A) 具有 4 个线程的四核 Intel 处理器。与 B) 具有 2 个线程的双核处理器。
虽然用户 A 可以使用 4 个 GCC 进程进行编译,但您只能使用 2 个进程。
只需将它们的时间(15 分钟)乘以 2 即可考虑线程减少...然后再次乘以 2 以补偿涉及的许多变量(即编译器版本),我得出 2 小时。
上述博客始终包含 GCC 基准测试状态的更新。您还可以通过了解版本之间编译时间的相对关系来调整您的 GCC 版本。
估计包装尺寸
将已编译的二进制文件的大小与已编译的依赖项的大小相加。 WINE 实际上将在没有依赖关系的情况下进行编译。
安装 WINE 依赖项并包含完整 wine DEP 列表的脚本
我知道这看起来像是我在告诉你数所有的豆子,但在我的世界里,只有豆子和几袋豆子,我在它们之间交换豆子(最专业)。
答案2
不要在二进制发行版上使用源包!
这将导致不可预见的问题,例如:
- 编译后的程序期望它使用的二进制文件位于一个位置,而 Ubuntu 将它们安装在不同的位置。
- 缺少库的符号链接。
- 版本不匹配。
- ETC。
相反,使用官方葡萄酒 PPA。
- 启动 Ubuntu 软件中心并选择“编辑”->“软件源”,打开“软件源”菜单。选择其他软件选项卡并单击添加。
- 类型 ppa:ubuntu-wine/ppa。单击“添加”。
apt-get update && apt-get install wine1.6
由于我上面提到的原因,这应该获取并安装您将在编译时惨遭失败的版本。所需时间是一个有争议的问题。
答案3
您的情况唯一可能的情况是将同一包与其他类似硬件的编译时间进行比较。
我们对你的硬件一无所知,只是为了给你一个粗略的了解——我手头有一台上网本(intelatomCPU,又旧又弱的机器)和gentoo,所以我可以很容易地计算出wine
过去3年里所有软件包的编译时间:
$ qlop -tHgv wine
wine-1.2.3: Sat Sep 17 22:41:18 2011: 1 hour, 29 minutes, 25 seconds
wine-1.2.2: Mon Sep 19 05:42:32 2011: 1 hour, 14 minutes, 0 seconds
wine-1.2.2: Sun Oct 9 06:27:57 2011: 1 hour, 9 minutes, 3 seconds
wine-1.2.2: Sun Jan 22 13:31:16 2012: 1 hour, 19 minutes, 7 seconds
wine-1.4: Fri Jul 6 14:29:27 2012: 1 hour, 45 minutes, 48 seconds
wine-1.4.1: Thu Jul 19 23:38:10 2012: 1 hour, 24 minutes, 57 seconds
wine-1.4.1: Thu Dec 27 15:14:27 2012: 2 hours, 2 minutes, 2 seconds
wine-1.4.1: Sat Jan 26 02:27:28 2013: 3 hours, 8 minutes, 35 seconds
wine-1.4.1: Sun Feb 17 00:45:56 2013: 1 hour, 20 minutes, 12 seconds
wine-1.6: Mon Sep 23 18:15:04 2013: 2 hours, 28 minutes, 58 seconds
wine-1.6: Sat Jan 11 21:30:48 2014: 1 hour, 48 minutes, 36 seconds
wine-1.6.1: Mon Jan 27 22:47:25 2014: 2 hours, 48 minutes, 27 seconds
wine-1.6.2: Sat Mar 15 06:30:29 2014: 1 hour, 52 minutes, 17 seconds
wine-1.6.2: Sun Jul 13 18:05:58 2014: 2 hours, 2 minutes, 30 seconds
wine: 14 times
和尺寸:
$ qsize -mf wine
app-emulation/wine-1.6.2: 2,630 files, 49 non-files, 207 MiB