2

我对巧克力有点陌生,过去在 Windows 8 上安装了一些软件包,我开始喜欢它。

我注意到 Chocolatey 将软件包安装在默认的 Windows 程序目录中(即“Program Files x86”左右)。也许还有更多我想念的东西。

对于 Ruby 2.1.5 和 Ruby DevKit 的具体情况,我有几个问题:

  • 如何确保我安装了 x64 版本的 Ruby,以及使用 Chocolatey 的 Ruby DevKit?
  • 如何从巧克力中设置自定义安装目录?

我知道有一些关于更改安装目录的信息,但参数语法取决于正在安装的特定包使用的安装系统(如果有的话),在这种情况下是 Ruby 和 Ruby DevKit。我还没有找到 Windows 上 ruby​​ 和 ruby​​ devkit 的 CLI 安装字符串。任何帮助是极大的赞赏。谢谢

4

1 回答 1

3

预警

来自 *nix 的部分 Ruby 不喜欢空格。宝石就是其中之一。这不是巧克力的东西,只是一个仅供参考,以防万一您将其放入程序文件后遇到问题。它可能不会在那里工作,所以如果你遇到问题,把它移到其他地方。

如果我没记错的话,安装程序也不会真正更新权限,所以你自己确保你的权限是好的,这样你就可以运行它,例如 Program Files 是管理员可写的,除非你正在运行,否则你不会拥有管理提示(这是 UAC,它将您从非提升进程中的管理员组中删除)。

保证x64?

如果您在 64 位系统上并且软件包中包含 x64 url​​,您将获得该软件的 64 位版本,除非您专门用于-x86强制使用 32 位版本。

  • 查看 Ruby 2.1.5包文件- 我们看到 ChocolateyInstall.ps1 有这一行(注意$url64,所以我们很好):

Install-ChocolateyPackage "$packageId" 'exe' "$silentArgs" "$url" "$url64" -checksum $checksum -checksum64 $checksum64

  • 查看 Ruby2.DevKit包文件——chocolateyInstall.ps1有这一行(再次使用 x64 url​​):

Get-ChocolateyWebFile 'ruby2.devkit' "$file" -url "$url" -url64bit "$url64" -checksum "$checksum" -checksum64 "$checksum64" -checksumType "$checksumType"

自定义安装文件夹

通常你会通过本地开关来更改目录installargs。然而,由于上述已知问题,这些软件包使用 ChocolateyGet-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(注意ruby​​2
  • 检查config.ymlDevKit 文件夹中的 ruby​​ 安装,否则设置它并在 devkit 文件夹中运行ruby dk.rb install(您可能需要强制)以将其安装到 ruby​​ 中。有关详细信息,请参阅DevKit
  • 如果在 cmd.exe 中,refreshenv则关闭并重新打开 shell。
  • 现在我想说您可以安装 gems,但您仍然需要处理更新ruby​​gems.org 的 ssl 证书。我有一个关于vagrant-windows-puppet的例子。
  • 完毕。
于 2015-02-27T13:02:02.930 回答