オプションを使用したNanoエディタのコンパイル

オプションを使用したNanoエディタのコンパイル

私が一番好きなものを集めようとしています。nanoいくつかのオプションを含むコマンドラインテキストエディタ。

実際、最大すべての機能を有効にするオプションです。


まず、ダウンロードディレクトリに移動してtarballをダウンロードします。

cd Downloads

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

次に、整合性を確認します。

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

次のように話す必要があります。

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

次のように設定スクリプトを実行してみました。

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

コンパイル後にコンパイルディレクトリから直接実行すると、次の結果が表示されます。

Compiled options: --disable-libmagic ...

私は強調する:

--disable-libmagic

具体的に構成したからです。

--enable-libmagic    

成功しなかった後:

  1. プロセスを再開するためにフォルダを削除します。

    rm -rf nano-2.8.0/
    
  2. アーカイブを再抽出します。

    tar -xJf nano-2.8.0.tar.xz
    
  3. 様々なオプションの組み合わせを試しましたが、運がありませんでした。


システムに何か抜けたものがありますか?それとも私が何か間違っているのでしょうか?


コンパイル後に直接実行:

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

答え1

./configureNanoはコマンドラインで提供されているコンパイルオプションを保存しませんが、検出された機能に基づいて再構成します。そして要求された宛先(「小さい」ナノまたは一般的なナノ)。小さなNanoの場合はデフォルトに追加された有効なオプションを報告し、通常のNanoの場合はデフォルトから削除された無効なオプションを報告します(ほとんどの場合)。

あなたの場合は一般的なナノを構築しているので、ほとんどのオプションについて無効になっている場合にのみ報告されます。;例外はdebugutf8およびですslang。すべての--enableオプションは通常のNanoのデフォルト値なので、コンパイルオプションには報告されません。オプションがあるかどうかにかかわらず、同じ結果が得られます./configure--disable-magic開発ファイルがないため、このような結果が発生しますlibmagic(参照:トーマスディキの答え)、--enable-utf8UTF-8サポートに必要な機能があるためです(そしてデフォルトで有効になっています)。

答え2

libmagic用の開発パッケージが必要です。私のDebianシステムではlibmagicの開発例えば。

開発ライブラリがインストールされていない場合、構成スクリプトはこれを通知します。ライブラリなしで表示される内容は次のとおりです。

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

パッケージをインストールした後:

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

検証中の関数はconfig.h次のように定義されますHAVE_LIBMAGIC(図のようにヘッダファイルも必要ですが)。

/* 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

答え3

~によるとエラーレポート返信:

すべてのオプション(デバッグを除く)はデフォルトで有効になっているため、すべての--enable-nanorcなどは重複します。 ThomasがStackexhangeで説明したように、libmagicのサポートが必要な場合は-devパッケージが必要です(ただし使用しないことをお勧めします。これはほとんどインポートされず、起動時に深刻な速度低下を引き起こします)。

あなたの両方が正しいです。ありがとうまなそしてスティーブン

一つ抜けたものがあります。私のファイルを次のようにnano読み取らないということです。/etc/nanorcレポート

開発者によると、次のことができます。もちろん:

sudo ln -nsf /etc/nanorc /usr/local/etc/

関連情報