再配置可能なEmacs

再配置可能なEmacs

Linuxでemacsをビルドして、ビルドされたパスをバイナリに含めずに他のパスに無害に再配置する方法はありますか?

つまり、ビルドを使用して--prefix=/a/b/cすべてのアイテムを/d/e/fそのビルドに移動すると、固定パスに依存するため実行されません/a/b/c/a/b/cバイナリ自体の内部に文字列が表示されます。

Windows emacsは任意のディレクトリにインストールでき、そこでうまく実行できます。したがって、Linux emacsに「今どこにいても」同じ方法で実行するように指示できると思います。

以下の変数パスを指すディレクトリツリーの固定名シンボリックリンクなどのオプションはありません。

ベストアンサー1

コンパイル時に予防措置を取らなくても、Emacsはほとんど無害に再配置を実行できます。ハードコーディングされたパスが機能しない場合、Emacsは実行可能ファイルの近くのディレクトリを探します。

Emacsはそれを呼び出す実行可能ファイルの場所を確認しようとします。この情報を変数に保存しますinvocation-directory。これを仮定すると、/path/to/bin/emacsEmacsはハードコーディングされたディレクトリで必要なデータファイルを見つけてから/path/to

bin最上位ディレクトリである、、、、、、etcを使用して、Emacsソースコードとほぼ同じ方法でディレクトリを設定する必要がありleimます。特に、少なくともEmacs 23.2では、ディレクトリが存在しなければなりません(空でも)。lib-srclispsite-lisplib-src

Emacsがこの方法で見つけることができないディレクトリがあります。環境を設定しますEMACSDATA=/path/to/etcINFOPATH設定が必要な場合があります。

おすすめ記事