我是一个相当新的 Freebsd 用户。当我尝试安装时gnu m4-1.4.18
,我在 eval 测试部分得到 eval 失败:
Checking ./189.eval
@ ../doc/m4.texi:6405: Origin of test
./189.eval: stdout mismatch
--- m4-tmp.2536/m4-xout 2017-12-18 22:11:42.931036000 +0000
+++ m4-tmp.2536/m4-out 2017-12-18 22:11:42.928582000 +0000
@@ -2,8 +2,8 @@
1
1
-overflow occurred
--2147483648
+
+2147483648
0
-2
-2
这就是 189.eval 里面的内容:
dnl @ ../doc/m4.texi:6405: Origin of test
dnl @ expected status: 0
dnl @ extra options:
dnl @ Copyright (C) 2006, 2007, 2008, 2009 Free Software
dnl @ Foundation, Inc.
dnl @ This file is free software; the Free Software Foundation
dnl @ gives unlimited permission to copy and/or distribute it
dnl @ with or without modifications, as long as this notice
dnl @ is preserved.
define(`max_int', eval(`0x7fffffff'))
dnl @result{}
define(`min_int', incr(max_int))
dnl @result{}
eval(min_int` < 0')
dnl @result{}1
eval(max_int` > 0')
dnl @result{}1
ifelse(eval(min_int` / -1'), min_int, `overflow occurred')
dnl @result{}overflow occurred
min_int
dnl @result{}-2147483648
eval(`0x80000000 % -1')
dnl @result{}0
eval(`-4 >> 1')
dnl @result{}-2
eval(`-4 >> 33')
dnl @result{}-2
只是为了让您知道它的新操作系统(安装)和它是我安装的第一个软件。
您在安装软件时遇到问题,但您没有向我们展示您在做什么。您只是在显示某些命令的输出,我们只能猜测。
如果您是 FreeBSD 的新手,但以前习惯于在 GNU 系统 (Linux) 上工作,那么会有一些细微但重要的区别。
编译自己的程序时,一个典型的绊脚石是 make。BSD 有一个不错
make
但它与 GNU 不同make
。如果您想使用 GNUmake
,那么您将安装它。但是当使用它时它make
仍然是 BSD make 但现在你也有一个gmake
。这可能会令人困惑。它与
m4
FreeBSD 在基本系统中的相同。但是写下你正在安装
gnu m4-1.4.18
的信息并没有帮助,因为许多道路都通向罗马。您是安装包/端口还是从源安装?FreeBSD 软件包
在 FreeBSD 上安装软件最简单的方法是安装软件包。包是端口的预编译二进制分发。
你可能没有这样做。但这是简单的路线。
FreeBSD 端口
FreeBSD 移植是补丁的集合,以及在 FreeBSD 上运行应用程序所不需要的东西。如果您安装了端口树,您将更改目录
devel/m4
并make
(编译)应用程序。端口树的目标是 BSD make。因此使用 BSD make 而不是 GNU make 很重要。有趣的部分是
m4
取决于autoconf
哪个又取决于 GNUmake
。但出于我们的目的,我们将使用 BSD make:
使用端口的一个优点是您可以使用
make config
. 但在大多数情况下,使用 GNU autotools 和朋友,默认值通常就足够了,二进制包就是你所需要的。源安装
我的猜测是您正在尝试从源代码安装。在这种情况下,了解 GNU 和 BSD 工具之间的区别很重要,因为它们通常名称相同。但是 GNU 工具往往希望您使用 GNU 工具。如果你有一个普通的 FreeBSD 安装,那么你已经有了
make
,m4
但是 BSD 变种。所以当 GNU 指令说
make
你应该确保你已经安装了 GNU make 并且gmake
在命令行输入。除非你想学习这些错综复杂的东西,否则我建议你坚持使用包。如果您想继续这条路线,您需要在您的问题中更加详细,并向我们展示您在做什么。如果没有这些信息,我们只能猜测。
更新
从阅读评论看来,根本原因似乎是试图安装 Apache APR。这在FreeBSD 端口中也可用。在撰写本文时,APR 的最新端口版本是 1.6.3,这与 Apache 认为的最新稳定版本是同步的。
在新的普通 FreeBSD 系统上,它就像输入一样简单:
如果二进制包服务器还没有赶上,您可以选择自己构建它。在这种情况下,您也可以更改默认值。您可以使用端口树来执行此操作。使用该
portsnap
工具确保树是最新的。如果您没有端口树,则:
如果您只需要更新:
然后: