Прежде всего, я должен сказать, что мне не очень удобно работать с командами UNIX, языком оболочки и т. д. Я хочу установить библиотеку Google SentencePiece (> https://github.com/google/sentencepiece), которая зависит от сценария Fairseq для предварительной обработки некоторых речевых данных. Я выполнил процедуру установки, как указано в README.md из репозитория git.
У меня нет привилегий root, поэтому я не мог установить его заранее известным способом с помощью cmake (имеется в виду в /etc), и мне пришлось установить его в пользовательский каталог.
По тем же причинам, поскольку у меня нет привилегий root и доступа к каталогу /etc, я не смог выполнить последнюю строку: sudo ldconfig -v
. Попытка выполнения без sudo, очевидно, вернула ошибку разрешения.
И теперь, если я пытаюсь вызвать функцию из SentencePiece, я получаю ошибку:
spm_train: error while loading shared libraries: libsentencepiece_train.so.0: cannot open shared object file: No such file or directory
Я понимаю, что это происходит из-за того, что я не строил никакой связи между этими зависимостями (и исполняемым файлом?), Поскольку я не мог выполнить ldconfig
, поэтому я не знаю, должен ли я вызывать его с указанным путем, указывающим на мой настроенный каталог (следовательно, мне не нужны привилегии root, так как не нужен доступ к /etc?) или мне нужно использовать другую команду? В обоих случаях я не знаю, как это сделать.
Заранее спасибо за вашу помощь !
Бег ldconfig -n path/to/shared/libs
и export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/shared/libs
, похоже, решает мою проблему!