Почему переменная $PATH, отличающаяся между двумя каталогами?

Все файлы под /etc классифицированы как “conffiles” (политикой Debian, она указана в пакете, не встроенном к dpkg). Подсказки Dpkg, изменил ли к перезаписям каждый conffile на обновлении. Сценарии Init не являются никаким исключением.

Если Вы не хотите быть предложенными, или если Вам нужно это на файле в пакете, который не является conffile, можно использовать диверсию.

dpkg-divert --add --local --rename --divert /etc/init/postfix.debian /etc/init/postfix

2
07.05.2014, 01:27
2 ответа
[118234] В оболочке нет глобальных переменных, т.е. переменных, совместно используемых различными экземплярами (процессами). Экспортируемые переменные копируются в дочерние процессы, но оттуда они независимы.[118235].
1
27.01.2020, 22:00

Я знаю, что это древний вопрос, но недавно у нас появилось несколько новых пользователей Ruby поразить это "очевидно невозможное" поведение. Я отвечаю, чтобы помочь другим, кто это сделал.

Это потому, что вы используете ruby, который применяет локальные настройки пакетов и гемов для каждого каталога. Ваша переменная PATH изменяется просто из-за команды cd - потому что ruby ​​обрабатывает изменение cwd и применяет правильные настройки для этого целевого каталога (или глобальные настройки, если в cwd нет конфигураций) к ENV.

Очень распространенный сценарий состоит в том, что пользователь ruby ​​запускает команду bundle, которая явно находится в PATH (попробуйте, какой комплект), сменит каталоги, а затем сделает команду bundle неизвестной (больше не в PATH, потому что PATH изменился как побочный эффект команды cd).

Обычно это можно исправить, установив гем в проблемный каталог.

3
27.01.2020, 22:00

Теги

Похожие вопросы