Если вы хотите, чтобы компоновщик нашел библиотеку в необычном месте, вам нужно использовать параметр -L
, чтобы указать каталог, в котором находится библиотека.
Если вы хотите, чтобы компоновщик времени выполнения находил ту же библиотеку во время выполнения, используйте -R
для компоновщика, чтобы добавить тег RUNPATH
в двоичный файл.
ldconfig использовался в 1980-х годах с форматом a.out
, поскольку у него не было свойства RUNPATH
, которое было добавлено к ELF
.
Есть соответствующие вопросы и ответы по переполнению стека, см. Какой Bash shebang предпочтительнее? , но я не могу найти здесь хорошего.
Если вы хотите, чтобы ваш скрипт находил bash
в любом месте на PATH
, будь то /bin
, /usr/bin
и т. д., используйте
#!/usr/bin/env bash
(Это предполагает, что /usr/bin/env
существует.)
Тем не менее, в большинстве дистрибутивов Linux, включая упомянутые вами, это безопасно
#!/bin/bash
Некоторые дистрибутивы также имеют /usr/bin/bash
, но это результат «/usr
слияния» — /bin
и /usr/bin
теперь имеют одинаковое содержимое в этих дистрибутивах. дистрибутивы.
Следующее потребует однократного изменения. #!/usr/bin/env bash
будет искать bash в вашем PATH. Однако вам придется set -x
отдельно.