Bagaimana cara memasang permata ruby ​​versi tertentu?

884

Dengan menggunakan gemalat baris perintah, bagaimana saya bisa menginstal versi permata tertentu?

mjs
sumber

Jawaban:

1158

Gunakan -vbendera:

$ gem install fog -v 1.8
mjs
sumber
60
Jika, seperti saya, Anda sebelumnya telah menginstal versi permata Anda yang lebih baru, maka Anda harus menghapus instalan versi yang lebih baru dengan mis gem uninstall fog. Ini akan menanyakan versi mana yang akan dihapus jika Anda memiliki lebih dari satu.
Dizzley
3
saya punya 3 versi rake: gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. saya mendapat proyek rail 2.3.5 dan yang lainnya adalah 3.0 yang sedang saya kerjakan pada saat yang sama .. bagaimana saya menggunakan versi rake tertentu untuk setiap proyek (mis. pada perintah line?)
abbood
@abbood rake _10.1.1_ ...harus bekerja, untuk siapa pun yang ingin tahu :)
Koen.
Perlu dicatat bahwa ini tampaknya tidak mempengaruhi biner yang dapat dieksekusi. Menghapus instalasi versi sebelumnya berfungsi untuk binari.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Sekali lagi, berharap saya bisa melakukan banyak upvotes. Mungkin jika mereka harus berpisah setidaknya satu tahun. :)
Don Branson
192

Gunakan --versionparameter (pintasan -v):

$ gem install rails -v 0.14.1

Anda juga dapat menggunakan pembanding versi seperti >=atau~>

$ gem install rails -v '~> 0.14.0'

Atau dengan versi permata yang lebih baru:

$ gem install rails:0.14.4 rubyzip:'< 1'

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9
schmijos
sumber
Ini bekerja untuk ~>, tetapi bagaimana jika Anda memiliki tipe situasi '<0,9,> = 0,7? Saya mencoba menerapkan dua argumen v dan tampaknya seolah-olah yang pertama diabaikan. Menggunakan pemisah koma bahkan tidak akan diuraikan. Saya akhirnya menghapus lebih besar dari persyaratan dan kebetulan menginstal versi yang dapat diterima, tetapi memiliki solusi formal akan lebih baik.
Joseph Coco
Apa artinya pembanding versi ~>?
Dragas
Ini berarti bahwa digit terakhir dibiarkan tumbuh ( stackoverflow.com/questions/5170547/… )
schmijos
93

Untuk menginstal gem install gemname -v versionnumber

Untuk mencopot pemasangan gem uninstall gemname -v versionnumber

Emjey
sumber
80

untuk Ruby 1.9+ gunakan titik dua ..

gem install sinatra:1.4.4 prawn:0.13.0
Kokizzu
sumber
permata apa (dan versi apa) yang Anda coba pasang?
Kokizzu
tolong beri tahu saya output gem sources, jika kosong, tambahkan repo menggunakan perintah ini:gem sources -a https://rubygems.org/
Kokizzu
gem -vpertunjukkan saya 1.8.23versus 2.2.2. Sepertinya fitur ini baru :)
kolypto
Ruby 1.8 sudah merupakan akhir dari dukungan ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu
24

Seperti yang telah dicatat orang lain, secara umum gunakan -vbendera untuk gem installperintah.

Jika Anda mengembangkan permata secara lokal, setelah memotong permata dari gemspec Anda:

$ gem install gemname-version.gem

Dengan asumsi versi 0.8, akan terlihat seperti ini:

$ gem install gemname-0.8.gem
thelostspore
sumber
3
Jawaban yang bagus Saya sarankan Anda menambahkan blok kode lain untuk opsi flag "-v". Ketika mata saya membaca jawabannya, mereka langsung pergi ke blok kode dan bukan teks yang mengelilinginya. Jika orang lain melakukan hal yang sama, mereka akan kehilangan bagian "-v".
CamHart
8

Linux

Untuk menginstal versi ruby ​​yang berbeda, periksa versi terbaru dari paket menggunakan aptseperti di bawah ini:

$ 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

Kemudian instal:

$ sudo apt-get install ruby=1:1.9.3

Untuk memeriksa apa versi saat ini, jalankan:

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

Jika versi ini masih lama, Anda dapat mencoba untuk beralih ke versi yang baru dengan menggunakan manajer versi ruby ​​( rvm) dengan:

rvm 1.9.3

Catatan: Anda dapat mengawali dengan sudojika rvmdiinstal secara global. Atau jalankan /usr/local/rvm/scripts/rvmjika perintah Anda rvmtidak ada di global Anda PATH. Jika proses instalasi rvm gagal, lihat bagian troubleshooting.


Penyelesaian masalah:

  • Jika Anda masih memiliki versi lama, Anda dapat mencoba menginstal rvm (manajer versi ruby) melalui:

    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. 

    kemudian jika dipasang secara lokal (hanya untuk pengguna saat ini), muat rvm melalui:

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

    jika secara global (untuk semua pengguna), maka:

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • jika Anda masih mengalami masalah dengan versi ruby ​​yang baru, cobalah untuk menginstalnya dengan rvm melalui:

    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.
  • jika Anda ingin memasang beberapa permata secara global dan Anda sudah menginstal rvm, Anda dapat mencoba:

    rvmsudo gem install [gemname]

    dari pada:

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

Catatan: Lebih baik TIDAK menggunakan sudo untuk bekerja dengan permata RVM. Ketika Anda melakukan sudo Anda menjalankan perintah sebagai root, pengguna lain di shell lain dan karenanya semua pengaturan yang telah dilakukan RVM untuk Anda diabaikan sementara perintah berjalan di bawah sudo (hal-hal seperti GEM_HOME, dll ...). Jadi untuk mengulangi, segera setelah Anda 'sudo' Anda berjalan sebagai pengguna sistem root yang akan membersihkan lingkungan Anda serta semua file yang dibuatnya tidak dapat dimodifikasi oleh pengguna Anda dan akan mengakibatkan hal-hal aneh terjadi.

kenorb
sumber