Menjalankan ' sudo gem list --local
' dan ' gem list --local
' memberi saya hasil yang berbeda. Jalur permata saya disetel ke folder beranda dan hanya berisi permata dari ' gem list --local
'.
Mungkin tidak baik untuk menginstal permata di direktori yang berbeda di komputer saya, jadi haruskah saya menetapkan jalur permata yang berbeda, dan haruskah saya selalu menggunakan sudo
ketika menginstal sesuatu?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
~ / .bash_profile kosong.
ruby-on-rails
ruby
macos
rubygems
raphael_turtle
sumber
sumber
sudo gem install rails
bukangem install rails
.sudo
adalah pistol yang dimuat mengarah ke kaki Anda. Menggunakannya tanpa memahami apa fungsinya dan bagaimana hal itu dapat memengaruhi sistem Anda seperti menarik pelatuk dengan mata tertutup. Anda mungkin menembak lubang di kaki Anda, Anda mungkin tidak, tetapi bagaimanapun Anda tidak ingin mengambil risiko kecuali Anda tahu cara membatalkan kerusakan. Menggunakan tulisansudo
ke dalam Ruby yang dimiliki sistem, yang, pada Mac OS, dipasang oleh Apple untuk penggunaan mereka sendiri. Kita dapat mendukungnya, tetapi mengubah hal yang salah dapat merusak kode mereka. Itu sebabnya kami memasang dari sumber atau menggunakan yang lain untuk memasang di mana kami dapat men-tweak dengan aman.Jawaban:
Berlawanan dengan semua posting lainnya yang saya sarankan TIDAK gunakan
sudo
saat memasang permata.Sebaliknya saya sarankan Anda menginstal RVM dan memulai kehidupan yang bahagia dengan rumah permata portabel dan versi Ruby yang berbeda semua hidup di bawah satu atap.
Untuk yang belum tahu, dari dokumentasi :
Alasan mengapa menginstal permata dengan
sudo
lebih buruk dari sekedargem install
karena menginstal permata untuk SEMUA PENGGUNA sebagairoot
. Ini mungkin baik-baik saja jika Anda satu-satunya orang yang menggunakan mesin, tetapi jika Anda tidak melakukannya dapat menyebabkan keanehan.Jika Anda memutuskan untuk membuang semua permata Anda dan mulai lagi, itu jauh lebih mudah, dan lebih aman, untuk melakukannya sebagai pengguna non-root.
Jika Anda memutuskan ingin menggunakan
RVM
maka menggunakansudo
akan menyebabkan semua jenis keanehan karena setiap versi Ruby yang Anda instalRVM
memiliki GEM_HOME sendiri.Juga, menyenangkan jika Anda dapat membuat lingkungan pengembangan Anda sedekat mungkin dengan lingkungan produksi Anda, dan dalam produksi Anda kemungkinan besar akan menginstal permata sebagai pengguna non-root.
sumber
Anda juga dapat memasang permata di lingkungan lokal Anda (tanpa
sudo
) denganSaya menyarankan agar Anda tidak mengacaukan konfigurasi tingkat sistem Anda meskipun itu komputer pengguna tunggal.
Anda dapat memeriksa ke mana permata pergi dengan melihat gempaths dengan
gem environment
. Dalam kasus saya ini "~ / .gem / ruby / 1.8".Jika Anda memerlukan beberapa binari dari instalasi lokal yang ditambahkan ke path Anda, Anda dapat menambahkan sesuatu ke bashrc Anda seperti:
(dari http://guides.rubygems.org/faqs/#user-install )
sumber
rake install
dan untuk memperbaiki sudo isse, saya harus menambal/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rb
menambahkan secara manual di--user-install
sana. Tidak dapat menemukan solusi yang lebih baik, karena sepertinyarake install
tidak menerima parameter tambahan.Lebih baik lagi, masukkan
--user-install
file ~ / .gemrc Anda sehingga Anda tidak perlu mengetiknya setiap waktusumber
Jika Anda
tambahkan yang berikut ke
.bash_profile
:Buka tab baru di Terminal ATAU
source ~/.bash_profile
dan Anda siap berangkat!sumber
Terkait (untuk pengguna bundler), jika Anda menginginkan alternatif yang lebih ringan untuk RVM yang akan meletakkan semuanya dalam direktori terkenal khusus pengguna, saya sarankan menggunakan:
jika Anda ingin memasang permata ke tempat yang sama itu
akan menginstalnya,
.gem/ruby/RUBYVERSION
di homedir Anda. (Lihat komentar lain tentang pertanyaan ini tentang--user-install
.)Ini akan membuat permata terlihat
gem list
, dihapus melaluigem uninstall
, dll. Tanpa perlusudo
akses. Skrip runnable yang diinstal oleh gem atau bundler dapat dimasukkan ke jalur Anda dengan menambahkanuntuk Anda
$PATH
.gem
itu sendiri memberi tahu Anda tentang ini jika tidak disetel saat Anda melakukannyagem install --user-install
.sumber
akan memasang permata Anda secara global , yaitu permata akan tersedia untuk semua konteks pengguna.
sumber
Anda dapat menginstal permata ke folder tertentu (misalnya vendor /) di aplikasi Rails Anda menggunakan:
sumber