Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用巧克力覆盖Ruby和Ruby DevKit installdir?_Ruby_Installation_Chocolatey_Ruby Development Kit - Fatal编程技术网

如何用巧克力覆盖Ruby和Ruby DevKit installdir?

如何用巧克力覆盖Ruby和Ruby DevKit installdir?,ruby,installation,chocolatey,ruby-development-kit,Ruby,Installation,Chocolatey,Ruby Development Kit,我对巧克力有点陌生,以前在Windows8上安装过一些软件包,现在我开始喜欢它了 我注意到Chocolate将软件包安装在默认的Windows程序目录中(即“ProgramFilesx86”左右)。也许我还缺少更多 对于Ruby 2.1.5和Ruby DevKit的具体案例,我有几个问题: 如何确保使用Chocolate安装x64版本的Ruby和Ruby DevKit 如何从Chocolate设置自定义安装目录 我知道有一些关于更改安装目录的信息,但是参数语法取决于正在安装的特定软件包(在本

我对巧克力有点陌生,以前在Windows8上安装过一些软件包,现在我开始喜欢它了

我注意到Chocolate将软件包安装在默认的Windows程序目录中(即“ProgramFilesx86”左右)。也许我还缺少更多

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

  • 如何确保使用Chocolate安装x64版本的Ruby和Ruby DevKit
  • 如何从Chocolate设置自定义安装目录
我知道有一些关于更改安装目录的信息,但是参数语法取决于正在安装的特定软件包(在本例中为Ruby&Ruby DevKit)使用的安装系统(如果有)。我还没有找到windows上ruby和ruby devkit的CLI安装字符串。非常感谢您的帮助。谢谢

预先警告 来自*nix的Ruby部分不喜欢空格。宝石就是其中之一。这不是一个巧克力的事情,只是一个供参考的情况下,你会遇到问题,一旦你把它放入程序文件。它可能在那里不起作用,所以如果你遇到问题,就把它移到别的地方

如果我没有记错的话,安装程序也不会真正更新权限,因此您需要自己确保您的权限是良好的,以便您可以运行它。例如,程序文件仅可由管理员写入,除非您运行管理提示,否则您将无法获得这些权限(这是UAC,它将您从非提升流程中的Administrators组中删除)

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

  • 看看Ruby 2.1.5,我们看到ChocolateInStall.ps1有这样一行(注意
    $url64
    ,所以我们很好):
安装巧克力包“$packageId”'exe'$silentArgs”“$url”“$url64”-校验和$checksum-checksum64$checksum64

  • 查看Ruby2.DevKit-chocolayinstall.ps1有以下行(再次使用x64 url):
获取巧克力webfile'ruby2.devkit'“$file”-url“$url”-url64位“$url64”-校验和“$checksum”-checksum64”$checksum64”-checksumType“$checksumType”

自定义安装文件夹 通常,您会通过
installargs
传递用于更改目录的本机开关。但是,由于上述已知问题,这些软件包使用Chocolate的
Get BinRoot
来确定自己的安装位置

巧克力有根
Get BinRoot
使用名为
chocolatebinroot
的环境变量(默认设置为
$env:SystemDrive\tools
)确定不符合程序文件要求的特定软件的放置位置。您可以随时将其设置在需要的位置,包括程序文件文件夹,它将使用该位置

安装Ruby和DevKit for v2
  • choco安装ruby-version 2.1.5
  • 如果在cmd.exe
    refreshenv
    中,则关闭并重新打开shell
  • choco安装ruby2.devkit
    (注意ruby2
  • 检查DevKit文件夹中的
    config.yml
    ,查看它是否拾取了ruby安装,否则设置它并运行DevKit文件夹中的
    ruby dk.rb install
    (您可能需要强制)将其安装到ruby中。有关更多信息,请参阅
  • 如果在cmd.exe
    refreshenv
    中,则关闭并重新打开shell
  • 现在我想说你可以安装gems,但是你仍然需要处理更新。我有一个例子
  • 完成了

Wow!感谢您提供了全面的答案,它提供了许多需要学习和消化的内容,因此我不太确定在何处编辑ChocolateBinRoot env变量。可以使用installArgs参数设置此类变量吗?这是一个Windows环境变量。要设置它,有GUI方法。大多数控制台方法不会在会话结束后保持不变。如果您搜索google for Set Environment Variable命令行persist它应该可以让您继续。@j4v1如果您觉得这是一个足够好的答案,请继续并将其标记为答案。