Ubuntu, установка библиотеки, что писать в префиксе и в переменной окружения

Я недавно начал использовать Ubuntu. Я устанавливаю библиотеку linbox: http://www.linalg.org/developer.html. В руководстве по установке указано, что необходимо установить несколько библиотек, в том числе fflas-ffpack библиотеки, а затем запустите скрипт autogen.sh, дополнительно указав префикс установки:

cd linbox  
./autogen.sh [--prefix=] [options].  

[options] включают --with-fflas-ffpack=, что, согласно руководству по установке, необходимо только в том случае, если пакет не установлен в стандартном месте, таком как /usr или же /usr/local, Также необходимо установить LD_LIBRARY_PATH в этом случае поддерживать динамическое связывание с каталогом lib любого из пакетов, установленных в нестандартном месте.

Я установил fflas-ffpack библиотека. sudo dpkg -L fflas-ffpack возвращается

/.  
/usr  
/usr/include  
/usr/include/fflas-ffpack  
/usr/include/fflas-ffpack/fflas-ffpack-config.h  
/usr/include/fflas-ffpack/fflas-ffpack-optimise.h  
/usr/bin  
/usr/bin/fflas-ffpack-config  
/usr/share  
/usr/share/doc  
/usr/share/doc/fflas-ffpack  
/usr/share/doc/fflas-ffpack/README  
/usr/share/doc/fflas-ffpack/TODO  
/usr/share/doc/fflas-ffpack/changelog.Debian.gz  
/usr/share/doc/fflas-ffpackcopyright  
/usr/share/doc/fflas-ffpackNEWS.gz  
/usr/share/man  
/usr/share/man/man1  
/usr/share/man/man1/fflas-ffpack-config.1.gz

Однако, когда я использовал команду ./autogen.shсообщалось об ошибке (ERROR: Fflas-Ffpack not found!). Я не уверен, в чем проблема, и думаю, что я должен использовать --with-fflas-ffpack= вариант.

Я не знаю, правильно ли я определил проблему, и если да, то, что я должен написать вместо слова "префикс" в выражении --with-fflas-ffpack=Должен ли я написать что-то вместо [--prefix=] и какой путь мне следует назначить переменной LD_LIBRARY_PATH (/usr, /usr/include, или же /usr/share).

Буду признателен за любую помощь, которую вы можете оказать.

1 ответ

Решение

Это зависит от пакета, который я не рассматривал в деталях, но общее соглашение:

Без prefixпакет будет установлен в общесистемном расположении по умолчанию, например /usr/local/bin для двоичного и /usr/local/lib для библиотеки. Если вы хотите изменить это (например, потому что вы хотите это в /opt вместо), --prefix опция позволяет вам переопределить это. Очевидно, вам нужен доступ на запись к дереву каталогов, в котором вы указываете его для установки.

--with-whatever=path Точно так же потребует, чтобы вы указали путь после знака равенства для предыдущей установленной вами библиотеки. Если вы установили whatever в общесистемном расположении по умолчанию компоновщик должен быть в состоянии найти его, просто используя общесистемные пути по умолчанию, но если вы поместите его, скажем, в свой домашний каталог (что часто удобно при загрузке и сборке библиотека только потому, что она нужна вам для создания другого компонента (возможно, у вас нет разрешения на его установку по всему сайту, или его установка нарушит работу системы), тогда вам нужно сказать что-то вроде --with-whatever=/home/you/whatever,

Выход из dpkg -L не выглядит так, как будто на самом деле содержит библиотеку (которая выглядит так, как она должна быть).

Может быть, просто попробуйте с --with-fflas-ffpack=/usr/include/fflas-ffpack поскольку файлы заголовков установлены в подкаталоге, а не в обычном /usr/include, Или, может быть, вам это вообще не нужно, и authgen.sh скрипт уже знает, где искать эти заголовочные файлы (если #include <fflas-fpack/file.h> скорее, чем #include <file.h> тогда отдельная конфигурация не требуется).

Если это по-прежнему не помогает, возможно, вам нужно установить другой пакет или прочитать документацию, чтобы выяснить, что еще нужно сделать - похоже, отдельный пакет fflas-ffpack-dev-doc но я бы начал с README а также NEWS.gz файлы в /usr/share/doc/fflas-ffpackи справочная страница для fflas-fpack-config,

(Кстати, dpkg -L не требуется sudo привилегии для бега; он просто читает и печатает текст из читабельного мира dpkg база данных.)

Другие вопросы по тегам