Pertanyaan Bagaimana cara menggunakan permata dengan Ubuntu?


Saya baru saja meng-upgrade ke Ubuntu 9.04 dan saya memiliki masalah menggunakan permata. Saya telah menginstal Ruby, Rubygems dan Rails menggunakan apt-get. Itu rails perintah tidak berfungsi.

Saya kemudian menginstal capistrano dan permata lainnya, seperti heroku. Untuk melakukan itu, saya menggunakan perintah:

sudo gem install XXX

Ketika saya ingin menggunakan cap perintah itu tidak berfungsi:

bash: cap: command not found

Ini sama dengan perintah gem lainnya.

Apakah saya memiliki sesuatu yang khusus untuk dilakukan agar perintah gem bekerja?


76
2018-05-26 08:55


asal


Jawaban:


Di mana Permata saya?

Anda dapat menemukan tempat permata Anda disimpan menggunakan gem environment perintah. Sebagai contoh:

chris@chris-laptop:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.2

  - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/chris/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:

Jika Anda melihat bagian "PATEN GEM::" Anda dapat melihat bahwa permata dapat disimpan di dua tempat di laptop saya: /usr/lib/ruby/gems/1.8 atau di .gem direktori di direktori home saya.

Anda juga dapat melihat bahwa file yang dapat dieksekusi disimpan dalam DIREKTORI DIKSEKUTI yang dalam hal ini adalah /usr/bin.

Karena /usr/bin di jalur saya ini memungkinkan saya menjalankan cap, merb, rails dll.

Memperbarui PATH Anda

Jika karena alasan tertentu, DIREKTORI YANG TIDAK DAPAT DIKECUALIKAN tidak ada di jalur Anda (misalnya jika /var/lib/gems/1.8/bin), maka Anda perlu memperbarui variabel PATH Anda.

Dengan asumsi Anda menggunakan bash shell. Anda dapat melakukan ini dengan cepat untuk sesi saat ini dengan mengetikkan perintah berikut di shell prompt; mari berpura-pura bahwa Anda ingin menambahkan /var/lib/gems/1.8/bin ke jalan:

export PATH=$PATH:/var/lib/gems/1.8/bin

dan tekan kembali. Itu menambahkan direktori baru ke ujung jalur saat ini. Perhatikan titik dua di antara $PATH dan /var/lib/gems/1.8/bin

Untuk mengatur nilai untuk semua sesi, Anda harus mengeditnya .profile atau .bashrc file dan tambahkan baris yang sama ke akhir file. Saya biasanya mengedit .bashrc file tanpa alasan selain itu yang selalu saya lakukan. Setelah selesai, simpan file dan kemudian segarkan lingkungan Anda dengan mengetik:

bash

pada prompt shell. Itu akan menyebabkan .bashrc untuk membaca ulang.

Pada titik mana pun Anda dapat memeriksa nilai saat ini $PATH dengan mengetik

echo $PATH

pada prompt shell.

Berikut ini contoh dari salah satu server saya sendiri, di mana nama pengguna saya adalah "chris" dan nama mesinnya adalah "chris-laptop":

chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$ 
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 

Permata Saya tidak mau memuat!

"Permata Ruby tidak akan dimuat meski sudah dipasang"menyoroti masalah umum menggunakan beberapa versi Ruby yang berbeda; Kadang-kadang lingkungan Gem dan jalur Permata tidak sinkron:

rb(main):003:0> Gem.path

=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit

Setiap proses Ruby di sini hanya mencari di satu tempat untuk Permata-nya.

:~/$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
  - EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1
     - /home/mark/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Perhatikan dengan teliti pada output lingkungan permata:

  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1

Ini bukan jalan yang sama seperti yang dikembalikan oleh Gem.path:

["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]

Sulit untuk mengatakan apa yang sebenarnya disebabkan lib/ruby untuk berubah menjadi lib/ruby1.9 tetapi kemungkinan besar pengembang bekerja dengan beberapa versi Ruby. Cepat mv atau ln akan memecahkan masalah.

Jika Anda perlu bekerja dengan beberapa versi Ruby maka Anda benar-benar harus menggunakan rvm.


138
2018-05-26 10:23



Seperti dicatat oleh @Chris Anda perlu menambahkan lingkungan permata ke jalan Anda. Anda dapat melakukan ini dengan:

echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc

5
2017-08-08 20:09



Folder tempat permata berada disimpan harus di PATH Anda, misalnya saya adalah:

/home/victor/.gem/ruby/1.8/bin

Periksa jalan Anda dengan mengetik

echo $PATH

3
2018-05-26 09:07



Itu melihat bahwa ketika menginstal rubygems, sekarang di ubuntu 9.04, saya punya masalah ini. Saya perhatikan bahwa di "gem environment" direktori executable adalah "/var/lib/gems/1.8/bin", bukannya "/ usr / bin" ... Ini masalah dengan rubygems atau dengan ubuntu 9.04 ??

Solusi yang saya temui adalah menambahkan "/var/lib/gems/1.8/bin" ke $ PATH saya melakukan ini: ekspor PATH = $ PATH: /var/lib/gems/1.8/bin Tapi itu tidak disimpan ... bagaimana saya bisa menyelamatkan jalan saya?

Terima kasih...

Resolvi: coloquei o ekspor PATH = $ PATH: /var/lib/gems/1.8/bin no ~ / .bashrc! =]


1
2018-05-27 00:02



mkmf adalah bagian dari paket ruby1.9.1-dev. Paket ini berisi file header yang diperlukan untuk pustaka ekstensi untuk Ruby 1.9.1. Anda perlu menginstal paket ruby1.9.1-dev dengan melakukan:

sudo apt-get install ruby1.9.1-dev


0
2018-04-02 11:36