Das Setzen der Variablen in /etc / environment hat keine Auswirkung

Ich habe Folgendes in meinem /etc/environment:

http_proxy=http://myproxy.net:12345

Nach dem Neustart des Computers melde ich mich an und überprüfe die Variable:

root@d6c44fa03243:/# echo $http_proxy
(empty)

Warum ist die variable nicht gesetzt?

Hinweis: Ich muss erwähnen, dass dies ein Docker-Container ist, obwohl ich nicht verstehe, warum dies einen Unterschied machen würde.

BEARBEITEN

Mehr Details zum System (Ubuntu 16.04.4 Xenial Xerus):

root@d6c44fa03243:/# uname -a
Linux d6c44fa03243 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

root@d6c44fa03243:/# cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

EDIT2

Gemäß der Ubuntu-Dokumentation :

/etc/environment

Diese Datei ist speziell für systemweite Umgebungsvariablen gedacht Einstellung. Es ist keine Skriptdatei, sondern besteht aus Zuweisung Ausdrücke, eine pro Zeile.

Author: blueFast, 2018-03-27

3 answers

Da UNIX-Tools im Hinblick auf und erstellt wurden, können Sie die Antwort mit Hilfe von grep finden. Es spielt keine Rolle, ob Sie mit einem vollständigen Betriebssystem oder einem Container arbeiten (das spätere bedeutet nur, dass Sie möglicherweise einige zusätzliche Schritte unternehmen müssen, um Tools zu installieren, die Sie benötigen, damit die Dinge transparent werden).

Überprüfen Sie, ob grep auf Ihrem Betriebssystem installiert ist, und führen Sie sudo grep -R "/etc/environment" /etc/* aus. Dadurch werden alle Systemskripte und Konfigurationen durchsucht, um festzustellen, welche diese Datei verwenden. Auf einem standard ubuntu / xenial64 vagrant box, die Skripte und Konfigurationen, die diese Datei verwenden sind meistens in /etc/init.d/ /etc/pam.d/, und /etc/rc.*.d/.

Die folgenden Konfigurationen sind, wie Variablen in /etc/environment in meiner Shell gesetzt werden:

/etc/pam.d/login /etc/pam.d/su /etc/pam.d/sshd

Von man pam_env:

Das pam_env PAM Modul erlaubt die (un)Einstellung von Umgebungsvariablen. ...

Dieses Modul kann auch eine Datei mit einfachen KEY=VAL-Paaren in separaten Zeilen analysieren (standardmäßig/etc/environment). Sie können die Standarddatei mit dem envfile-Flag in parse ändern und ein-oder ausschalten, indem Sie das readenv-Flag auf 1 bzw. ...

Führen Sie eine ähnliche Suche in Ihrem Docker-Container durch. Sie können überprüfen, ob Ihr Container pam_env.so verwendet.

Die beste Lösung besteht wahrscheinlich darin, dass Ihr Startprozess Umgebungsvariablen aus /etc/environment erstellt, aber dieser Rat wird gegeben, ohne zu verstehen, was Sie erstellen. Die Verwendung in ' / etc / rc*.d / könnte gute Beispiele dafür sein, wie um dies zu erreichen.

Die meisten Leute folgen @ben-njeris Ratschlägen und setzen Variablen in den Standardkonfigurationsdateien für die Bash-Shell.

 2
Author: Raúl Cuza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-09-18 20:58:41

Konfigurieren von /etc/profile oder ~/.bashrc oder ~/.bash_profile - Dateien zu exportieren, die Variablen, wenn eine neue shell gestartet wird.

/etc/profile ist für systemweite und andere sind für bestimmte Benutzer.

Fügen Sie einfach die folgenden Zeilen am Ende hinzu:

export http_proxy=”http://myproxy.net:12345”
export ftp_proxy=”http://myproxy.net:12345”
export https_proxy=”http://myproxy.net:12345"

Jedes Mal, wenn Sie eine Shell starten, werden die Variablen geladen und Sie können sie verwenden.

 0
Author: Ben Njeri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-01 12:04:04

Ich habe (hatte) dieses Problem unter Ubuntu 18.04. Ich konnte /etc/environment überhaupt nicht zum Laufen bringen, aber stattdessen ein Skript in /etc/profile.d/ (wie hier dokumentiert ), und das hat funktioniert.

Weitere Informationen finden Sie unter meine Antwort auf diese verwandte Frage. Hoffe es hilft :)

 0
Author: bszom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-11-13 12:39:27