1

Я довольно новичок в Linux, и у меня есть некоторые сомнения, связанные с этой операцией, которые я обнаружил в скрипте bash, над которым я работаю:

ldconfig -v >> /dev/null 2>&1

Читая на странице man команды ldconfig, я могу прочитать:

ldconfig создает, обновляет и удаляет необходимые ссылки и кэш (для использования компоновщиком времени выполнения, ld.so) с самыми последними общими библиотеками, найденными в каталогах, указанных в командной строке, в файле /etc /ld. so.conf и в доверенных каталогах (/usr /lib и /lib).

Что именно значит? Я использую систему Ubuntu и в /etc/ld.so.conf я нашел:

 include /etc/ld.so.conf.d/*.conf

Поэтому я думаю, что эта строка перенаправит меня на все файлы .conf в каталог /etc/ld.so.conf.d/

Но у меня есть некоторая путаница ... и много сомнений

1) Что содержится в файле .conf?

2) что именно делает команда, которая есть в моем bash-скрипте?

Tnx

Andrea

1 ответ1

2

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

Поскольку путь не указан, он создаст все необходимые ссылки на основе внутренних компонентов библиотеки (это будет зависеть от вашего дистрибутива, от того, установили ли вы что-то новое, какие библиотеки вы установили).

Если вы хотите посмотреть, что именно он делает, просто измените путь вывода для stderr и stdout с /dev/null на текстовый файл (/home/user/ldcheck.txt или аналогичный) и проверьте содержимое после запуска сценария.

Что касается содержимого ld.so.conf.d - оно обычно содержит настройки пути к библиотеке по умолчанию для таких вещей, как libc.

Это все довольно стандартные вещи, так что, возможно, вам лучше упомянуть, каковы ваши реальные проблемы здесь, я сомневаюсь, что ldconfig является причиной ваших проблем, если, конечно, она не выдает ошибки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .