I am writing a little install script for some software. All it does is unpack a target tar, and then i want to permanently set some environment variables - principally the l
Standard practice is to install into directories already in the path and in the standard library directory, so there is no need to update these variables.
Updating .bashrc is a bit failure-prone, among other things; what if a user uses a different file or shell?
LSB-compliant (see spec) practice is to create a shell script in /etc/profile.d/
folder.
Name it after your application (and make sure that the name is unique), make sure that the name ends with .sh
(you might want to add scripts for other shells as well) and export
the variables you need in the script. All *.sh
scripts from that directory are read at user login--the same time /etc/profile
is source
d.
Note that this is not enforced by bash
; rather, it's an agreement of sorts.
You can also generate and install a script that sets those variables. Users of your package then source that script or copy its contents to their own shell init file.