通过编译源代码来安装 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 之前,您可以设置并导出环境变量,例如
EMACSDATA
、EMACSDOC
和EMACSPATH
来覆盖不正确的内置路径名。 - 您在不同的位置创建符号链接以
/usr
指向不同的位置,/usr/local
以便错误的内置路径名解析到新位置。
运行checkinstall
来监视该make install
过程并生成一个.deb
包含所有已安装文件的包不会缓解任何这种情况; emacs 二进制文件仍将包含不正确的路径名。