如何使用 Chocolatey 覆盖 Ruby 和 Ruby DevKit 安装目录?
How do I override the Ruby and Ruby DevKit installdir with Chocolatey?
我对chocolatey有点陌生,以前在Windows8安装过几个包,现在已经喜欢上了。
我注意到 chocolatey 将软件包安装在默认的 Windows 程序目录中(即 "Program Files x86" 左右)。也许还有更多我想念的东西。
对于 Ruby 2.1.5 和 Ruby DevKit 的具体情况,我有几个问题:
- 如何确保我使用 chocolatey 安装 Ruby 和 Ruby DevKit 的 x64 版本?
- 如何从 chocolatey 设置自定义安装目录?
我知道有一些关于更改安装目录的信息,但参数语法取决于正在安装的特定软件包使用的安装系统(如果有的话),在本例中,Ruby & Ruby 开发工具包。我还没有在 windows 上找到 ruby 和 ruby devkit 的 CLI 安装字符串。任何帮助是极大的赞赏。谢谢
预警
来自 *nix 的 Ruby 部分不喜欢空格。宝石就是其中之一。这不是 Chocolatey 的东西,只是一个 FYI,以防你在将它放入 Program Files 后 运行 遇到问题。它可能在那里不起作用,所以如果您 运行 遇到问题,请将它移到其他地方。
如果我没记错的话,安装程序也不会真正更新权限,所以你要自己确保你的权限是好的,这样你就可以 运行 例如Program Files 仅管理员可写,除非您 运行 设置管理提示(这是 UAC,它会将您从非提升进程中的 Administrators 组中删除)。
保证 x64?
如果您使用的是 64 位系统并且软件包中包含 x64 urls,您将获得该软件的 64 位版本,除非您特别使用 -x86
强制32 位版本。
- 查看 Ruby 2.1.5 package files - 我们看到 chocolateyInstall。ps1 有这一行(注意
$url64
,所以我们很好):
Install-ChocolateyPackage "$packageId" 'exe' "$silentArgs" "$url" "$url64" -checksum $checksum -checksum64 $checksum64
- 查看 Ruby2.DevKit package files - wee the chocolateyInstall.ps1 有这一行(再次使用 x64 url):
Get-ChocolateyWebFile 'ruby2.devkit' "$file" -url "$url" -url64bit "$url64" -checksum "$checksum" -checksum64 "$checksum64" -checksumType "$checksumType"
自定义安装文件夹
通常您会通过 installargs
传递用于更改目录的本机开关。然而,由于上述已知问题,这些软件包使用 Chocolatey 的 Get-BinRoot
来确定安装它们自己的位置。
Chocolatey 的 Get-BinRoot
Get-BinRoot
使用名为 ChocolateyBinRoot
的环境变量(默认设置为 $env:SystemDrive\tools
)来确定将某些不真正符合 Program Files 条件的软件放在哪里。您可以将其设置在任何您想要的位置,包括 Program Files 文件夹,它将使用该位置。
正在为 v2 安装 Ruby 和 DevKit
choco install ruby -version 2.1.5
- 如果在 cmd.exe
refreshenv
否则关闭并重新打开 shell.
choco install ruby2.devkit
(注意ruby2)
- 检查DevKit文件夹中的
config.yml
是否捡到ruby安装,否则设置它和运行ruby dk.rb install
(可能需要强制)在 devkit 文件夹中将其安装到 ruby。更多信息,请参阅DevKit。
- 如果在 cmd.exe
refreshenv
否则关闭并重新打开 shell.
- 现在我想说你可以安装 gems,但你仍然需要处理更新 ssl certificate for rubygems.org. I have an example on vagrant-windows-puppet。
- 完成。
我对chocolatey有点陌生,以前在Windows8安装过几个包,现在已经喜欢上了。
我注意到 chocolatey 将软件包安装在默认的 Windows 程序目录中(即 "Program Files x86" 左右)。也许还有更多我想念的东西。
对于 Ruby 2.1.5 和 Ruby DevKit 的具体情况,我有几个问题:
- 如何确保我使用 chocolatey 安装 Ruby 和 Ruby DevKit 的 x64 版本?
- 如何从 chocolatey 设置自定义安装目录?
我知道有一些关于更改安装目录的信息,但参数语法取决于正在安装的特定软件包使用的安装系统(如果有的话),在本例中,Ruby & Ruby 开发工具包。我还没有在 windows 上找到 ruby 和 ruby devkit 的 CLI 安装字符串。任何帮助是极大的赞赏。谢谢
预警
来自 *nix 的 Ruby 部分不喜欢空格。宝石就是其中之一。这不是 Chocolatey 的东西,只是一个 FYI,以防你在将它放入 Program Files 后 运行 遇到问题。它可能在那里不起作用,所以如果您 运行 遇到问题,请将它移到其他地方。
如果我没记错的话,安装程序也不会真正更新权限,所以你要自己确保你的权限是好的,这样你就可以 运行 例如Program Files 仅管理员可写,除非您 运行 设置管理提示(这是 UAC,它会将您从非提升进程中的 Administrators 组中删除)。
保证 x64?
如果您使用的是 64 位系统并且软件包中包含 x64 urls,您将获得该软件的 64 位版本,除非您特别使用 -x86
强制32 位版本。
- 查看 Ruby 2.1.5 package files - 我们看到 chocolateyInstall。ps1 有这一行(注意
$url64
,所以我们很好):
Install-ChocolateyPackage "$packageId" 'exe' "$silentArgs" "$url" "$url64" -checksum $checksum -checksum64 $checksum64
- 查看 Ruby2.DevKit package files - wee the chocolateyInstall.ps1 有这一行(再次使用 x64 url):
Get-ChocolateyWebFile 'ruby2.devkit' "$file" -url "$url" -url64bit "$url64" -checksum "$checksum" -checksum64 "$checksum64" -checksumType "$checksumType"
自定义安装文件夹
通常您会通过 installargs
传递用于更改目录的本机开关。然而,由于上述已知问题,这些软件包使用 Chocolatey 的 Get-BinRoot
来确定安装它们自己的位置。
Chocolatey 的 Get-BinRoot
Get-BinRoot
使用名为 ChocolateyBinRoot
的环境变量(默认设置为 $env:SystemDrive\tools
)来确定将某些不真正符合 Program Files 条件的软件放在哪里。您可以将其设置在任何您想要的位置,包括 Program Files 文件夹,它将使用该位置。
正在为 v2 安装 Ruby 和 DevKit
choco install ruby -version 2.1.5
- 如果在 cmd.exe
refreshenv
否则关闭并重新打开 shell. choco install ruby2.devkit
(注意ruby2)- 检查DevKit文件夹中的
config.yml
是否捡到ruby安装,否则设置它和运行ruby dk.rb install
(可能需要强制)在 devkit 文件夹中将其安装到 ruby。更多信息,请参阅DevKit。 - 如果在 cmd.exe
refreshenv
否则关闭并重新打开 shell. - 现在我想说你可以安装 gems,但你仍然需要处理更新 ssl certificate for rubygems.org. I have an example on vagrant-windows-puppet。
- 完成。