Bagaimana saya bisa memasang permata lokal?

Jawaban:

288

Yup, ketika Anda melakukannya gem install, itu akan mencari direktori saat ini terlebih dahulu, jadi jika file .gem Anda ada di sana, itu akan mengambilnya. Saya menemukannya di referensi permata , yang mungkin Anda temukan berguna juga:

install permata akan menginstal permata bernama. Ini akan mencoba instalasi lokal (mis. File .em di direktori saat ini), dan jika gagal, ia akan mencoba mengunduh dan menginstal versi terbaru dari permata yang Anda inginkan.

Chris Bunch
sumber
2
Tautan berakhir dengan pengalihan tak terbatas :(
Ain Tohvri
2
Memeriksa untuk mengatakan bahwa ini bekerja untuk saya pada tahun 2019.
Charles Wood
1
ini tidak berfungsi untuk saya pada tahun 2019
iconoclast
1
Saya punya Gemfiletapi bukan .gemfile. Jadi apa .gemfile ini ? Apa yang harus dikandungnya? - Tunggu - saya mengerti. Anda berarti gem-name.gemfile. Ingat bahwa pada unix, cukup normal memiliki file yang diawali dengan '.' jadi lebih baik mengejanya.
Martin
Saya dapat mengkonfirmasi dari masa depan 2020, tautannya berfungsi untuk saya. Jika itu tidak berhasil di masa depan yang jauh, inilah snapshot
Jed Burke
329

Anda juga bisa menggunakannya gem install --local path_to_gem/filename.gem

Ini akan melewati pemindaian repositori permata yang biasa terjadi ketika Anda pergi --local.

Anda dapat menemukan sihir lain dengan gem install --help.

Jason True
sumber
Saya mengunduh permata seperti rubygems dalam format zip. Jadi tidak ada file .em di sini. Bagaimana cara saya menginstal ini dari lokal? Terima kasih.
Erran Morad
3
@ Boratagdiyev, file zip bukan permata. Seperti kebanyakan file zip, Anda perlu unzip sebelum dapat melakukan banyak hal dengannya. Jika mengandung permata, maka Anda dapat menggunakan permata instal pada file .gem yang diekstraksi. Saya tidak ingat internal format permata; mungkin saja file zip dengan header khusus, tetapi rubygems tidak mengenali file zip seperti itu.
JasonTrue
62

Anda juga dapat menggunakan nama file lengkap untuk file permata Anda:

gem install /full/path/to/your.gem

ini bekerja juga - mungkin cara termudah

lesmana
sumber
38

Jika Anda membuat permata Anda dengan bundler:

# do this in the proper directory
bundle gem foobar

Anda dapat menginstalnya dengan rake setelah ditulis:

# cd into your gem directory
rake install

Kemungkinannya, permata unduhan Anda juga akan tahu rake install.

Boris Stitnicky
sumber
3
ini sepertinya jawaban modern terbaik. jawaban yang diterima adalah dari 8 tahun yang lalu
sixty4bit
14

jika Anda mengunduh file proyek dari github atau situs host scm lainnya, gunakan gem build untuk membangun proyek terlebih dahulu, sehingga Anda bisa mendapatkan file anything.gem di direktori saat ini. Lalu instal permata itu!

hechen0
sumber
13

Jika Anda ingin mengerjakan garpu permata yang dimodifikasi secara lokal, cara terbaik untuk melakukannya adalah

gem 'pry', path: './pry'

dalam Gemfile.

... di mana ./pryakan menjadi tiruan dari repositori Anda. Cukup jalankan bundle installsekali, dan setiap perubahan dalam sumber permata yang Anda buat segera tercermin. Dengan gem install pry/pry.gem, sumber masih dipindahkan ke GEM_PATHdan Anda harus selalu menjalankan keduanya bundle gem prydan gem updateuntuk menguji.

Matthias Winkelmann
sumber
5

Pergi ke jalan di mana permata itu berada dan panggil gem install -l gemname.gem

leobelizquierdo
sumber
0

Nah, ini instalasi KERING saya:

  1. Melihat ke dalam komputer dengan permata sudah terpasang dibutuhkan dalam direktori cache (secara default: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  2. Salin semua " *.gemsfile" ke komputer tanpa permata di tempat cache gem sendiri (secara default jalur pelindung yang sama dari langkah pertama :) [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  3. Di konsol berada di cache permata (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) dan jalankan gem install anygemwithdependencieshere(dengan contoh cucumber-2.99.0)

Ini KERING karena setelah menginstal permata apa pun, secara default rubygem meletakkan file permata di direktori cache cache dan tidak masuk akal menduplikasi file thats di, lebih mudah jika Anda ingin kedua komputer memiliki versi yang sama (atau dibuat oleh aturan keamanan paranoic: v)

Sunting: Di beberapa versi ruby ​​atau rubygems, itu tidak bekerja dan memancarkan peringatan atau kesalahan, Anda dapat menempatkan permata di tempat lain tetapi tidak mendapatkan KERING, alternatif lain menggunakan perintah peluncuran terintegrasi gem serverdan menambahkan URL localhost di sumber permata, lebih lanjut informasi di: https://guides.rubygems.org/run-your-own-gem-server/

Daniel Antonio Nuñez Carhuayo
sumber
0

Anda dapat mengunduh permata dari https://rubygems.org/gems/ atau membuat permata lokal melalui bundel dan rak.

misalnya:

  • bundel gem NamaGame Anda
  • rake install

Berhati-hatilah dalam menginstal dependensi sebelum menginstal permata yang sebenarnya.

  • instal --local /pathToFolder/xxx-2.6.1.gem

Catatan: Jika menggunakan fluentd td-agent dan ruby ​​pada mesin yang sama. Pastikan untuk menggunakan perintah td-agent-td-agent-gem. td-agent memiliki Ruby sendiri.

Vinayak Mishra
sumber