staging.inyokaproject.org

Umgebungsvariablen dauerhaft setzen

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

nobody

Anmeldungsdatum:
20. Juli 2019

Beiträge: 15

Hey Leute, Ich hab da ein kleines Problem. Undzwar möchte ich eine Umgebungsvariable dauerhaft setzen.In /proc/self/environ ist die variable schon definiert jedoch kann ich sie nicht mit printenv ausgeben. Mit

1
export MyVar=

klappt es jedoch muss ich die dann ja nach jedem Neustart neu setzen. Das ich Beispielsweise ein kurzes Skript beim Start lade und sie definiert. Lieber wäre es mir jedoch wenn es über /proc/self/environ klappt.

Bearbeitet von rklm:

Unnötige Hervorhebung entfernt.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

nobody schrieb:

[…] Umgebungsvariable dauerhaft […] /proc/self/environ

Die Dateien /proc/PID/environ ermöglichen kein Definieren von Umgebungsvariablen. In diesen Dateien wird nur das Faktische dokumentiert, also welche Umgebungsvariablen beim Start des Prozesses wie gesetzt waren. Selbst wenn der Prozess seine Umgebungsvariablen durch löschen, ändern oder hinzufügen modifiziert, ändert er dadurch nicht das Faktische und solche Änderungen erscheinen daher auch nicht in diesen Dateien. Selbst wenn es Dir gelingen sollte, in diese Dateien zu schreiben, würdest Du zwar die Dokumentation fälschen, aber nicht die tatsächliche Umgebung des Prozesses beeinflussen.

homer65

Avatar von homer65

Anmeldungsdatum:
8. November 2005

Beiträge: 586

Warum nicht in /etc/profile definieren?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

homer65 schrieb:

Warum nicht in /etc/profile definieren?

Oder einfach in ~/.bashrc, wenn es nur für interaktive Shells ist.

nobody

(Themenstarter)

Anmeldungsdatum:
20. Juli 2019

Beiträge: 15

Naja letzten endes möchte ich nur ein paar Pfade als Makro die ich dann in makefiles nicht neu definieren muss. Ich hab es erstmal über ~/profile gemacht. Jedoch schaff ich es nicht ohne Neustart die Variablen zu updaten

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

nobody schrieb:

Naja letzten endes möchte ich nur ein paar Pfade als Makro die ich dann in makefiles nicht neu definieren muss. Ich hab es erstmal über ~/profile gemacht. Jedoch schaff ich es nicht ohne Neustart die Variablen zu updaten

MyVar und makefiles klingt nach Variablen, die spezifisch für einen User sind. Dann gehören sie nichts ins systemweite /etc/profile. Wenn Du sie in ~/.bashrc speicherst musst Du nur die Shell neu starten, nachdem Du die Datei geändert hast, um die Variable zu sehen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

user_unknown schrieb:

nobody schrieb:

Naja letzten endes möchte ich nur ein paar Pfade als Makro die ich dann in makefiles nicht neu definieren muss. Ich hab es erstmal über ~/profile gemacht.

Ich hoffe, Du meinst ~/.profile.

Jedoch schaff ich es nicht ohne Neustart die Variablen zu updaten

MyVar und makefiles klingt nach Variablen, die spezifisch für einen User sind. Dann gehören sie nichts ins systemweite /etc/profile. Wenn Du sie in ~/.bashrc speicherst musst Du nur die Shell neu starten, nachdem Du die Datei geändert hast, um die Variable zu sehen.

Eine Alternative dazu ist, die Definitionen in eine separate Datei auszulagern, die dann aus der ~/.basrc heraus gesourced wird und die man separat neu einlesen lassen kann. Wenn Du die allerdings häufiger ändern musst, dann ist das ganze Konzept, sie immer fix zu setzen, vielleicht nicht geeignet.

Antworten |