Saat menginstal RVM yang mendapat pesan berikut:
* WARNING: You have '~/.profile' file, you might want to load it,
to do that add the following line to '/home/dotancohen/.bash_profile':
source ~/.profile
Saya khawatir karena file ~/.profile saya berisi xmodmap ~/.Xmodmap
yang jelas tidak ingin saya jalankan (menukar kunci CapsLock dan ESC saya) setiap kali saya membuka shell baru.
Mengapa para pengembang RVM yang bijaksana menyarankan sumber .profile
di .bash_profile
?
Jawaban yang Diterima:
.profile
dan .bash_profile
identik dalam hal kapan mereka dimaksudkan untuk dieksekusi:mereka dieksekusi ketika Anda masuk. Perbedaannya adalah bahwa hanya bash yang menjalankan .bash_profile
; Shell bergaya Bourne (tanda hubung, ksh, dll.) menjalankan .profile
. Bash sendiri menjalankan .profile
jika .bash_profile
tidak ada.
Bahkan jika Anda memiliki bash sebagai shell login Anda, .profile
sering kali yang dijalankan saat Anda masuk dalam mode grafis — banyak distribusi menyiapkan skrip startup sesi X untuk dijalankan di bawah sh
dan muat .profile
.
Oleh karena itu saran untuk menggunakan .profile
bukannya .bash_profile
untuk melakukan hal-hal seperti mendefinisikan variabel lingkungan. Kecuali Anda benar-benar membutuhkan fitur khusus bash, cukup masukkan semuanya di .profile
. Tetapi meskipun Anda melakukannya, ada alasan untuk menyimpan .bash_profile
, yaitu ketika bash memuatnya, itu tidak memuat .bashrc
, meskipun interaktif. Oleh karena itu, bagi kebanyakan orang, ~/.bash_profile
harus terdiri dari dua baris berikut:
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
Anda tidak boleh menjalankan xmodmap
dari .profile
. Ini tidak dijalankan saat Anda membuka shell baru, tetapi dijalankan, misalnya, saat Anda masuk dari jarak jauh dengan SSH dengan penerusan X11. Sayangnya, tidak ada file standar yang dimuat saat Anda masuk dalam mode grafis. Debian memuat ~/.xsessionrc
(Saya pikir ini berlaku untuk semua pengelola tampilan, kecuali Gdm yang memuat ~/.xprofile
sebagai gantinya); distribusi lain memiliki setup yang berbeda. Jika Anda memerlukan portabilitas lintas distribusi, mungkin lebih mudah untuk mengonfigurasi lingkungan desktop Anda untuk menjalankan xmodmap
ketika itu dimulai. Jika yang Anda lakukan hanyalah menukar CapsLock dan Ctrl, ini dapat dilakukan dengan pengaturan XKB yang sebagian besar lingkungan desktop modern menyediakan antarmuka.