请求 GNU Linux 中的功能的正确方法是什么?

请求 GNU Linux 中的功能的正确方法是什么?

我正在尝试发送应用程序文件 /usr/bin/file 的错误报告

但咨询该男子并发送电子邮件

错误 请报告错误并将补丁发送到错误跟踪器:http://bugs.gw.com/ 或邮件列表⟨[电子邮件受保护]⟩ (访问 http://mx.gw.com/mailman/listinfo/file首先订阅)。

让我发现邮件地址不存在。

还有其他与社区沟通的方式吗?希望这里的问题已经是其中的一部分:)

这是我的电子邮件:

可能的功能故障:该--extension选项似乎没有输出任何内容

$ file --extension "ab.gif" 
ab.gif: ???

如果能够轻松地使用此输出将文件重命名为其正确的扩展名,将会非常有用。

像 file 这样的东西--likely_extension只会输出可能检测到的扩展名,或者如果检测太低则输出错误

像这样:

$ file --likely_extension "ab.gif"
gif

不过更好的是一个--correct_extension选择:

$ file --correct_extension "ab.jpg"

$ ls
ab.gif

此应用程序的 Tyvm :)

答案1

您正在按照正确的程序提交问题或增强请求:如果程序的文档提到了如何执行此操作,请按照这些说明进行操作。

不幸的是,项目经常会终止,或者您所拥有的版本中的说明不再准确。在这些情况下,事情会变得有点困难。一种可能的通用方法是向您的发行版提交错误;不过,成功可能会有些偶然……(我应该提到,通常最好报告一个漏洞如果您使用的是软件包,则访问您从中获取软件包的发行版;如果打包版本比当前“上游”版本旧,并且您没有检查问题是否仍然存在,则尤其如此。)

具体来说file官方文档已更新,提及错误跟踪器和邮件列表已关闭,并且它还为当前维护者提供了直接电子邮件地址,您可以使用该地址与他联系。

答案2

此外斯蒂芬·基特的回答,您可以考虑(特别是如果您自己是开发人员,并且如果该程序(file在您的情况下)具有不太难理解的源代码)获取该程序的源代码(可能来自您的发行版)-因为它是自由软件- 并修补它,并发送补丁。

如果你花时间研究源代码,您可能会提出更好的错误报告。

如果你花更多的时间提出修复补丁,您可能会被更认真地考虑(恕我直言,您的行为更加本着自由软件的精神)。

