Saya baru saja menyiapkan server Ubuntu 13.10 baru dengan ruby 2.1.1 diinstal melalui rvm
.
Masalahnya adalah bahwa setiap kali saya beralih ke "rails" pengguna (pengguna saya menginstal ruby dan rails dengan) saya harus menjalankan /bin/bash --login
sebelum Ubuntu mengakui bahwa ruby, rails atau rvm
diinstal.
Semoga ada yang tahu:
- Apa yang dilakukan perintah di atas?
- mengapa saya harus menjalankannya?
- dan apa yang bisa saya lakukan untuk menyelesaikannya sekali dan untuk semua? :)
Bantuan apa pun dihargai!
su
? Atau sesuatu sepertisu -l
atausu --
?). Apa shell login untuk "rails" pengguna? Apakah Anda memodifikasi variabel PATH pengguna dan jika demikian dalam file mana (~/.profile
atau~/.bashrc
atau~/.bash_profile
atau ...?)Jawaban:
Kedengarannya seperti lingkungan yang diperlukan sistem untuk menemukan komponen ruby yang diinstal ditentukan dalam file yang hanya bisa dibaca untuk shell login. Halaman manual bash mengatakan ini tentang perbedaan antara shell login dan shell non-login:
dan
sedangkan
Karenanya jika variabel lingkungan ruby ada di dalam
/home/rails/.profile
atau/etc/profile
misalnya, mereka akan ditambahkan ke lingkungan shellsu -l rails
atausu --login rails
atau stenosu - rails
rails
masuk melalui SSHbash --login
setelah masukJika Anda ingin lingkungan ruby ditetapkan terlepas dari bagaimana Anda beralih ke pengguna
rails
, Anda bisa memindahkan definisi variabel yang relevan ke pengguna~/.bashrc
.sumber
Saya tahu bahwa pertanyaan ini ditanyakan 2 tahun lalu, tetapi jika seseorang (seperti saya) masih menghadapinya: @steeldriver benar - Anda kehilangan sesuatu
bashrc
yang Anda miliki di salah satu dari 3 file tersebut. Dalam kasus saya, saya hanya perlu menambahkan baris ini ke baris saya~/.bashrc
:sumber