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


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.