Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
MacPorts如何安装软件包?如何通过MacPorts激活Ruby安装?_Ruby_Macos_Shell_Macports - Fatal编程技术网

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

MacPorts如何安装软件包?如何通过MacPorts激活Ruby安装?,ruby,macos,shell,macports,Ruby,Macos,Shell,Macports,在尝试使用以下命令行在我的机器(PPC,Mac OSX 10.5.7)上安装ruby19之后 sudo port install ruby19 ruby的版本没有改变 ruby -v => ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] 我假设我的mac电脑上安装了两个版本,但我现在如何使用最新版本呢?我倾向于认为macports通常将其所有内容保存在/opt/local目录中。我使用的是Leopard,我把它放

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

sudo port install ruby19
ruby的版本没有改变

ruby -v => ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

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

我倾向于认为
macports
通常将其所有内容保存在
/opt/local
目录中。我使用的是Leopard,我把它放在那个目录中。您可能需要查看其中的内容,尤其是
/opt/local/bin
,以查找您要查找的
ruby
二进制文件。

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

你可以打字

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

使用

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

正如ayaz已经提到的,macports内容的默认位置是/opt/local。如果在路径前面添加/opt/local/bin,应该可以。(确保在更改后启动一个新的终端窗口-除非您再次明确地“源”该.profile文件,否则不会在当前会话中拾取它们)

需要注意的是:在将/opt/local/bin预先添加到您的路径之后,shell将始终更喜欢其中的二进制文件,而不是稍后找到的二进制文件。如果您依赖于/bin、/sbin或/usr/sbin中的特定版本,这可能会成为一个问题,这取决于您的情况,这意味着您不应该这样做(如果您的计算机正在处理敏感数据和/或在银行或其他地方)或者必须记住这可能是一个问题(如果您的计算机是一台普通的开发机器)


查看您是否需要更多关于如何在osx上设置路径的提示。

只是简单说明一下。Ayaz是正确的,默认情况下,MacPorts将在/opt/local中安装东西。(如果您愿意,这使得以后可以方便地全局卸载,并且可以避免MacPorts软件包妨碍OS X软件包的安装。)

安装MacPorts时,它通常会通过更新用户的.profile来为您编辑
$PATH
(以及
$MANPATH
)(如果用户的.profile不存在,则创建它)

作为预防措施,安装程序将创建原始.profile的备份,以防您想要回滚更改(或者如果您稍后完全卸载MacPorts)。下面是一个来自工作中的随机机器的示例

admin ~ $ ls .profile* .profile .profile.macports-saved_2009-08-03_at_14:55:56 ## # Your previous /Users/admin/.profile file was backed up as /Users/admin/.profile.macports-saved_2009-08-03_at_14:55:56 ## # MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. # MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate MANPATH variable for use with MacPorts. export MANPATH=/opt/local/share/man:$MANPATH # Finished adapting your MANPATH environment variable for use with MacPorts. 管理员~$ls.profile* .profile.profile.macports-saved_2009-08-03_at_14:55:56

如果您查看.profile,您应该会看到如下内容:

admin ~ $ ls .profile* .profile .profile.macports-saved_2009-08-03_at_14:55:56 ## # Your previous /Users/admin/.profile file was backed up as /Users/admin/.profile.macports-saved_2009-08-03_at_14:55:56 ## # MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. # MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate MANPATH variable for use with MacPorts. export MANPATH=/opt/local/share/man:$MANPATH # Finished adapting your MANPATH environment variable for use with MacPorts. ## #您以前的/Users/admin/.profile文件已备份为/Users/admin/.profile.macports-saved_2009-08-03_于_14:55:56 ## #2009-08-03_at_14:55:56添加MacPorts安装程序:添加用于MacPorts的适当路径变量。 导出路径=/opt/local/bin:/opt/local/sbin:$PATH #已完成调整PATH环境变量以用于MacPorts。 #MacPorts安装程序的添加日期:2009-08-03_at_14:55:56:添加用于MacPorts的适当MANPATH变量。 导出MANPATH=/opt/local/share/man:$MANPATH #已完成调整MANPATH环境变量以用于MacPorts。


如果您的$PATH没有更新,您应该调整它,否则,您将无法使用
端口和通过MacPorts安装的软件。

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

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

  • 别名
    ruby
    到shell配置文件中的
    ruby1.9
  • 使用
    +nosuffix
    变量安装Ruby 1.9端口。但是,请注意,如果您通过MacPorts安装了Ruby 1.8,则通过MacPorts安装Ruby 1.9而不使用
    1.9
    后缀可能会导致冲突(与gems等)

  • thx的信息,我认为macports已经为我做了这些事情,因为当我查找它的名称时,使用ruby 1.9就像在终端导出路径中键入“ruby1.9…”一样简单=/opt/local/bin:/opt/local/sbin:$PATH添加别名的另一种方法是创建一个“bin”主文件夹中的目录,并在其中创建指向macport ruby
    ln-s/opt/local/bin/ruby1.9 ruby
    和gem
    ln-s/opt/local/bin/gem1.9 gem
    的链接,然后首先在路径
    导出路径=~/bin:$path
    中获取此链接。这样做的好处是,它将允许MacVim获取正确版本的ruby(它不识别别名,只识别$PATH)。使用
    +nosuffix
    变体的方法已被新的MacPorts语法所取代(从v2.1.3开始?):
    端口选择-设置ruby19
    。这可能适用于任何具有多个“版本”的包可用,但软件包的维护人员似乎需要单独实现对此的支持。
    select'命令设置哪些版本将不带后缀(
    /opt/local/bin/ruby`而不是
    /opt/local/bin/ruby19