MacPorts如何安装软件包?如何通过MacPorts激活Ruby安装?
在尝试使用以下命令行在我的机器(PPC,Mac OSX 10.5.7)上安装ruby19之后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,我把它放
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 rubyln-s/opt/local/bin/ruby1.9 ruby
和gemln-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
)