我自己编译了 GNU/Nano 编辑器,我希望将其添加到系统编辑器列表中。
which nano
告诉我以下位置:
/usr/local/bin/nano
所以它应该是这样的:
sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/nano 1
但我需要把各个部分拼凑起来。您能帮我理解手册吗?
命令
--install link name path priority [--slave link name path]...
向系统添加一组替代方案。
link
是主链接的通用名称,name
是其在替代品目录中的符号链接的名称,path
是为主链接引入的替代品。之后的参数--slave
是通用名称、替代目录中的符号链接名称以及从属链接的替代路径。可以指定零个或多个--slave
选项,每个选项后跟三个参数。请注意,主备用必须存在,否则调用将失败。但是,如果从属替代项不存在,则不会安装相应的从属替代项链接(仍会显示警告)。如果在必须安装替代链接的地方安装了某个真实文件,则除非--force
使用,否则它将被保留。如果指定的替代名称已存在于替代系统的记录中,则提供的信息将添加为该组的一组新的替代名称。否则,将添加一个设置为自动模式的新组并包含此信息。如果该组处于自动模式,并且新添加的替代项的优先级高于该组中任何其他安装的替代项,则符号链接将更新为指向新添加的替代项。
答案1
查看该包在其内部做了什么postinst
:
update-alternatives --install /usr/bin/editor editor /bin/nano 40 \
--slave /usr/share/man/man1/editor.1.gz editor.1.gz \
/usr/share/man/man1/nano.1.gz
这将/bin/nano
作为/usr/bin/editor
(名为 的替代项editor
,所以/etc/alternatives/editor
)的替代项进行安装,优先级为 40,并将nano
联机帮助页作为该联机帮助页的替代项进行关联editor
。这样,选择nano
作为配置的替代方案会自动设置匹配的联机帮助页。
运行此命令时,如果editor
替代方案已存在,nano
则将添加该替代方案;如果替代方案处于自动模式,则如果其具有最高优先级,则选择该替代方案;如果没有,替代方案将以自动模式创建、nano
添加和选择。
所以你可能想要类似的东西
update-alternatives --install /usr/bin/editor editor /usr/local/bin/nano 100
(假设你想自动选择nano
;我在 Debian 中看到的编辑器的最高优先级是 70,所以 100 将获胜)。