Як встановити конкретну версію коштовного каменя?


884

Як за допомогою інструменту командного рядка gemможна встановити конкретну версію дорогоцінного каміння?

Відповіді:


1157

Використовуйте -vпрапор:

$ gem install fog -v 1.8

59
Якщо ви, як і я, раніше встановили більш пізню версію вашого дорогоцінного каміння, тоді ви повинні видалити більш пізню версію, наприклад, з gem uninstall fog. Він попросить вас, яку версію видалити, якщо у вас є декілька.
— Дізлі

3
У мене є 3 версії граблі: gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. У мене з'явився проект рейки 2.3.5 і ще одна, яка є 3.0, над якою я працюю одночасно .. як я можу використовувати конкретну версію граблі для кожного проекту (тобто для команди рядок?)
— абат

@abbood rake _10.1.1_ ...повинен працювати, бо хто хоче знати :)
— Koen.

Варто зазначити, що це, мабуть, не впливає на виконувані файли бінарних файлів. Однак видалення попередньої версії працювало для двійкових файлів.
— Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Ще раз, бажаючи, щоб я міг зробити кілька оновлень. Можливо, якби їх треба було розлучити хоча б на рік. :)
— Дон Бренсон

192

Використовуйте --versionпараметр (ярлик -v):

$ gem install rails -v 0.14.1

Ви також можете використовувати компаратори версій типу >=або~>

$ gem install rails -v '~> 0.14.0'

Або з новішими версіями дорогоцінного каміння навіть:

$ gem install rails:0.14.4 rubyzip:'< 1'
…
Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

Це працювало для ~>, але що робити, якщо у вас ситуація '<0,9,> = 0,7'? Я спробував застосувати два аргументи v, і, здається, перший ігнорований. Використання розділювача кома навіть не розбере. Я в кінцевому підсумку видалив більше, ніж вимога, і трапилося встановити прийнятну версію, але мати формальне рішення було б непогано.
— Джозеф Коко

Що означає компаратор версій ~>?
— Драгас

Це означає , що остання цифра може зростати , ( stackoverflow.com/questions/5170547 / ... )
— schmijos

93

Для встановлення gem install gemname -v versionnumber

Для видалення gem uninstall gemname -v versionnumber


80

для Ruby 1.9+ використовуйте двокрапку ..

gem install sinatra:1.4.4 prawn:0.13.0

який самоцвіт (і яку версію) ви намагаєтесь встановити?
— Кокідзу

скажіть, будь ласка, результат gem sources, якщо він порожній, додайте репо, використовуючи цю команду:gem sources -a https://rubygems.org/
— Kokizzu

мої gem -vшоу 1.8.23проти ваших 2.2.2. Схоже, ця функція нова :)
— kolypto

Ruby 1.8 вже закінчується підтримкою ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
— Kokizzu

24

Як зазначали інші, загалом використовуйте -vпрапор для gem installкоманди.

Якщо ви розробляєте дорогоцінний камінь локально, після вирізання дорогоцінного каміння зі свого gemspec:

$ gem install gemname-version.gem

Якщо припустити версію 0.8, це виглядатиме так:

$ gem install gemname-0.8.gem

3
Чудова відповідь. Я пропоную вам додати ще один блок коду для параметра "-v" прапор. Коли мої очі прочитали відповідь, вони негайно перейшли до кодових блоків, а не до тексту, що його оточує. Якщо інші зроблять те саме, вони пропустять частину "-v".
— CamHart

8

Linux

Щоб встановити іншу версію ruby, перевірте останню версію пакета, використовуючи, aptяк показано нижче:

$ apt-cache madison ruby
      ruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
      ruby |        4.5 | http://ftp.uk.debian.org/debian/ squeeze/main amd64 Packages

Потім встановіть його:

$ sudo apt-get install ruby=1:1.9.3

Щоб перевірити, яка поточна версія, запустіть:

$ gem --version # Check for the current user.
$ sudo gem --version # Check globally.

Якщо версія все ще стара, ви можете спробувати переключити її на нову, використовуючи менеджер версій ruby ​​( rvm):

rvm 1.9.3

Примітка. Ви можете встановити префікс, sudoякщо він rvmбув встановлений у всьому світі. Або запустіть, /usr/local/rvm/scripts/rvmякщо ваша команда rvmне у вашій глобальній PATH. Якщо процес установки rvm не вдався, див. Розділ усунення несправностей.


Вирішення проблем:

  • Якщо у вас все ще є стара версія, ви можете спробувати встановити rvm (ruby manager manager) через:

    sudo apt-get install curl # Install curl first
    curl -sSL https://get.rvm.io | bash -s stable --ruby # Install only for the user.
    #or:# curl -sSL https://get.rvm.io | sudo bash -s stable --ruby # Install globally. 

    тоді, якщо встановлено локально (лише для поточного користувача), завантажте rvm через:

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3

    якщо в усьому світі (для всіх користувачів), то:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • якщо у вас все ще виникають проблеми з новою версією ruby, спробуйте встановити її rvm через:

    source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3 # Locally.
    sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3" # Globally.
  • якщо ви хочете встановити деякі дорогоцінні камені в усьому світі, а у вас вже встановлений rvm, ви можете спробувати:

    rvmsudo gem install [gemname]

    замість:

      gem install [gemname] # or:
      sudo gem install [gemname]

Примітка. Для роботи з дорогоцінними каменями RVM бажано НЕ використовувати судо. Коли ви робите sudo, ви запускаєте команди як root, інший користувач в іншій оболонці і, отже, вся установка, яку RVM зробив для вас, ігнорується, поки команда працює під sudo (такі речі, як GEM_HOME тощо). Отже, ще раз зазначимо, щойно ви "судо" ви працюєте як користувач кореневої системи, який очистить ваше оточення, а також усі створені ним файли не можуть бути змінені вашим користувачем, і це призведе до дивних речей.

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