假定以下是我的.emacs.d
结构:
.emacs.d
├─elpa
│ ├─A-19990100.1111
│ ├─B-19990400.2222
├─site-lisp
│ ├─E
│ └─F
注意:这里A
,B
都是老版本,B
依赖于A
。
现在我在init.el
里 (package-install 'C)
,而这个C
会依赖于新版的A
。
这个时候Emacs的package
系统会怎么做?
-
更新
A
到新版,同时让B
也更新到最新?(服务器处理版本依赖).emacs.d ├─elpa │ ├─A-20200600.1111 │ ├─B-20200400.2222 │ ├─C-20200900.3333 ├─site-lisp │ ├─E │ └─F
-
保持老版本们不变并企图让
C
依赖于老版本的A
?.emacs.d ├─elpa │ ├─A-19990100.1111 │ ├─B-19990400.2222 │ ├─C-20200900.3333 ├─site-lisp │ ├─E │ └─F
-
保持老版本不变(
B
仍然依赖于老版的A
),但是自动下载新版本的A
,让C
依赖于新版的A
即:同时存在两个版本的
A
,但两个A
不会相互影响,各自在隔离环境里运行。.emacs.d ├─elpa │ ├─A-19990100.1111 │ ├─B-19990400.2222 │ ├─A-20200600.1111 │ ├─C-20200900.3333 ├─site-lisp │ ├─E │ └─F
如果我因为某个需求要简单修改下A
,于是我把A-19990100.1111
从elpa
移动到site-lisp
下:
.emacs.d
├─elpa
│ └─B-19990400.2222
├─site-lisp
│ ├─E
│ ├─F
│ └─A-19990100.1111
此时B
还能正确访问A
吗?
如果此时我再 (package-install 'C)
又会如何呢?
对Emacs的package系统不是很了解,望指点。
多谢。