How to set an environment variable during package installation
Clash Royale CLAN TAG#URR8PPP
I am working on a legacy cross-platform project packaged to both DEB and RPM formats.
Once the Linux package is installed, an environment variable holding the path to the installation folder is required for scripts (e.g. CMake and Bash scripts) and programs execution. This variable has a known name and can point to Program FilesMy Package
on Windows and to /opt/my_package
on Unix systems.
Currently, Linux users have to manually register the variable to use the software. A convenient solution would be to register the environment variable as part of the package installation.
I am aware one can set system-wide environment variables in configuration files such as /etc/profile
and /etc/bashrc
. I could modify such a file as part of the postinst
script.
Is it a good practice to create system-wide environment variables during package installation? If so, what is the preferred way to do it?
The Linux packages are distributed to users on Ubuntu 16.04 and RHEL 7.
ubuntu rhel package-management rpm deb
add a comment |
I am working on a legacy cross-platform project packaged to both DEB and RPM formats.
Once the Linux package is installed, an environment variable holding the path to the installation folder is required for scripts (e.g. CMake and Bash scripts) and programs execution. This variable has a known name and can point to Program FilesMy Package
on Windows and to /opt/my_package
on Unix systems.
Currently, Linux users have to manually register the variable to use the software. A convenient solution would be to register the environment variable as part of the package installation.
I am aware one can set system-wide environment variables in configuration files such as /etc/profile
and /etc/bashrc
. I could modify such a file as part of the postinst
script.
Is it a good practice to create system-wide environment variables during package installation? If so, what is the preferred way to do it?
The Linux packages are distributed to users on Ubuntu 16.04 and RHEL 7.
ubuntu rhel package-management rpm deb
Related: unix.stackexchange.com/q/348295/117549 and unix.stackexchange.com/q/64258/117549 and unix.stackexchange.com/a/117470/117549
– Jeff Schaller
Dec 22 '18 at 1:16
add a comment |
I am working on a legacy cross-platform project packaged to both DEB and RPM formats.
Once the Linux package is installed, an environment variable holding the path to the installation folder is required for scripts (e.g. CMake and Bash scripts) and programs execution. This variable has a known name and can point to Program FilesMy Package
on Windows and to /opt/my_package
on Unix systems.
Currently, Linux users have to manually register the variable to use the software. A convenient solution would be to register the environment variable as part of the package installation.
I am aware one can set system-wide environment variables in configuration files such as /etc/profile
and /etc/bashrc
. I could modify such a file as part of the postinst
script.
Is it a good practice to create system-wide environment variables during package installation? If so, what is the preferred way to do it?
The Linux packages are distributed to users on Ubuntu 16.04 and RHEL 7.
ubuntu rhel package-management rpm deb
I am working on a legacy cross-platform project packaged to both DEB and RPM formats.
Once the Linux package is installed, an environment variable holding the path to the installation folder is required for scripts (e.g. CMake and Bash scripts) and programs execution. This variable has a known name and can point to Program FilesMy Package
on Windows and to /opt/my_package
on Unix systems.
Currently, Linux users have to manually register the variable to use the software. A convenient solution would be to register the environment variable as part of the package installation.
I am aware one can set system-wide environment variables in configuration files such as /etc/profile
and /etc/bashrc
. I could modify such a file as part of the postinst
script.
Is it a good practice to create system-wide environment variables during package installation? If so, what is the preferred way to do it?
The Linux packages are distributed to users on Ubuntu 16.04 and RHEL 7.
ubuntu rhel package-management rpm deb
ubuntu rhel package-management rpm deb
asked Dec 22 '18 at 0:51
Dask
132
132
Related: unix.stackexchange.com/q/348295/117549 and unix.stackexchange.com/q/64258/117549 and unix.stackexchange.com/a/117470/117549
– Jeff Schaller
Dec 22 '18 at 1:16
add a comment |
Related: unix.stackexchange.com/q/348295/117549 and unix.stackexchange.com/q/64258/117549 and unix.stackexchange.com/a/117470/117549
– Jeff Schaller
Dec 22 '18 at 1:16
Related: unix.stackexchange.com/q/348295/117549 and unix.stackexchange.com/q/64258/117549 and unix.stackexchange.com/a/117470/117549
– Jeff Schaller
Dec 22 '18 at 1:16
Related: unix.stackexchange.com/q/348295/117549 and unix.stackexchange.com/q/64258/117549 and unix.stackexchange.com/a/117470/117549
– Jeff Schaller
Dec 22 '18 at 1:16
add a comment |
1 Answer
1
active
oldest
votes
I believe both Ubuntu and RHEL use an /etc/profile.d/ structure, and I would recommend that you package a file in that directory, perhaps named for your application; e.g. /etc/profile.d/legacyapp.sh
(and /etc/profile.d/legacyapp.csh
if you need to support the CSH family).
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490426%2fhow-to-set-an-environment-variable-during-package-installation%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I believe both Ubuntu and RHEL use an /etc/profile.d/ structure, and I would recommend that you package a file in that directory, perhaps named for your application; e.g. /etc/profile.d/legacyapp.sh
(and /etc/profile.d/legacyapp.csh
if you need to support the CSH family).
add a comment |
I believe both Ubuntu and RHEL use an /etc/profile.d/ structure, and I would recommend that you package a file in that directory, perhaps named for your application; e.g. /etc/profile.d/legacyapp.sh
(and /etc/profile.d/legacyapp.csh
if you need to support the CSH family).
add a comment |
I believe both Ubuntu and RHEL use an /etc/profile.d/ structure, and I would recommend that you package a file in that directory, perhaps named for your application; e.g. /etc/profile.d/legacyapp.sh
(and /etc/profile.d/legacyapp.csh
if you need to support the CSH family).
I believe both Ubuntu and RHEL use an /etc/profile.d/ structure, and I would recommend that you package a file in that directory, perhaps named for your application; e.g. /etc/profile.d/legacyapp.sh
(and /etc/profile.d/legacyapp.csh
if you need to support the CSH family).
answered Dec 22 '18 at 1:15
Jeff Schaller
38.9k1053125
38.9k1053125
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490426%2fhow-to-set-an-environment-variable-during-package-installation%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Related: unix.stackexchange.com/q/348295/117549 and unix.stackexchange.com/q/64258/117549 and unix.stackexchange.com/a/117470/117549
– Jeff Schaller
Dec 22 '18 at 1:16