首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian替代系统:具有相同名称和优先级的程序

Debian替代系统:具有相同名称和优先级的程序
EN

Unix & Linux用户
提问于 2015-09-13 12:33:56
回答 1查看 606关注 0票数 3

我无法从update-alternatives文档中了解优先级系统是如何工作的。

假设我希望/usr/bin/node为nodejs应用程序指向nodejs,在其他情况下指向一个名为node的业余无线电节目。我不得不说:

代码语言:javascript
复制
update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100 --slave /usr/share/man/...

假设我有两个节目,期望/usr/bin/node是不同的东西,第一- nodejs,第二业余无线电。他们将如何确定使用哪一种?

在这个过程中,优先级的作用是什么?

另外:请注意,npm,nodejs包管理器,期望nodejs命令被称为node,因此我必须将nodejs安装为node

EN

回答 1

Unix & Linux用户

发布于 2015-09-13 13:15:33

我想你误解了替代系统的作用。它用于提供一种简单的方法来使用类似类型的替代程序。通常的示例以及手册页中使用的示例是一个编辑器:

例如,如果系统上安装了文本编辑器ed(1)和nvi(1),则替代系统将导致泛型名称/usr/bin/editor在默认情况下引用/usr/bin/nvi。

在您的例子中,node指两个完全不同的应用程序。

如果两者都可以从主Debian存储库中安装,那么其中一个包维护人员很可能已经命名了它们的可执行文件,这样它就不会与另一个程序发生冲突。例如,无线电应用程序的二进制文件可以重命名为/usr/bin/node_radio,这样它就不会与Node.js /usr/bin/node冲突。

另一方面,如果您自己正在编译业余无线电node,则必须确保要么更改编译,使其不创建相同的名称二进制,要么确保将其安装到不同的路径中,如/usr/local/bin/node。如果选择后者,那么在命令提示符下键入哪个node取决于$PATH变量中的搜索顺序。如果执行的是错误的路径,则必须输入完整路径才能运行它:/usr/local/bin/node

在任何情况下,update-alternatives都帮不了你。

所有这些仅仅是一个示例,用apt-get download node进行快速检查,然后用dpkg --contents node_0.3.2-7.4_all.deb显示业余无线电node是以/usr/sbin/ax25-node的形式安装的,并有一个从/usr/sbin/node到可执行文件的链接。Node.js安装/usr/bin/nodejs,因此两者永远不会冲突。

票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/229373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档