У меня есть каталог, полный библиотек ( *. Поэтому .0. *
), и я хочу использовать find
для создания символической ссылки на каждый файл с именем *. So.0
.
Вот (неработающая) попытка:
найти $ HOME / .local / lib64 / -name "lib * .so.0. *" -Execdir ln -s {} $ (echo {} | cut -d. -f 1-4) \;
Но я не могу понять, почему это не работает.
Я пробовал использовать только одну библиотеку, используя ln -s ./libfoo.so.0.12.0. $ (echo ./libfoo.so.0.12.0. | cut -d. -f 1-4)
, результатом будет ./ libfoo.so.0
.
Вы пытаетесь установить альтернативный набор ELF-библиотек для запуска приложения, поэтому вместо того, чтобы возиться с ручным созданием симлинков, перейдите прямо к предполагаемому применению проблемы: ldconfig $HOME/.local/lib64/
должен обновить все симлинки в каталоге.
Они не всегда будут .so.0
, это будет зависеть от данных SOVERSION в библиотеках ELF.