システム全体の環境変数が切り捨てられる

システム全体の環境変数が切り捨てられる

Ubuntu 16.10 では、/etc/environment ファイルにシステム全体の環境変数を設定しました。この変数は、数千文字の長さの文字列です (文字列は、小さな英字コードのコンマ区切りのリストです)。問題は、環境変数が切り捨てられることです。

X という名前の変数を使用して /etc/environment ファイルの内容を生成する Python コード:

fp = open('/etc/environment','w')
fp.write('X="' + ",".join([str(i) for i in range(2000)]) + '"')
fp.close()

シェルをログアウトし、再度ログインして環境変数を表示します

echo $X

私のマシンでは、結果は次のとおりです。

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72

環境変数には 128K の制限があると誰かが言っていましたが、私の変数の長さは比較的短いです。なぜ切り捨てられるのか、そしてもっと重要なことですが、この状況を改善するにはどうすればいいのか、誰か説明してもらえませんか?

編集: dpkg -l libpam-modules の出力:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                           Version                      Architecture                 Description
+++-==============================================-============================-============================-==================================================================================================
ii  libpam-modules:amd64                           1.1.8-3.2ubuntu2             amd64                        Pluggable Authentication Modules for PAM

答え1

Mark が提案した通りかどうかはわかりませんが、/etc/environment ファイルを更新して、次の構文に変更しました。

export X="1,2,..." 

そして、/etc/profile に次の行を追加しました:

source /etc/environment

それが良い方法かどうかは分かりませんが、機能します。

関連情報