Intereting Posts

Дублировать записи PATH – не знаю, где они установлены из

TL; DR что-то меняет мой путь, умножая мои пользовательские каталоги, даже когда комментирует строку export PATH= от bashrc


Недавно я добавил строку в мой .bashrc чтобы добавить в путь два настраиваемых каталога:

 export PATH=~/Documents/Code/Own/Scripts/:~/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:$PATH 

Все выглядит прекрасно, никаких проблем. Сегодня, однако, я проверил свой путь, чтобы посмотреть, какие каталоги у меня были, и обнаружил, что пользовательские каталоги были там три раза:

 echo $PATH /home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin 

Странно, подумал я про себя. Я прокомментирую строку из моего bashrc – по какой-то причине она должна быть получена три раза. Откройте новую вкладку в терминале – первая пара пользовательских каталогов исчезла, но две другие все еще существуют :

 /home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin 

Таким образом, возможно, это просто проблема с GNOME Terminal, сохраняющим путь с каждым сеансом. Вход в систему через TTY и путь был верным – никаких записей об ошибках (мой bashrc по-прежнему был получен через строку bash_profile). Однако, используя xterm, проблема все еще присутствовала – это означает, что это не с чем-то с терминалом GNOME.

Я не понимаю, какой файл меняет путь, когда я прокомментировал строку из bashrc и никогда не добавлял ее нигде. Есть идеи?

Если вы открываете новую вкладку в терминале GNOME, она копирует среду в новую оболочку, а не создает новую пустую среду. Лично я думаю, что это ошибка (и это одна из причин, по которой я сам не буду использовать терминал GNOME), но я уверен, что у разработчиков есть свои причины. После запуска новой вкладки и копирования среды она запускает вашу оболочку, которая проходит через обычную интерактивную процедуру запуска, которая включает в себя поиск .bashrc

Если вы хотите, чтобы ваше добавление выполнялось несколько раз, у вас есть несколько вариантов:

  • переключиться на другой эмулятор терминала
  • не делайте модификацию в .bashrc , а вместо этого в .bash_profile , который является частью процедуры входа в систему, а не интерактивным запуском и поэтому не должен использоваться на новой вкладке (но, очевидно, возможно, что терминал GNOME еще больше сломанный, чем я думал, и он все равно может запустить оболочку таким образом, чтобы в конце концов были источники .bash_profile , это было довольно долгое время с тех пор, как я в последний раз его использовал)
  • проверьте, действительно ли переменная PATH уже содержит необходимую модификацию, прежде чем повторять ее.

Исправлено из-за выхода из системы и снова, поэтому, должно быть, это было вызвано тем, что я сделал ранее в своей сессии.