Назад | Перейти на главную страницу

Компиляция Ruby в Mac OS X Snow Leopard

Я пытаюсь следовать этому руководству по компиляции ruby ​​и rubygems на Snow Leopard:
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 Я получаю старую версию ruby, которая была предустановлена ​​на Snow Leopard, а не ту, которую я скомпилировал.

Спасибо.

UPD:

Это содержание моего ~/.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 не получает "источник" при запуске терминала. Что может быть причиной этого?

Вы должны серьезно подумать Домашнее пиво

Терминал Apple использует ~ / .bash_profile, а не .bashrc или .profile. Да, это немного раздражает.

установите что-то подобное в свой ~/.bash_profile:

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

MacPorts уже меняет ваш $PATH в этом файле, поэтому внесите там свои изменения (MacPorts - это /opt/local дерево)