Compilando o editor Nano com opções

2

Estou tentando compilar meu editor de texto de linha de comando favorito nano com algumas das opções.

Na verdade, a maior parte das opções para habilitar todos os recursos.

Primeiro, eu vou ao diretório Downloads e baixo o tarball:

cd Downloads

wget --continue https://www.nano-editor.org/dist/v2.8/nano-2.8.0.tar.xz

Depois, confirmo sua integridade:

wget --continue https://www.nano-editor.org/dist/v2.8/nano-2.8.0.tar.xz.asc

gpg --verify nano-2.8.0.tar.xz.asc

Deveria dizer:

gpg: Good signature from "Benno Schulenberg <[email protected]>"

Eu tentei executar o script de configuração da seguinte forma:

./configure --enable-nanorc --enable-color --enable-extra --enable-multibuffer --enable-utf8 --enable-libmagic --enable-speller --disable-wrapping-as-root

Após a compilação, acabo com isso; diretamente executado no diretório compilado:

Compiled options: --disable-libmagic ...

Eu enfatizo:

--disable-libmagic

Como eu configurei especificamente com:

--enable-libmagic    

Depois de nenhum sucesso:

  1. Eu apaguei a pasta para iniciar o processo:

    rm -rf nano-2.8.0/
    
  2. Eu extraio novamente o arquivo:

    tar -xJf nano-2.8.0.tar.xz
    
  3. Eu tentei diferentes combinações de opções, mas sem sorte.

Há algo faltando no sistema ou estou apenas fazendo algo errado?

Execução direta após a compilação:

user@computer ~/Downloads/nano-2.8.0/src $ ./nano --version
GNU nano, version 2.8.0
(C) 1999..2016 Free Software Foundation, Inc.
(C) 2014..2017 the contributors to nano
Email: [email protected] Web: https://nano-editor.org/
Compiled options: --disable-libmagic --disable-wrapping-as-root --enable-utf8
    
por Vlastimil 03.12.2016 / 14:31

3 respostas

4

O Nano não armazena as opções compiladas conforme fornecido na linha de comando ./configure , ele as reconstrói com base nos recursos detectados e no alvo solicitado (Nano "pequeno" ou Nano normal). Para o minúsculo Nano, ele informa opções ativadas, já que elas adicionam ao padrão; para o Nano normal, ele relata as opções desativadas, já que elas são removidas do padrão (na maioria dos casos).

No seu caso, você está construindo o Nano normal, portanto, para a maioria das opções só informa se eles estão desativados ; as exceções são debug , utf8 e slang . Todas as suas opções --enable são padrões para o Nano normal, por isso não as reporta nas opções compiladas; você obteria o mesmo resultado com ./configure e sem opções. Você acaba com --disable-magic porque você não tem os arquivos de desenvolvimento para libmagic (veja a resposta de Thomas Dickey ), e com --enable-utf8 , porque você tem os recursos necessários para o suporte a UTF-8 (e está ativado por padrão).

    
por 03.12.2016 / 20:36
2

Você precisa de um pacote de desenvolvimento para libmagic. No meu sistema Debian, isso é libmagic-dev , por exemplo.

Se você não tiver a biblioteca de desenvolvimento instalada, o script de configuração informará isso. Aqui está o que mostra sem a biblioteca:

checking whether LINES and COLS can be redefined... yes
checking magic.h usability... no
checking magic.h presence... no
checking for magic.h... no
checking for magic_open in -lmagic... no

e depois de instalar o pacote:

checking whether LINES and COLS can be redefined... yes
checking magic.h usability... yes
checking magic.h presence... yes
checking for magic.h... yes
checking for magic_open in -lmagic... yes

O recurso que você está verificando é uma definição em config.h , ou seja, HAVE_LIBMAGIC (embora também seja necessário o arquivo de cabeçalho, como mostrado):

/* Define to 1 if you have the 'magic' library (-lmagic). */
#define HAVE_LIBMAGIC 1

/* Define to 1 if you have the 'z' library (-lz). */
#define HAVE_LIBZ 1

/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1

/* Define to 1 if you have the <magic.h> header file. */
#define HAVE_MAGIC_H 1
    
por 03.12.2016 / 17:03
0

De acordo com a resposta do relatório de erros :

All options are enabled by default (except debug), so all your --enable-nanorc etcetera are superfluous. And as Thomas has explained on Stackexhange, you need some -dev package if you want libmagic support (but I would advice against it -- it brings very little and is a major slowdown during startup).

Vocês dois estão certos. Obrigado Thomas e Stephen .

Apenas uma coisa ainda estava faltando; nano não leu meu arquivo /etc/nanorc como relatou .

De acordo com o desenvolvedor, o seguinte pode fazer e :

sudo ln -nsf /etc/nanorc /usr/local/etc/
    
por 04.12.2016 / 04:21