посмотрите обновление ниже
Мой bashrc
имеет строку . ./bash_path_vars
, где bash_path_vars
содержит:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Но то, что я вхожу в новый терминал:
> echo $LD_LIBRARY_PATH
:/usr/local/lib:/usr/local/lib
(дублирование)
Если Вы помещаете тот оператор экспорта непосредственно внутри bashrc
, нет никакого дублирования!
Я озадачен. Почему это происходит?
ОБНОВЛЕНИЕ: Я глуп, я имел . ./bash_path_vars
два раза в двух различных местах. Конечно, это привело к дублированию... Благодаря всем, кто ответил на этот вопрос и жаль о том, что не был задан лучший вопрос!
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Эта команда только устанавливает или перезаписывает LD_LIBRARY_PATH, а скорее берет существующую переменную и расширяется, это с:/usr/local/lib
Смотрит на .bash_profile и/etc/profile, установлена ли переменная также там. Вы могли также установить:
export LD_LIBRARY_PATH=:/usr/local/lib
в bashrc.
Ваш делают его неправильно. Обратите внимание на то, что $LD_LIBRARY_PATH
уже переменная, объявил некоторых, где, поэтому когда Вы делаете:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
Вы говорите, расширяетесь $LD_LIBRARY_PATH
и добавляете /usr/local/lib
, таким образом, Вы доберетесь что Ваше в настоящее время наблюдение:
> echo $LD_LIBRARY_PATH
:/usr/local/lib:/usr/local/lib
Теперь изменяют Вашу запись в .bashrc
файл к:
export LD_LIBRARY_PATH=/usr/local/lib
export PATH=$LD_LIBRARY_PATH:$PATH
Теперь, когда Вы работаете: echo $LD_LIBRARY_PATH
, необходимо видеть /usr/local/lib
Просто помещение: export LD_LIBRARY_PATH=/usr/local/lib
даст Вам желаемый результат, но добавление второй строки (export PATH=$LD_LIBRARY_PATH:$PATH
) помещает тот переменная в Вашем системный путь .