web-dev-qa-db-ja.com

gnum4評価テストに関するFreebsd11.1の問題が失敗する

私はかなり新しい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

その新しいOS(インストール)と私がインストールする最初のソフトウェアの1つをお知らせするためだけに。

1
B. Belete

ソフトウェアのインストールに問題がありますが、何をしているかが表示されません。 someコマンドの出力を表示しているだけで、推測が残っています。

FreeBSDを初めて使用するが、以前はGNUシステム(Linux)での作業に慣れている場合は、微妙ですが重要な違いがいくつかあります。

あなた自身のプログラムをコンパイルするときの典型的なつまずきはmakeです。 BSDには素晴らしいmakeがありますが、GNU makeと同じではありません。GNU make次にインストールします。ただし、それを使用する場合、makeはまだBSD製ですが、今ではgmakeもあります。これは混乱を招く可能性があります。

m4でも、FreeBSDがベースシステムに持っているのと同じです。

$ which m4
/usr/bin/m4

しかし、gnu m4-1.4.18をインストールしていると書くことは、多くの道路がローマに通じているので役に立ちません。 package/port をインストールしていますか、それとも source からインストールしていますか?

FreeBSDパッケージ

FreeBSDにソフトウェアをインストールする最も簡単な方法は、パッケージをインストールすることです。パッケージは、ポートのコンパイル済みバイナリディストリビューションです。

pkg install m4

あなたはおそらくこれをしていません。しかし、これは簡単なルートです。

FreeBSDポート

FreeBSDポートはパッチのコレクションであり、FreeBSDでアプリケーションを実行するために必要のないものです。 ports ツリーがインストールされている場合は、ディレクトリをdevel/m4およびmake(コンパイル)に変更します。

ポートツリーはBSDmakeを対象としています。したがって、GNU makeではなくBSDmakeを使用することが重要です。楽しい部分は、m4autoconfに依存し、それがGNU make

しかし、私たちの目的のために、BSDmakeを使用します。

$ make
$ Sudo make install

ポートを使用する利点は、make configを使用してコンパイル時の設定を変更できることです。しかし、ほとんどの場合、GNU autotoolsとその仲間はデフォルトで十分であり、必要なのはバイナリパッケージだけです。

ソースインストール

私の推測では、ソースからインストールしようとしています。その場合、GNUと同じ名前が付けられることが多いBSDツールの違いを知ることが重要ですが、GNUツールはあなたがそうすることを期待する傾向がありますGNUツールを使用しています。VanillaFreeBSDをインストールしている場合は、すでにmakem4がありますが、BSDバリアントがあります。

したがって、GNU命令でmakeと表示されている場合は、GNU makeがインストールされており、でgmakeと入力していることを確認する必要があります。コマンドライン。

これらの複雑さを学びたいのでなければ、パッケージに固執することをお勧めします。このルートを継続したい場合は、質問をより詳細に記述し、何をしているかを示してください。この情報がなければ、私たちは推測し続けます。

更新

コメントを読むと、根本的な原因はApacheAPRをインストールしようとしているようです。これは FreeBSDポート でも利用できます。これを書いている時点で、APRの最新のポートバージョンは1.6.3であり、Apacheが最新の安定バージョンであると考えているものと同期しています。

新しいVanillaFreeBSDシステムでは、入力するのと同じくらい簡単になります。

pkg install apr1

バイナリパッケージサーバーがまだ追いついていない場合は、自分でビルドすることを選択できます。その場合、デフォルトを変更することもできます。 ports ツリーを使用してこれを行います。 portsnapツールを使用して、ツリーが最新であることを確認します。

ポートツリーがない場合:

# portsnap fetch
# portsnap extract

更新する必要がある場合:

# portsnap fetch update

次に:

# cd /usr/ports/devel/apr1
# make config
# make
# make install
1
Claus Andersen