Freebsd 11.1 problemas com o teste eval do gnu m4 falhar

1

Eu sou muito novo usuário do Freebsd. Como estou tentando instalar o gnu m4-1.4.18 , recebo falha eval na seção de teste 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

é isso que dentro do 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

Para informá-lo do novo SO (instalação) e um dos primeiros softwares que estou instalando.

    
por B. Belete 18.12.2017 / 20:45

1 resposta

1

Você está tendo problemas para instalar o software, mas não mostra o que está fazendo. Você está apenas mostrando a saída do comando some e ficamos adivinhando.

Se você é novo no FreeBSD, mas já foi acostumado a trabalhar em um sistema GNU (Linux), existem algumas diferenças sutis, mas importantes.

Um empecilho típico ao compilar seus próprios programas é fazer. O BSD tem um bom make , mas não é o mesmo que o GNU make . Se você quiser usar o GNU make , então você irá instalá-lo. Mas quando usá-lo make ainda é BSD, mas agora você tem um gmake também. Isso pode ser confuso.

É a mesma coisa com m4 como o FreeBSD tem no sistema básico.

$ which m4
/usr/bin/m4

Mas escrever que você está instalando gnu m4-1.4.18 não é útil, já que muitos caminhos levam a Roma. Você está instalando o pacote / porta ou a partir de source ?

Pacote FreeBSD

A maneira mais simples de instalar software no FreeBSD é instalar o pacote. Pacotes são distribuições binárias pré-compiladas das portas.

pkg install m4

Você provavelmente não está fazendo isso. Mas esse é o caminho mais fácil.

Porta do FreeBSD

Uma porta do FreeBSD é uma coleção de correções e outras coisas necessárias para que um aplicativo seja executado no FreeBSD. Se você tiver a árvore portas instalada, altere o diretório para devel/m4 e make (compile) o aplicativo.

A árvore de ports está direcionando o BSD make. Por isso, é importante usar o BSD make e não o GNU make. A parte divertida é que m4 depende de autoconf , que por sua vez depende do GNU make .

Mas, para o nosso propósito, usaremos o BSD make:

$ make
$ sudo make install

Uma vantagem de usar portas é que você pode alterar as configurações de tempo de compilação usando make config . Mas na maioria dos casos com GNU autotools e amigos, os padrões normalmente são suficientes e o pacote binário é tudo que você precisa.

Instalação de origem

Meu palpite é que você está tentando instalar a partir da fonte. Nesse caso, é importante conhecer as diferenças entre as ferramentas GNU e BSD, que muitas vezes são nomeadas da mesma forma. Mas as ferramentas GNU tendem a esperar que você esteja usando ferramentas GNU. E se você tiver uma instalação simplificada do FreeBSD, então você já tem make e m4 , mas as variantes do BSD.

Assim, quando as instruções do GNU dizem make , você deve ter certeza de que o GNU make está instalado e está digitando gmake na linha de comando.

A menos que você queira aprender essas complexidades, recomendo que você se atenha aos pacotes. Se você quiser continuar nesse caminho, você precisa ser mais detalhado em suas perguntas e nos mostrar o que está fazendo. Sem essa informação, ficamos adivinhando.

Atualizar

A partir da leitura dos comentários, parece que a causa raiz é tentar instalar o Apache APR. Isso está disponível em portas do FreeBSD também. No momento em que escrevo, a última versão de porta do APR é a 1.6.3, que está em sincronia com o que o Apache acredita ser a última versão estável.

Em novos sistemas FreeBSD de baunilha, será tão simples quanto digitar:

pkg install apr1

Se os servidores de pacotes binários não tiverem pego ainda, você pode escolher construí-lo você mesmo. Nesse caso, você também pode alterar os padrões. Você faz isso usando a árvore ports . Use a ferramenta portsnap para garantir que a árvore esteja atualizada.

Se você não tem uma árvore de ports, então:

# portsnap fetch
# portsnap extract

Se você só precisa atualizar:

# portsnap fetch update

Então:

# cd /usr/ports/devel/apr1
# make config
# make
# make install
    
por 20.12.2017 / 15:50