AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 411652
Accepted
B. Belete
B. Belete
Asked: 2017-12-19 11:45:20 +0800 CST2017-12-19 11:45:20 +0800 CST 2017-12-19 11:45:20 +0800 CST

Freebsd 11.1 问题与 gnu m4 eval 测试失败

  • 772

我是一个相当新的 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

只是为了让您知道它的新操作系统(安装)和它是我安装的第一个软件。

shell freebsd
  • 1 1 个回答
  • 242 Views

1 个回答

  • Voted
  1. Best Answer
    Claus Andersen
    2017-12-21T06:50:22+08:002017-12-21T06:50:22+08:00

    您在安装软件时遇到问题,但您没有向我们展示您在做什么。您只是在显示某些命令的输出,我们只能猜测。

    如果您是 FreeBSD 的新手,但以前习惯于在 GNU 系统 (Linux) 上工作,那么会有一些细微但重要的区别。

    编译自己的程序时,一个典型的绊脚石是 make。BSD 有一个不错make但它与 GNU 不同make。如果您想使用 GNU make,那么您将安装它。但是当使用它时它make仍然是 BSD make 但现在你也有一个gmake。这可能会令人困惑。

    它与m4FreeBSD 在基本系统中的相同。

    $ which m4
    /usr/bin/m4
    

    但是写下你正在安装gnu m4-1.4.18的信息并没有帮助,因为许多道路都通向罗马。您是安装包/端口还是从源安装?

    FreeBSD 软件包

    在 FreeBSD 上安装软件最简单的方法是安装软件包。包是端口的预编译二进制分发。

    pkg install m4
    

    你可能没有这样做。但这是简单的路线。

    FreeBSD 端口

    FreeBSD 移植是补丁的集合,以及在 FreeBSD 上运行应用程序所不需要的东西。如果您安装了端口树,您将更改目录devel/m4并make(编译)应用程序。

    端口树的目标是 BSD make。因此使用 BSD make 而不是 GNU make 很重要。有趣的部分是m4取决于autoconf哪个又取决于 GNU make。

    但出于我们的目的,我们将使用 BSD make:

    $ make
    $ sudo make install
    

    使用端口的一个优点是您可以使用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 系统上,它就像输入一样简单:

    pkg install apr1
    

    如果二进制包服务器还没有赶上,您可以选择自己构建它。在这种情况下,您也可以更改默认值。您可以使用端口树来执行此操作。使用该portsnap工具确保树是最新的。

    如果您没有端口树,则:

    # portsnap fetch
    # portsnap extract
    

    如果您只需要更新:

    # portsnap fetch update
    

    然后:

    # cd /usr/ports/devel/apr1
    # make config
    # make
    # make install
    
    • 1

相关问题

  • FreeBSD 的 sh:列出函数

  • 有没有办法让 ls 只显示某些目录的隐藏文件?

  • grep -v grep 有什么作用

  • 如何将带有〜的路径保存到变量中?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    JSON数组使用jq来bash变量

    • 4 个回答
  • Marko Smith

    日期可以为 GMT 时区格式化当前时间吗?[复制]

    • 2 个回答
  • Marko Smith

    bash + 通过 bash 脚本从文件中读取变量和值

    • 4 个回答
  • Marko Smith

    如何复制目录并在同一命令中重命名它?

    • 4 个回答
  • Marko Smith

    ssh 连接。X11 连接因身份验证错误而被拒绝

    • 3 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Marko Smith

    systemctl 命令在 RHEL 6 中不起作用

    • 3 个回答
  • Marko Smith

    rsync 端口 22 和 873 使用

    • 2 个回答
  • Marko Smith

    以 100% 的利用率捕捉 /dev/loop -- 没有可用空间

    • 1 个回答
  • Marko Smith

    jq 打印子对象中所有的键和值

    • 2 个回答
  • Martin Hope
    EHerman JSON数组使用jq来bash变量 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux 日期可以为 GMT 时区格式化当前时间吗?[复制] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC 如何复制目录并在同一命令中重命名它? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve “root”用户的文件权限如何工作? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe 将默认编辑器更改为 vim for _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey 如何下载软件包而不是使用 apt-get 命令安装它? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao 为什么目录 /home、/usr、/var 等都具有相同的 inode 编号 (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg —list-keys 命令在将私钥导入全新安装后输出 uid [未知] 2017-11-26 18:26:02 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve