Pae*_*els 11 directory installation package chocolatey
根据Windows安装规则,程序应安装到
C:\Program Files(64位程序/ x86-64)或C:\Program Files (x86)(32位程序/ x86).程序将复制到包含供应商名称和程序名称的子子文件夹中.
但是为什么Chocolatey没有安装包C:\Program Files\<Vendor>\<Program>\?
10.默认情况下,应用必须安装到正确的文件夹.
用户应该对文件的默认安装位置具有一致且安全的体验,同时保持在他们选择的位置安装应用程序的选项.还需要将应用程序数据存储在正确的位置,以允许多个人使用同一台计算机,而不会破坏或覆盖彼此的数据和设置.Windows在文件系统中提供特定位置,以存储特定于用户的程序和软件组件,共享应用程序数据和应用程序数据10.1默认情况下,您的应用必须安装在Program Files文件夹中
对于%ProgramFiles%中的本机32位和64位应用程序,以及在x64上运行的32位应用程序的%ProgramFiles(x86)%.由于为此文件夹配置了安全权限,因此绝不能将用户数据或应用程序数据存储在此位置.
来源:Windows桌面应用程序的认证要求
版本:10(2015年7月29日)
这取决于你的Chocolatey版本,它的设置和包本身.
首先,请参阅工具与应用程序和Chocolatey的区别( 底部是https://github.com/chocolatey/chocolatey/wiki/ChocolateyFAQs).
如果程序包不使用本机安装程序(工具),则取决于程序包作者是否使用了bin_root概念,该概念已启动并将在未来版本中使用.
例如,
c:/sysinternals除非您有一个已定义的$env:chocolatey_bin_root变量,否则 SysInternals将立即转到.代码中的概念将发生变化,现在这需要它成为系统驱动器的子文件夹,我不认为我们正在开发具有该限制的最终功能.如果包尚未具有该概念,则可以始终要求包作者合并它.
如果程序包使用本机安装程序(应用程序),则可以使用
installArgs将参数传递给本机安装程序(https://github.com/chocolatey/chocolatey/wiki/CommandsInstall)并告诉它安装应用程序的目录.这确实需要您知道需要传递给本机安装程序的内容.如果您希望将应用程序放在自定义目录中,则假设您已经是高级用户,因此如果您进行静默安装,则应该知道要通过安装程序的内容.
稍微转述一下:https://groups.google.com/forum/#!msg/chocolatey/uucAz8GxebA/HEPAKp69d90J
也,
注意:截至0.9.8.24,Chocolatey的默认安装位置为
C:\ProgramData\Chocolatey这减少了本地巧克力安装的攻击面,并限制了谁可以更改目录.
资料来源:https://github.com/chocolatey/chocolatey/wiki/DefaultChocolateyInstallReasoning
根据个人经验,我可以证明这个概念是一个很好的防线(正确配置,使用和理解).
PS:
正如你已经添加到您的答案,技术上的要求%ProgramFiles%和%ProgramFiles(x86)%环境变量(s其中适用).
例如,%ProgramFiles(x86)%也可以指向P:\Software\Programs\x86\(而不是C:\Program Files (x86)\).
显然有很多遗留软件(现在(重新)打包)从未使用过<vendor>路径名中的部分.
希望这可以帮助!