Як оновити Ruby до 1.9.x на Mac?


107

Я створив новий обліковий запис користувача на своєму mac, і я намагаюся оновити до поточної версії ruby ​​на ньому (1.9.2) із снігового барса за замовчуванням 1.8.7. Чи може хтось вказати мені на підручник або пояснити найкращий метод оновити Ruby на моєму комп'ютері з 1.8 до 1.9.2? Дякую

Відповіді:


66

Я настійно підкажу про rvm .

Це прекрасний спосіб керувати кількома наборами рубінів та дорогоцінних каменів, не стикаючись із системною версією.


Додам, що зараз (02.02.2013) я багато використовую rbenv , тому що мої потреби прості. RVM чудовий, але він має багато можливостей, які мені ніколи не потрібні, тому я маю його на деяких машинах і rbenv на своєму робочому столі та ноутбуці. Варто перевірити обидва і побачити, що найкраще підходить для ваших потреб.


Домовились. І навіть якщо кілька версій не є проблемою (га!), Rvm відмінно підходить для того, щоб дізнатися, які рідні бібліотеки відсутні. Досить незамінний.
Ісаак Рабінович

198

Як пропонує Tin Man (вище), RVM ( Ruby Version Manager ) є стандартом для модернізації вашої установки Ruby на OSX: https://rvm.io

Для початку відкрийте вікно терміналу та видайте таку команду:

\curl -L https://get.rvm.io | bash -s stable --ruby

