Untuk 11,04, saya melakukan instalasi baru sistem saya. Bagian dari instalasi itu adalah untuk menginstal rvm , yang merupakan stick rvm.sh
in /etc/profile.d/
. Ini tidak berfungsi karena /etc/profile
(yang memuat masing-masing + r /etc/profile.d/*.sh
) tidak sedang dimuat. Menurut dokumentasi, profil hanya bersumber jika bash dijalankan saat login. Untuk memverifikasi ini, saya meminta bash --login
, setelah rvm
itu tersedia.
Ini berhasil bagi saya di versi Ubuntu sebelumnya tanpa konfigurasi apa pun. Artinya, instalasi baru 10.10 akan dengan benar sumber profil / .d.
Pertanyaan saya adalah: adakah yang saya lakukan salah, atau adakah asumsi baru yang dibuat pada Natty yang telah mematahkan ini? Solusi saya saat ini adalah untuk source /etc/profile
masuk ~/.bashrc
(yang mengerikan karena profil dimaksudkan untuk memuat sebelum bashrc, tetapi lakukan triknya).
/etc/profile
(dan dengan demikian .d's). Terima kasih atas penjelasannya - sepertinya ini membutuhkan tindak lanjut dengan rakyat rvm./etc/profile
dan~/.profile
selama login. Ini aneh karena selalu bekerja dengan versi yang lebih lama. Saya pikir ini bukan solusi tetapi solusi.Namun, ada file
/etc/bash.bashrc
yang dibaca oleh gnome-terminal dan merupakan ".bashrc file sistem-lebar untuk shell bash (1) interaktif."Panggilan saya ke fungsi rvm
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
,, masuk ke sana, dan berfungsi dengan baik untuk beberapa pengguna di sistem itu.sumber
/etc/bash.bashrc
. Ya, setidaknya di Debian / Ubuntu. Bash biasanya tidak membaca sistem bashrc lebar; debian telah menambalnya untuk melakukannya.Menginstal RVM sebagai multiuser mengharuskan pengguna untuk menjalankan perintah ini:
(karena Ubuntu tidak sumber /etc/profile.d saat login)
sumber
/etc/profile.d/
saat login karena default/etc/profile
loop melalui, dan sumber, file dalam/etc/profile.d/
. Namun, jika inirvm.sh
berisi kode untuk shell interaktif, seperti fungsi atau alias, memiliki sumber/etc/profile
tidak ada gunanya. Persiapan untuk sesi bash interaktif harus ada di.bashrc
.jika Anda memiliki ZSH atau OH-MY-ZSH, profil Anda adalah / etc / zprofile
sumber
Saya telah benar-benar menemukan bagi mereka yang tidak suka me-restart sepenuhnya kotak mereka kecuali itu benar-benar diperlukan sebagai berikut ...
Anda tidak perlu me-restart seluruh mesin agar perubahan
/etc/profile
diterapkan. Yang Anda perlukan hanyalah membuat XWindows Desktop GUI Anda restart sehingga membaca ulang konfigurasi (seperti jika dimulai sebagai bagian dari restart seluruh sistem).Bagi saya, saya menggunakan xUbuntu yang menggunakan LightDM tetapi Anda dapat memasukkan apa pun yang dapat dieksekusi memanggil desktop Anda saat ini.
Pertama, Anda tidak dapat menggunakan emulator terminal dari dalam GUI desktop itu sendiri untuk melakukan ini (setidaknya tidak dengan LightDM) Anda harus menggunakan SSH atau konsol sekunder (jika Anda menahan Ctrl + Alt dan menekan F Key atau tombol angka Anda harus meninggalkan login atau layar desktop grafis Anda ke jendela terminal biasa). Saya juga menyarankan Anda untuk menutup semua hal-hal desktop jarak jauh seperti VNC jika Anda menggunakan SSH (jelas SSH dapat dihubungkan, Anda hanya tidak ingin jendela VNC terbuka menjadi polling display 0 saat sedang mencoba untuk me-restart karena ini mungkin menggantung restart saat ini menunggu Anda untuk mengakhiri sesi VNC).
Saya melakukan ini sepanjang waktu dengan SSH dan ini adalah penyelamat besar terutama ketika Anda tidak secara fisik oleh mesin Anda dan tidak merasa seperti menunggu untuk restart penuh dan menghubungkan kembali :-D
Sekarang bagian yang mudah sekali di terminal "sekunder" atau masalah SSH: (Ya, ini akan mematikan sesi Anda saat ini, pastikan Anda tidak keberatan, simpan dokumen yang terbuka atau bekerja)
tunggu sebentar karena itu membunuh desktop dan kemudian memulainya lagi (ini bisa memakan waktu beberapa detik karena semuanya dihentikan dan kemudian dijalankan lagi saat mulai)
Itu saja, sekarang ketika Anda kembali ke konsol 0 atau pergi ke menggunakan VNC untuk menghubungkan lagi, Anda akan disambut oleh prompt login dan login seperti biasa dan jika Anda membuka terminal emulator dan pergi untuk mengeluarkan perintah Anda, sekarang Anda seharusnya sekarang tidak memiliki masalah karena semuanya dipasok kembali seperti halnya Anda melakukan restart mesin penuh.
Ingat saja, jika Anda mengeluarkan
sudo service lightdm restart
[ataustop
,start
apa pun] dari dalam lingkungan desktop itu sendiri menggunakan emulator terminal, perintah itu hanya akan bertahan di sana dan tampaknya tidak akan terjadi apa-apa. Ini karena Anda saat ini menggunakan konsol itu (tampilan alias) 0 sehingga tidak dapat sepenuhnya turun dan kembali ke atas karena menunggu desktop tidak digunakan sebelum menjalankan perintah.Catatan Terakhir: Saya belum mencoba mengeluarkan restart pada lingkungan dari dalam desktop di terminal emulator dan kemudian beralih ke konsol lain yang kemudian me-restart itu, tetapi jika Anda sudah akan beralih konsol maka mengapa tidak jalankan perintah dari sana sebagaimana mestinya lagian?
sumber
echo ". .profile" >> ~ / .bashrc
Dan kemudian buka jendela lain. Saya pikir ini adalah pendekatan yang mudah.
sumber
.profile
sumber default.bashrc
, ini akan menghasilkan loop untuk sebagian besar pengguna.