Назад | Перейти на главную страницу

В CentOS что делает строка LD_LIBRARY_PATH = / usr / local / lib: / usr / local / lib64?

Хостинг: новая капля на Digital Ocean

Операционная система: свежая установка CentOS 7.6.1810

Вопрос: Я установил OpenSSL 1.1.1 из исходного кода, используя руководство, но я не понимаю, что делают следующие 2 строки. Я понимаю основы Linux, но не знаю, как их читать.

:~# export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
:~# echo "export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64" >> ~/.bashrc

Во-вторых, когда я проверяю версию, она возвращает 1.1.1.

:~# openssl version
:~# OpenSSL 1.1.1  11 Sep 2018

Однако, когда я смотрю, что установлено, он все еще показывает старый OpenSSL 1.0.2k.

:~# yum list installed | grep openssl
openssl.x86_64                          1:1.0.2k-16.el7_6.1        installed
openssl-devel.x86_64                    1:1.0.2k-16.el7_6.1        @updates
openssl-libs.x86_64                     1:1.0.2k-16.el7_6.1        installed

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

На странице руководства ld.so (8) объясняется:

       LD_LIBRARY_PATH
              A  list  of  directories in which to search for ELF libraries at
              execution time.  The items in the list are separated  by  either
              colons  or  semicolons,  and  there  is  no support for escaping
              either separator.

              This variable is ignored in secure-execution mode.

Устанавливая это в своей среде, вы заставляете программы, которые вы запускаете, сначала искать общие библиотеки в этих каталогах. Похоже, что ваш автор учебника намеревается переопределить системные пакеты OpenSSL вашей локально установленной версией OpenSSL.