Как установить переменную среды LD_LIBRARY_PATH в Linux

Сначала я выполнил команду: export LD_LIBRARY_PATH=/usr/local/lib

Тогда я открыл .bash_profile файл: vi ~/.bash_profile, В этом файле я положил:

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

Затем, если терминал закрыт и перезапущен, набрав echo $LD_LIBRARY_PATH не показывает результат.

Как правильно установить путь?

12 ответов

Вы должны добавить больше информации о вашем дистрибутиве, например, в Ubuntu правильный способ сделать это - добавить кастом .conf подать в /etc/ld.so.conf.d, например

sudo gedit /etc/ld.so.conf.d/randomLibs.conf

внутри файла вы должны написать полный путь к каталогу, который содержит все библиотеки, которые вы хотите добавить в систему, например

/home/linux/myLocalLibs

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

Сохранить и запустить sudo ldconfig обновить систему с помощью этой библиотеки.

Сохранить предыдущий путь, не перезаписывать его:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/

Вы можете добавить его в ваш ~/.bashrc:

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc

Добавлять

LD_LIBRARY_PATH="/ путь / вы /want1:/ путь / вы / хотите /2"

в /etc/environment

Смотрите документацию по Ubuntu.

ИСПРАВЛЕНИЕ: Я должен взять мой собственный совет и фактически прочитать документацию. В нем говорится, что это не относится к LD_LIBRARY_PATH: поскольку Ubuntu 9.04 Jaunty Jackalope, LD_LIBRARY_PATH нельзя установить в файлах $HOME/.profile, /etc/profile и /etc/environment. Вы должны использовать /etc/ld.so.conf.d/.conf файлы конфигурации.* Таким образом, ответ user1824407 точен.

В качестве альтернативы вы можете выполнить программу с указанной библиотекой dir:

/lib/ld-linux.so.2 --library-path PATH EXECUTABLE

Узнайте больше здесь.

Файл .bash_profile выполняется только логинами. Возможно, вам придется положить его в ~/.bashrcили просто выйдите из системы и войдите снова.

По какой-то причине никто не упомянул тот факт, что bashrc нуждается в ресурсах после редактирования. Вы можете выйти и снова войти в систему (как упоминалось выше), но вы также можете использовать команды: source ~/.bashrc или же . ~/.bashrc,

Положил export LD_LIBRARY_PATH=/usr/local/lib в ~/.bashrc [желательно к концу сценария, чтобы избежать переопределений между ними, по умолчанию ~/.bashrc приходит со многими if-else заявления]

Сообщите, что всякий раз, когда вы открываете новый терминал / консоль, LD_LIBRARY_PATH будет отражено

  1. Зайдите в домашнюю папку и отредактируйте.profile
  2. Поместите следующую строку в конце

    export LD_LIBRARY_PATH=<your path>

  3. Сохранить и выйти.

  4. Выполнить эту команду

    sudo ldconfig

Вы можете попробовать добавить собственный скрипт, скажем, myenv_vars.sh в /etc/profile.d,

cd /etc/profile.d
sudo touch myenv_vars.sh
sudo gedit myenv_vars.sh

Добавьте это в пустой файл и сохраните.

export LD_LIBRARY_PATH=/usr/local/lib

Выйти и войти, LD_LIBRARY_PATH будет установлен навсегда.

В Ubuntu 20.04 Linux это просто неочевидно и прямолинейно, как и должно быть.

Я попытаюсь сделать это простым для тех, кто рвет на себе волосы, как это было со мной в Ubuntu 20.04.3 Linux.

Начните с определения пути, по которому находится папка с файлами вашей библиотеки. В моем случае файлы * .so , с которыми я работал, находились в папке с именем libs , и путь к этой папке в моем окне Ubuntu — /usr/lib

Итак, теперь я хочу добавить путь /usr/lib в LD_LIBRARY_PATH , чтобы при запуске команды echo $LD_LIBRARY_PATH в моем терминале Ubuntu я мог видеть путь /usr/lib , как показано ниже;


Вот шаги, которые я использовал

  1. Откройте терминал в Ubuntu 20.04 Linux.
  2. Измените путь к /etc/ld.so.conf.d/ , запустив cd /etc/ld.so.conf.d/
  3. Создайте файл с расширением *.conf в конце с помощью текстового редактора , такого как, например, vim или gedit , в моем случае я создал его следующим образом: sudo gedit my_project_libs.conf
  4. Внутри файла .conf , который я создал с именем my_project_libs.conf, я добавил путь к своим библиотекам, добавив эту строку exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
  5. После этого я запускаю gedit ~/.bash_profile , чтобы открыть файл ~/.bash_profile , чтобы я мог добавить в него эту строку export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib , которая включает путь к папке с моими библиотеками /usr/ lib , которую я хочу включить в LD_LIBRARY_PATH
  6. Я также запустил gedit ~/.bashrc , чтобы открыть файл ~/.bashrc , чтобы я мог добавить в него эту строку export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib , которая включает путь к папке с моими библиотеками /usr/lib , которая Я хочу включить в LD_LIBRARY_PATH
  7. Когда вы закончите добавлять строку на шаге 5, сохраните и закройте файл .
  8. В терминале введите следующую команду sudo ldconfig и нажмите Enter на клавиатуре. Закройте все открытые терминалы, которые вы использовали, затем откройте новый сеанс терминала и запустите echo $LD_LIBRARY_PATH. Если вы видите, что добавленный вами путь отображается обратно, значит, вы все сделали правильно.

В моем случае это то, что я вижу : /usr/lib , когда я запускаю echo $LD_LIBRARY_PATH в моем недавно открытом терминальном сеансе Ubuntu .

      joseph$ echo $LD_LIBRARY_PATH
:/usr/lib

Вот как я заставил его работать на моем Ubuntu 20.04.3 Linux .

Я делаю следующее в Mint с 15 по 17, также работает на сервере Ubuntu 12.04 и выше:

sudo vi /etc/bash.bashrc 

прокрутите вниз и добавьте:

export LD_LIBRARY_PATH=.

Всем пользователям добавлена ​​переменная окружения.

Кажется, всем не хватает леса за деревьями.

Реальный ответ заключается в том, что «~/.bash_profile» по умолчанию используется только для LOGIN SHELLS.

Файл конфигурации bash, который вы, вероятно, ищете, если вы запускаете и закрываете терминалы с графического интерфейса вашего рабочего стола, — это «~/.bashrc», который является файлом по умолчанию при запуске интерактивных оболочек без входа в систему.

https://apple.stackexchange.com/questions/51036/в чем разница-между-bash-профилем-и-bashrc

Другие вопросы по тегам