二进制名称与 Midnight Commander 冲突。
我已阅读有关此问题的先前票证并评估了您的意见。 尽管如此,我相信您_应该_避免使用与mc
相同的名称。 很高兴您在这里寻找较短的名称,但与其他名称发生冲突是不可接受的。 如果 _user_ 想要更短的名称,他可以在 shell 中自由设置别名。 有数千 (https://qa.debian.org/popcon.php?package=mc) 用户已经在使用 Midnight Commander。
实际上,这种情况导致无法通过自制软件共同安装 minio-mc 和午夜指挥官的情况。 见https://github.com/Homebrew/homebrew-core/commit/badeeeb5aced1cf9ef0cc9332453ac56a0db9df8#diff -c021a0c2c90326616e8d0c422a20d4fdR11
我敦促你重新考虑这个项目的名称。
还有关于 node.js 和 node (Amateur Packet Radio Node Program) 之间名称冲突的类似案例,请参阅https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614907#108 .
你对这个名字冲突的无知会给下游维护者带来很多麻烦。
如果愿意,包装商可以自由选择不同的名称。 类 Unix 操作系统必须成长。 我不明白为什么用户必须是 root 才能在他/她自己的命名空间中安装软件包。
我们只需“去获取”或将 mc 二进制文件复制到 ~/bin 并执行。 我们并不真正依赖 rpm 或 dpkg 来安装 Go 包。
如果您鼓励下游维护者重命名您的二进制文件并在文档中保留mc
名称,那么您必须准备好面对诸如以下问题的风暴:
https://askubuntu.com/questions/235655/node-js-conflicts-sbin-node-vs-usr-bin-node
https://stackoverflow.com/questions/21168141/cannot-install-packages-using-node-package-manager-in-ubuntu
我的问题不是关于 rpm, deb, go get
。 用户更喜欢安装存储库提供的包而不是自己构建二进制文件。 问题是关于在 $PATH 下有两个带有mc
名称的二进制文件。
这是链接的 Debian 错误的小片段,与此处高度相关:
The Technical Committee notes that the namespace of executable
commands on $PATH is a resource shared among everyone writing software
for POSIX-compatible systems, and that the combinations of packages
that users may choose to install on a given system can easily surprise
the authors of those packages.
The Committee advises anyone writing widely-deployed software to
consider its command name carefully at an early stage. It is a good
idea to search the web for your proposed name and try to ensure that
it is unique. It is likely to be a bad idea to use excessively short
names or common words. The conflict between LinuxNode and Node.js
demonstrates that taking a little time early on can avoid a great deal
of tedium later.
POSIX 与当今的需求无关。 现代操作系统应该在自己的命名空间中支持用户安装的二进制文件。 这就是 nodejs、Go、Python 不再使用分发包模块的原因。
午夜指挥官用户也不太可能使用mc
。 二进制包在安装时发生冲突是可以的。
我真的希望这里有一个简单的解决方案。
POSIX 与当今的需求无关。
你我和其他人每天都在使用它。 怎么无关紧要?
现代操作系统应该在自己的命名空间中支持用户安装的二进制文件
它们已经存在,但是当 $PATH 中有两个使用相同名称的二进制文件时,这并不能解决这种情况。 不幸的是,你的一厢情愿现在或将来都无法解决这个问题。
这就是 nodejs、Go、Python 不再使用分发包模块的原因。
你把事情搞混了。 编程语言从一开始就从未使用过特定于发行版的包。 下游对它们进行重新包装,使其符合现有政策。 这允许最终用户轻松安装任何软件包,而无需费心设置开发环境和从头开始构建所有内容。
午夜指挥官用户也不太可能使用 mc。
什么? 我是 12 年的活跃 mc 用户。 Mindnight Commander 的每个实例都使用mc
作为二进制名称。 你的说法没有任何意义。
二进制包在安装时发生冲突是可以的。
你没有抓住重点。 在 $PATH 下有两个同名的不同二进制文件是不行的。 这已经导致冲突,请参阅自制程序链接。
我真的希望这里有一个简单的解决方案。
有。 更改此二进制文件的名称。 不要鼓励其他人为你做这件事。 你的被动攻击行为不是解决这个问题的方法。 这不是你最后一次被问到这个大胆的问题。
午夜指挥官用户也不太可能使用 mc。
请再读一遍。
the combinations of packages that users may choose to install
on a given system can easily surprise the authors of those packages
最有用的评论
你我和其他人每天都在使用它。 怎么无关紧要?
它们已经存在,但是当 $PATH 中有两个使用相同名称的二进制文件时,这并不能解决这种情况。 不幸的是,你的一厢情愿现在或将来都无法解决这个问题。
你把事情搞混了。 编程语言从一开始就从未使用过特定于发行版的包。 下游对它们进行重新包装,使其符合现有政策。 这允许最终用户轻松安装任何软件包,而无需费心设置开发环境和从头开始构建所有内容。
什么? 我是 12 年的活跃 mc 用户。 Mindnight Commander 的每个实例都使用
mc
作为二进制名称。 你的说法没有任何意义。你没有抓住重点。 在 $PATH 下有两个同名的不同二进制文件是不行的。 这已经导致冲突,请参阅自制程序链接。
有。 更改此二进制文件的名称。 不要鼓励其他人为你做这件事。 你的被动攻击行为不是解决这个问题的方法。 这不是你最后一次被问到这个大胆的问题。