MacPorts如何安装软件包?如何通过MacPorts激活Ruby安装?

Jul*_*mer 4 ruby macos shell macports

尝试使用以下命令行在我的机器(PPC,Mac OSX 10.5.7)上安装ruby19

sudo port install ruby19
Run Code Online (Sandbox Code Playgroud)

红宝石的版本没有改变

ruby -v => ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
Run Code Online (Sandbox Code Playgroud)

我假设我的Mac上安装了两个版本,但我现在如何使用最新版本?

mip*_*adi 9

默认情况下,MacPorts中的Ruby 1.9端口安装Ruby二进制文件/opt/local/bin/ruby1.9.它附加了一个1.9避免踩踏Ruby 1.8.7库和宝石,因为并非所有的宝石都与1.9兼容.所以你必须用ruby1.9(和irb1.9等)启动Ruby 1.9

如果您不想这样做,您有两种选择:

  1. 别名rubyruby1.9在你的shell配置文件.
  2. 使用+nosuffix变体安装Ruby 1.9端口.但是,请注意,如果您通过MacPorts安装了Ruby 1.8,则通过MacPorts安装Ruby 1.9而不带1.9后缀可能会导致冲突(使用宝石等).


Sim*_*olt 5

要安装两个版本,要使用特定的ruby版本,您可以指定所需版本的绝对路径.例如/ your/path/to/ruby​​或者您可以在.profile中更改PATH设置

你可以输入

which ruby
Run Code Online (Sandbox Code Playgroud)

查看当前使用的ruby可执行文件的路径.

运用

echo $PATH
Run Code Online (Sandbox Code Playgroud)

您可以看到当前的PATH设置.您必须将新ruby二进制文件的路径添加到PATH,以便在另一个之前找到它.

正如ayaz已经提到的,你的macports的默认位置是/ opt/local.如果你在你的路径前添加/ opt/local/bin应该没问题.(确保在更改后启动一个新的终端窗口 - 除非您再次明确地'获取'.profile文件,否则它们不会在当前会话中被选中)

需要注意的一点是:在将/ opt/local/bin添加到您的路径之后,shell将始终更喜欢二进制文件到稍后找到的二进制文件,如果您依赖于/ bin,/ sbin或/ usr /中的特定版本,这可能是一个问题sbin - 根据您的情况,这意味着您不应该这样做(如果您的计算机正在处理敏感数据和/或银行或其他东西)或只是要记住它可能是一个问题(如果您的计算机是正常的开发机器).

如果您需要更多关于如何在osx上设置PATH的提示,请参阅http://www.tech-recipes.com/rx/2621/os_x_change_path_environment_variable/.