我的公司需要使用戴尔加密软件。
最近,放置在目录中的 Dell Encryption 跟踪器文件的残余导致 npm install
出现问题。
Dell Encryption 有 CredDB2.CEF
文件,这些文件在跟踪每个加密文件状态的目录中创建。当我 npm install request
时,我最终在创建/修改其安装的 bin 文件的依赖项中遇到错误:
npm ERR! path C:\project\node_modules\sshpk\bin\CredDB2.CEF
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall chmod
npm ERR! enoent ENOENT: no such file or directory, chmod 'C:\project\node_modules\sshpk\bin\CredDB2.CEF'npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
相关的详细日志输出是:
1254 silly build sshpk@1.13.1
1255 info linkStuff sshpk@1.13.1
1256 silly linkStuff sshpk@1.13.1 has C:\project\node_modules as its parent node_modules
1257 verbose linkBins sshpk@1.13.1
1258 verbose linkBins [ { 'CredDB2.CEF': 'bin/CredDB2.CEF',
1258 verbose linkBins 'sshpk-conv': 'bin/sshpk-conv',
1258 verbose linkBins 'sshpk-sign': 'bin/sshpk-sign',
1258 verbose linkBins 'sshpk-verify': 'bin/sshpk-verify' },
1258 verbose linkBins 'C:\\project\\node_modules\\.bin',
1258 verbose linkBins false ]
Dell Encryption 创建 CredDB2.CEF
文件作为有关加密状态的元数据,但是,在这种情况下创建的文件对典型的文件资源管理器是隐藏的(即使显示隐藏文件是启用)并且不能被使用文件完整路径的应用程序打开。
我怀疑它可能是在一个 tick 中以非隐藏的方式创建的,然后实际上隐藏在另一个 tick 中。同时,bin 的安装必须对包含 CredDB2.CEF
文件的 bin 目录执行 glob,然后在 Dell Encryption 隐藏该文件后执行 chmod
,导致错误。
我不确定这是否是应该与 Dell、NPM 或导致错误的 NPM 软件包一起升级的错误。
我已经能够在 2 台计算机上重现该错误,但并不总是如此。我怀疑不一致的复制是由于 CredDB.CEF
文件创建/隐藏时的竞争条件造成的。
如果我将我的项目安装在一个明确标记为未被 Dell 加密软件加密的目录中,则一切正常。但是从安全的角度来看,这不是一个可以接受的答案。
npm 中是否有任何选项可以忽略 CEF 文件或忽略这些特定错误?
是否可以使用任何其他解决方法?
最佳答案
按照本 support article 中的建议将 Dell Encryption 升级到版本 10.0.0.12、A31 或更高版本.这应该可以解决使用 Node 和“npm install”时看到的 CredDB.CEF 文件错误消息。
可以找到最新的戴尔加密驱动程序 here
关于node.js - 在 Windows 10 上使用 Dell Encryption 软件加密的目录中的 npm 安装失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49947151/