
В Ubuntu 16.10 я установил общесистемную переменную окружения в файле /etc/environment. Переменная представляет собой строку длиной в тысячи символов (строка представляет собой список разделенных запятыми коротких буквенных кодов). Проблема в том, что переменная окружения обрезается.
Код Python для генерации содержимого файла /etc/environment с переменной с именем X:
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
Кто-то сказал мне о пределе в 128 КБ для переменных окружения, но моя переменная относительно мала по длине. Может ли кто-нибудь объяснить мне, почему она усекается и, что более важно, что я могу сделать, чтобы исправить эту ситуацию?
EDIT: вывод 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
Я не уверен, что это именно то, что предложил Марк, но я обновил свой файл /etc/environment, чтобы теперь он имел следующий синтаксис:
export X="1,2,..."
и я добавил строку в /etc/profile:
source /etc/environment
Не знаю, хороший ли это способ, но он работает.