Я установил texlive и хочу добавить его в качестве переменной окружения в мой путь, чтобы Emacs AucTeX мог читать его, когда я запускаю emacs из графического интерфейса или из командной строки. До сих пор я читал, что emacs читает только файлы из ~/.profile
.
Поэтому я планирую добавить texlive к моему пути в .profile
, чтобы позволить emacs GUI прочитать его, а затем получить источник ~/profile
из .bashrc
для того, чтобы emacs запускался внутри моего не входящего в систему интерактивного терминала GNOME в увидеть путь.
Примечание: у меня нет файла .profile
в моем домашнем каталоге, только в моем /etc
каталоге, и я бы не стал его трогать, но у меня есть .bash_profile
в моем домашнем каталоге. Однако я прочитал, что .bash_profile
запускается только для интерактивного сеанса входа в систему, то есть в режиме консоли, который я не использую.
.profile
в моем домашнем каталоге и сделать следующее: Шаг 1: Создать ~/.profile
Шаг 2: Добавить переменную среды texlive в путь в .profile
export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2018/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2018/texmf-dist/doc/info:$INFOPATH
Шаг 3: Источник .profile
из .bashrc
#Adding this at the bottom or start of .bashrc to source .profile when the terminal is opened.
if [-s ~/.profile]; then;
source ~/.profile;
fi
Я знаю, что есть много опасений в отношении источников .profile
из .bashrc
] из-за риска возникновения бесконечной петли. Однако, поскольку я создаю файл .profile
с нуля, это не будет проблемой, так как он не будет содержать код, ссылающийся на .bashrc
.
Дополнительная информация : My .bashrc
содержит только код, который содержит источники ~/etc/bashrc
, и одну переменную среды, которая была автоматически добавлена Anaconda: export PATH="/home/Fedora_User/Anaconda3/bin:$PATH"
Имейте в виду, что я знаю, что gnome-терминал может работать как интерактивная оболочка входа в систему, но я никогда не делал этого и не знаю, повлияет ли это на производительность моих сеансов терминала.
Во-первых, обратите внимание на это, если Вы хотите ~/.profile
чтобы быть считанными, необходимо будет удалить ~/.bash_profile
, иначе ~/.profile
будет проигнорирован Bash.
Вы на самом деле сверхусложняете это немного. ПУТЬ установлен в /etc/environment
. Это всегда export
редактор уже, таким образом, это не должно быть экспортировано снова.
Если Вы вносите изменения в свой ПУТЬ в ~/.profile
они будут наследованы каждой оболочкой, является ли это оболочкой входа в систему, интерактивной или иначе.
Другие переменные, экспортируемые в ~/.profile
будет также передан в среду и будет доступен в каждой оболочке. ~/.profile
читается однажды, когда Вы входите в систему своей сессии, и экспортируемые переменные остаются экспортируемыми.
Определение источника ~/.profile
в ~/.bashrc
плохая идея. ~/.profile
источники ~/.bashrc
таким образом, Вы получите бесконечный цикл. Даже если ~/.profile
не получает ~/.bashrc
это - плохая идея иметь ~/.bashrc
источник ~/.profile
или любой другой файл с присвоениями как
PATH=$PATH:/some/other/place
потому что каждый раз интерактивная оболочка запускает другую интерактивную оболочку, ПУТЬ будет расширен..., Вы закончите со своим ПУТЕМ тем, чтобы быть
/original/path:/some/other/place:/some/other/place:/some/other/place
и т.д.
Ваше присвоение MANPATH не должно включать $MANPATH
но это должно запуститься с ведущего двоеточия. Посмотрите этот вопрос и его ответ. По умолчанию MANPATH сброшен, и корректный путь динамично определяется (в некотором роде, я не понимаю), таким образом, включая существующий MANPATH ничего не делает. Вы, возможно, должны запустить присвоение MANPATH с двоеточия, чтобы не предотвращать путь, определяемый динамично. Насколько я знаю, то же идет для InfoPath
Поэтому я предлагаю:
Переименовать ~/.bash_profile
~/.profile
Добавьте строки:
PATH="$PATH:/usr/local/texlive/2018/bin/x86_64-linux"
export MANPATH=":/usr/local/texlive/2018/texmf-dist/doc/man"
export INFOPATH=":/usr/local/texlive/2018/texmf-dist/doc/info"
Примечания, которые я добавил к ПУТИ вместо предварительного ожидания. Можно предварительно ожидать (помещенный $PATH
в конце вместо начала), если Вы хотите. Первый исполняемый файл, найденный в поиске пути, выполняется, поэтому если две программы в различных местоположениях ПУТИ будут иметь то же имя, то тот в каталоге, который на первом месте (далее налево) в ПУТИ, будет выполнен.
Ничего не добавляйте к Вашему ~/.bashrc
. Переменные среды измененные, или новые переменные, экспортируемые в ~/.profile
будет доступно каждой оболочке и не должными быть дополнительно устанавливаться в другом месте.
Также обратите внимание, что Вы не должны получать /etc/bash.bashrc
в ~/.bashrc
, потому что /etc/bash.bashrc
уже получен каждой интерактивной оболочкой сначала*, и мы используем ~/.bashrc
вносить последующие корректировки.
*Исключение - /etc/bash/bashrc
проверки, что оболочка является интерактивным использованием ненадежного метода - это проверяет, что PS1 установлен. Если Вы запускаете оболочку, сбрасывающую PS1, /etc/bash.bashrc
не будет получен, даже при том, что оболочка является интерактивной. Другое исключение - когда оболочка запускается с --norc
, но это более очевидно.