Ruby

在 Mac OS X Snow Leopard 上編譯 Ruby

  • June 7, 2011

我正在嘗試遵循本教程,主題是在雪豹上編譯 ruby​​ 和 ruby​​gems:http:

//hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard

我已將此添加到我的~/.profile

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

但如果我寫:echo $PATH我得到:

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

但在教程中它說:

您應該在系統返回的行的開頭看到 /usr/local/bin。

我前段時間安裝了 macports 和許多其他軟體,也許它改變了路徑。

無論如何,我已經嘗試繼續安裝,所以我建構了 ruby​​,我做到了:

./configure --enable-shared --enable-pthread CFLAGS=-D_XOPEN_SOURCE=1
make
sudo make install
cd ..

但是當我這樣做時,which ruby我得到:

/usr/bin/ruby

根據教程,這是錯誤的。另外,如果我這樣做,ruby -v我會得到預裝在 Snow Leopard 上的舊版本的 ruby​​,而不是我編譯的那個。

謝謝。

UPS:

這是我的內容~/.profile

export PYTHONPATH="/Users/m/djangocode:$PYTHONPATH"

alias hibernateon="sudo pmset -a hibernatemode 5"
alias hibernateoff="sudo pmset -a hibernatemode 3"

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

我已經刪除~/.bash_profile了,所以沒有影響。

以下是 的內容/etc/bashrc

# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
  return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize

/etc/profile

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
   eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
   [ -r /etc/bashrc ] && . /etc/bashrc
fi

我認為它們的內容是 Mac OS X 的預設值。我從來沒有碰過這些。

如果我打開終端並輸入,echo $PATH我仍然會得到:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

但如果我這樣做:source ~/.profile那麼我得到了我需要的東西:

misha-macbookpro:~ m$ . ~/.profile 
misha-macbookpro:~ m$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin

而且沒有~/.bashrc文件。

似乎~/.profile在終端啟動時沒有得到“來源”。什麼會導致這種情況?

在你的~/.bash_profile

PATH=/usr/local/bin:/opt/local/bin:/opt/local/sbin:$PATH

MacPorts 已經在更改您$PATH在該文件中的內容,因此請在此處進行修改(MacPorts 是/opt/local樹)

你應該認真考慮Homebrew

引用自:https://serverfault.com/questions/150835