如果我想更改 `--prefix` 是否必须重新编译?

如果我想更改 `--prefix` 是否必须重新编译?

通过编译源代码来安装 emacs 24.5 时,我运行./config --prefix=/usr然后make然后sudo checkinstall创建一个 deb 包并将二进制文件安装到/usr.

现在我想将安装目录更改为/usr/local.我想知道我是否必须重新执行这些步骤,包括编译?或者你建议我这样做?

deb 包是否绑定到/usr?没有办法改变它绑定到吗/usr/local

答案1

简短的回答:你应该重新编译

长答案:

你不将前缀从 更改为 with 后重新编译/usr/usr/local./configure由于 emacs 使用嵌入在可执行文件中的路径名中的前缀(例如/usr/lib/emacs/24.5/i686-pc-linux-gnu/usr/share/emacs/24.5/etc;请参阅src/epaths.h),因此将找不到 emacs 在运行时读取的某些文件,除非

  • 你重新编译emacs(推荐)
  • 在运行 emacs 之前,您可以设置并导出环境变量,例如EMACSDATAEMACSDOCEMACSPATH来覆盖不正确的内置路径名。
  • 您在不同的位置创建符号链接以/usr指向不同的位置,/usr/local以便错误的内置路径名解析到新位置。

运行checkinstall来监视该make install过程并生成一个.deb包含所有已安装文件的包不会缓解任何这种情况; emacs 二进制文件仍将包含不正确的路径名。

相关内容