假设我想创建一个安装命令的新包,即向 /bin 或 /usr/bin 添加一个新文件。
但我还没有命名该命令。因此,如果我遇到冲突,我想尽快找出答案。
因此,考虑到我有一些存储库(Fedora、RPM fusion...),是否有一个查询可以帮助我验证特定文件/命令不会被当前可用的任何其他包安装?
答案1
不要只检查 Fedora,因为当您想将其打包到其他地方时,或者 Fedora 引入一个名称与您的名称冲突的现有应用程序时,您会遇到问题。
当我编写的应用程序进入官方存储库时,我有一个发行版打包程序强迫我更改该应用程序中命令的(简短、活泼)名称,因为它与一些古老但仍然可用的垃圾发生冲突。您不妨现在就得到它。
从一个相当独特的名称开始搜索网络使用一个(或两个)搜索引擎。还搜索至少 来源锻造和github直接地。即使某些东西似乎针对完全不同的操作系统(Windows、IOS 等),也要避免冲突。
如果您无法仅使用命令名称来搜索网络(即,不要搜索“linux mycommandname”),因为它返回太多不相关的内容,则该单词不够唯一(这包括事实证明存在于外语中的单词) 、澳大利亚流行音乐品牌名称等)。这可能意味着至少 5 个字符;在这一点上,少于这个数字只是乞求巧合,多一些可能会更好。最好为命令使用一个长的、描述性的名称 ( ),并让人们根据需要superFooBar
创建自己的短别名 ( ),而不是创建一个近乎无意义的短别名(首字母缩略词、删除元音的单词等)。foo
这不会很快进入 POSIX,它是一个晦涩的、可选的应用程序,应该为了清晰而不是为了方便而进行标记。
如果您只想搜索特定系统上可用的存储库,您可以使用yum provides
:
yum provides "*/superFooBar"
注意里面有一个球形星号的引号;这可以防止 shell 扩展 it,因此它将按字面传递给yum
,后者以相同的方式将其视为通配符。这将搜索所有存储库中所有软件包安装的所有文件的完整路径,因此匹配可能包括等/usr/bin/superFooBar
。/etc/default/superFooBar
再次强调,如果您打算在组织内公开或私下分发此内容,我建议您不要这样做。如果它只是为了你和你负有一些个人责任的机器,那很好——否则它就不够彻底。