(вам потрібно буде довіряти команді Dev RVM, що команда не є зловмисною - якщо ви параноїдальний пінгвін, як я, ви завжди можете прочитати джерело : https://github.com/wayneeseguin/rvm ) Коли це буде завершено вам потрібно перезапустити термінал, щоб rvmкоманда працювала.

rvm list known

(показує найновіші доступні версії Ruby)

rvm install ruby-2.3.1

Для конкретної версії, за якою слідує

rvm use ruby-2.3.1

або якщо ви просто хочете останню (поточну) версію:

rvm install current && rvm use current

(встановлюється поточний стабільний випуск - під час написання ruby-2.3.1 - будь ласка, оновіть цю вікі, коли випустяться нові версії)

Зверніть увагу на Компіляція Рубі : У моєму випадку я також повинен був встановити Homebrew http://mxcl.github.com/homebrew/ , щоб отримати дорогоцінні камені , мені потрібно ( RSpec ) , які в свою чергу , змушує вас встановити Xcode (якщо ви ще не ) https://itunes.apple.com/us/app/xcode/id497799835 ТА / АБО встановіть пакет GCC з: https://github.com/kennethreitz/osx-gcc-installer, щоб уникнути помилок під час " make ".

Редагувати: З Mavericks ви можете встановити лише інструменти командного рядка Xcode замість всього пакету Xcode, який постачається з gcc та багатьма іншими речами, які можуть знадобитися для створення пакетів. Його можна встановити, запустивши xcode-select --installта слідуючи на екранній підказці.

Зверніть увагу на помилки : якщо під час спроби цієї команди ви отримаєте помилку " RVM не є функцією ", відвідайте: Як змінити свою версію Ruby за допомогою RVM? для рішення.


Встановлення всього цього на гірському леві вимагає багато терпіння. Якщо ви зіткнулися з помилкою "Помилка запуску 'env GEM_PATH = / Користувачі / ...", це не ваші шляхи, і ви побачите в журналі, що відкриваючий файл (який, можливо, встановлений), знаходиться в RVM, і вони забезпечують сторінка щодо роботи через нього rvm.io/packages/openssl
Ділан Валаде

4
Я справді ненавиджу безлад, який є Рубі. Це суперечка. Однак ця відповідь привела мене в правильний шлях і дуже дякую за це!
Ян Льюїс

1
Блукаючи між повідомленнями, які призводять мене до інших проблем, я вважаю це дуже корисним, оскільки воно пояснює, як користуватися RVM, а не тільки ним користуватися.
Гектор Ордонез

19

З пивом це однолінійний:

(якщо припустити, що ви натиснули домашню мову / версії, що можна зробити запустивши brew tap homebrew/versions)

brew install ruby193

Я працював з коробки для мене на OS X 10.8.4. Або якщо ви хочете 2.0, ви простоbrew install ruby

Більш загально, brew search rubyви показуєте різні доступні репости, і якщо ви хочете отримати дійсно конкретні, ви можете використовувати brew versions rubyта оформити певну версію замість цього.


1
Відмінна однолінійка для встановлення конкретної версії рубіну! перемикання між версіями рубіна з варивом не так просто ... stackoverflow.com/questions/8730676
nelsonic

4

Я знаю, що це старіший пост, але я хочу додати додаткову інформацію про це. По-перше, я думаю, що rvmце чудово, але НЕ було оновлення рубіну з моєї системи (MAC OS Yosemite).

Що rvmробив: встановлення в інше місце і встановлення шляху до моєї змінної середовища ... І мені було набридло, бо в мене зараз два рубіни.

Отже, щоб виправити це, я видалив rvm, а потім застосував доступний тут менеджер пакунків Homebrew і встановив команду терміналу для рубання терміналів brew install ruby.

І тоді, все працювало чудово! Рубін з моєї системи було оновлено! Сподіваємось, це допоможе наступним авантюристам!


1
Я з усіх сил намагався вирішити, чи слід використовувати rvmчи brew. це допомагає. дякую
unifreak

Не варить також те ж саме?
анонім

3

Я не погоджусь із тут. Я вважаю, що rbenv є кращим перед RVM. rbenvне впливає різко на вашу оболонку, як це робить RVM, і вона дозволяє додавати окремі установки Ruby в звичайні папки, які ви можете безпосередньо перевірити. Це дозволяє самостійно скласти Ruby. Добре окреслити відмінності тут: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

Я надаю інструкції зі складання Ruby 1.9 для rbenv тут . Більш детальна інформація тут . Я використовував цю техніку з легким успіхом на Сніжному Леопарді, Леві та Гірському Леві.


1
У той час, коли це питання було задано спочатку, rbenv не був варіантом. Часи змінюються, як і код. RVM все ще є хорошим вибором, але він важкий порівняно з rbenv. Я використовую обидва на різних машинах, оскільки вони обидва корисні по-різному.
Олов'яний чоловік

2

Стаття Hivelogic Дана Бенджаміна Встановлення Ruby, RubyGems та Rails на сніговому леопарді - це рекомендоване місце, хоча стаття для 1.8, тому ось для Snow Leopard специфічно встановлено Ruby 1.9 . Слідкуйте за 64-бітною річчю ... або перейдіть всі 64-бітні "жири" (як це, наприклад, Apache на OS X, що може спричинити проблеми з 32-бітовими бібліотеками) або перевірте будь-які дорогоцінні камені, які ви ймовірно використовувати, щоб переконатися, що вони добре для 64-розрядних.



0

Як уже згадувалося раніше, версія пакувального пристрою може бути занадто високою для вашої версії рейок.

Я зіткнувся з тією ж проблемою за допомогою Rails 3.0.1, який вимагає Bundler v1.0.0 - v1.0.22

Перевірте версію свого постачальника, використовуючи: gem list bundler

Якщо версія вашого постачальника не в межах відповідного діапазону, я знайшов це рішення: rvm @global do gem uninstall bundler

Примітка: для цього рішення потрібен rvm ... інший випадок, чому ви повинні використовувати rvm в першу чергу.


0

Є кілька інших менеджерів версій, які слід розглянути, дивіться декілька прикладів, і той, який там не вказаний, що я спробую скоро спробувати, це ch-ruby . Я спробував rbenv, але у нього було занадто багато проблем. RVM - це моя опора, хоча іноді виникає дивна проблема (звідси моє бажання спробувати ch-ruby, коли я отримаю шанс). Я б не торкався системи Ruby, оскільки інші речі можуть на неї покладатися.

Варто додати, що я також декілька разів склав власну Рубі, і використовувати статтю Hivelogic (як запропонував Дейв Еверітт) є хорошою ідеєю, якщо ви скористаєтесь цим маршрутом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.