所以使用所提供的自由自由软件研究它的源代码(自由#1)和改进它(自由#3)。

今天它很容易发布(例如在github)你的改进版本和分享它(自由#2)。

确保拥有该file程序的最新版本。许多发行版没有使用它(也许您的发行版中的错误已经在上游得到修复)。

我不确定你的--correct_extension行为属于file(这是一个程序询问,而不是更改您的数据)。但如果确实如此,它可能应该拼写为--correct-extension--rename-extension...一旦您尝试实现它,您可能会发现存在奇怪的极端情况(gzipped tar 文件,或压缩的 C 源文件,或可能的东西)需要多个文件扩展名)。

请注意(与 Windows 不同)在 Linux 和 Unix 上,文件实际上是一个索引节点(看索引节点(7)) 和可以有多个名称(或没有),并且可以是打开同时通过多个进程(阅读文件描述符) - 或无,即使大多数文件只有一个名称(但请参阅链接(2)&统计数据(2))。自从相同的文件可以命名foo.txtbar.gz重视文件扩展名没有多大意义。也可以看看路径分辨率(7)

因此,如果您尝试实现您的correct-extension想法,您会发现实现(甚至指定)并不那么简单,并且没有明显的简单行为。

可能你的想法不太好,不容易实现在 Linux 和 POSIX 系统上(至少不是所有情况)。

因此,我建议甚至避免提交功能请求(在其初始形式中,这对您和 的开发人员来说都是时间损失file)。或者,做很多工作,改进它的规​​范,并提交补丁......当然你会花很多工作在这上面(我真的不认为这是值得的痛苦)。

也许还读过一些 Unix 编程书籍(比如旧的碱性磷酸酶,或更新的东西;并且简介(2)&系统调用(2)) 和操作系统:三个简单的部分

答案3

你问:

请求 GNU Linux 中的功能的正确方法是什么?

要回答这个问题,重要的是要知道“GNU Linux”本身并不存在。 GNU 项目是开发自由软件的协作努力。其中一些免费软件 - 以及大量其他免费和开源软件 - 收集者其他项目:要么是像 Fedora* 或 Debian 这样的协作、开放项目,要么是不同程度开放的企业努力,甚至是个人。这些集合被称为“Linux 发行版”或“GNU/Linux 发行版”(其中存在一场政治辩论,我不会介入)。

一般来说,如果您有兴趣特征增强功能,最好的办法是与编写该软件的开发人员合作 - 发行版需要做很多工作才能收集各种软件并使其协同工作,并且通常会更喜欢这些变化发生在“上游”。

所以,你在这里做了正确的事情 - 你找到了记录的上游源并尝试在那里报告。

然而,您感兴趣的软件的记录通信方法似乎不起作用。在这种情况下,您有多种选择:

  1. 尝试寻找其他方式联系软件开发人员。在这种情况下,大多数发行版都包含file最初由 Ian Darwin 编写的命令,名义上位于http://www.darwinsys.com/file/,以及您提到的邮件列表。但与那些邮件列表一样,主站点似乎已关闭。在当今时代,检查 GitHub 是很好的第二步,我发现https://github.com/file/file- 其中说 文件 CVS 存储库的只读镜像,每半小时更新一次。注意:不要在此处提出拉取请求,也不要评论任何提交,请以常规方式将它们提交到错误跟踪器或邮件列表。这不会立即有帮助,但我注意到过去一周对该回购协议进行了更改。因此,下一步可能采取的行动是查看谁进行了这些提交并联系他们。
  2. 您可以询问负责您使用的发行版中的软件包的人员。对于fileFedora 而言,请参阅这一页。由于他们定期使用该软件,因此他们可能有其他方式联系上游。根据发行版的不同,最好通过提交错误或直接联系来完成 - 您需要了解个人文化。 (在 Fedora 中,我建议开发邮件列表.)
  3. 如果您使用的是商业发行版,例如 Red Hat Enterprise Linux*,您可以提交支持票证。作为付费客户,您也许能够影响您的供应商找到解决方案。
  4. 如果一切都失败了,您感兴趣的项目可能是死上游。在这种情况下,您可以“分叉”该项目 - 创建您自己的版本,并围绕它构建一个新的上游社区。如果您的版本得到维护,而另一个版本已失效,那么发行版很可能会随之而来。

* 我在 Fedora 上工作。我受雇于红帽。

答案4

identify -format %m file.gif[0]

%m 图像文件格式(文件魔法)

[0] 表示第一帧,如果您不小心在视频上使用它,这可能会有所帮助,否则它会使用 ffmpeg 库来制作每个帧的临时副本。

这仅适用于图像。我不知道如何对通用文件执行此操作。ffmpeg 为随机 mp4 文件返回“avc1”(其他 mp4 文件可能返回不同的字符串,您仍然需要解析它),并且我没有找到从该文件到“mp4”的方法。 “avc1”不在 /usr/share/mime 中的任何位置。

ffmpeg(或等效的 ffprobe)列出了解复用器在其输出开始时使用的一些文件格式。对于 mp4 文件,它说

输入 #0, mov,mp4,m4a,3gp,3g2,mj2, 来自 . 。 。
[。 。 .]
视频:h264(主)(avc1 / 0x31637661)

对于 png 它说

输入 #0, png_pipe, 来自 . 。 。
[。 。 .]
视频:png、rgb24(pc)

相关内容