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
база данных.)