我.tar.gz
在 Windows 中生成了一个文件,其中包含一些通过 Linux 设备更新固件的文件。更新失败,一位同事提到问题是因为没有.tar.gz
达到Linux signing
预期的效果。。。这真的是一件事吗?我不得不假设是这样,但我很好奇。我知道 text/xml 文件需要有Unix LF
EOL
约定 vs Windows CRLF
,我怀疑我最初的尝试失败了,因为我最初忘记了这一点。
.tar.gz
这里的主要问题是中创建的文件是否与Windows
中创建的文件相同Linux
,如果是,如何以Windows Environment
编程方式检测/修改此信息?Linux Signed
当我自己的研究中似乎没有相关数据时,Windows 中是否有一种编程方式来检测/强制 .tar.gz 文件为“ ”,或者这是我同事的误解?(谷歌搜索任何.tar.gz
相关的内容都会Windows
针对这个特定问题产生许多无用的文章......
以下是我在 Windows 操作系统中可以找到的关于所使用的不同文件的最佳信息。。。
我在 7-Zip 中制作了初始包,里面的文件在嵌入的 .tar 中显示为 -rwxrwxrwx,.tar 本身显示FAT
为Host OS
接下来,我使用新命令重新制作了包Windows Tar
(整洁!!)7-Zip 显示了里面的文件,所以-rw-rw-rw-
我假设它们是可读写的。使此过程正常运行所需的所有其他约定。除了权限之外,唯一的区别是Host OS
显示Unix
。
然后,我的同事给了我一个由我们的软件团队制作的实用程序,该实用程序生成的软件包与我制作的软件包几乎相同。有一些区别 - 里面的文件-rw-r--r--
和Host OS
列出的文件与FAT
7-Zip 一样。
尽管我的第二次尝试“有效”,但仍然发生了一些奇怪的问题,他再次坚称这是因为 .tar.gz 文件不是 .tar.gz 文件Linux Signed
。。。我在这里所说的有点误导,但想确认这是否真的是一件事,如果是这样,如何以编程方式检测/强制文件是可以通过 or 来.tar.gz
完成的Linux Signed?
吗?我对/相当熟悉,但还不太熟悉。CMD
PowerShell
VB.Net
c#
Batch
根据同事的说法,第一个文件是“只读”的 - 假设这是因为它位于CRLF EOL
Linux 系统中,并且我相信主要问题是这个。我还认为“奇怪”的事情是由于我尝试再次推送同一个包而发生的。(我相信我们的系统没有内置机制来检查它是否与之前和之后的版本相同,因此它永远不会完成......)
很难知道你的同事是否把某件事的名字写错了或者根本就是错误的。
“签名”几乎肯定是指对某物进行数字签名,为此需要有一个不分发给每个人的密钥。
Linux 没有任何数字签名证明它来自 Linux。如果存在这样的东西,则需要将其放置在每台 Linux 机器上,因此不会是秘密,因此完全没有用,也证明不了什么。没有可靠的方法来确定 tar 文件是否来自 Linux 计算机。
由于您正在讨论固件更新,因此硬件可能期望内容由某些第三方进行数字签名。也就是说,硬件可能会拒绝接受未经硬件供应商签名的任何固件。在这种情况下,硬件供应商将持有密钥,您将无法对其进行修改。这是我对你同事的评论的最接近的猜测。坦率地说,这听起来不像是你同事的意思。