Как я могу установить библиотеку и включить пути для Makefile.PL для одной установки? - PullRequest
8 голосов
/ 30 сентября 2010

Как я могу сказать CPAN дать Makefile.PL один конкретный аргумент в одной конкретной установке?

В частности. Я хочу установить XML::LibXML, а apt-get установил библиотеку в /usr/lib/libxml2.so.2.6.32. Makefile.PL имеет проблемы с этим и говорит мне:

using fallback values for LIBS and INC
options:
  LIBS='-L/usr/local/lib -L/usr/lib -lxml2 -lm'
  INC='-I/usr/local/include -I/usr/include'
If this is wrong, Re-run as:
  $ /usr/bin/perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'

looking for -lxml2... no
looking for -llibxml2... no
libxml2 not found
Try setting LIBS and INC values on the command line
Or get libxml2 from 
  http://xmlsoft.org/

Я знаю, где находится libxml2, но я не знаю, как сообщить об этом Makefile.PL.

edit: когда я делаю dpkg -L libxml2 (это дебиан), я вижу

/.
/usr
/usr/lib
/usr/lib/libxml2.so.2.6.32
/usr/share
/usr/share/doc
/usr/share/doc/libxml2
/usr/share/doc/libxml2/AUTHORS
/usr/share/doc/libxml2/changelog.Debian.gz
/usr/share/doc/libxml2/copyright
/usr/share/doc/libxml2/README
/usr/share/doc/libxml2/README.Debian
/usr/share/doc/libxml2/NEWS.gz
/usr/share/doc/libxml2/changelog.gz
/usr/share/doc/libxml2/TODO.gz
/usr/lib/libxml2.so.2

Я не являюсь пользователем root на этой машине и не могу создать символическую ссылку в /usr/lib или исправить ее.

Ответы [ 2 ]

13 голосов
/ 30 сентября 2010

В оболочке CPAN вы можете установить нужные значения:

$ cpan
cpan shell -- CPAN exploration and modules installation (v1.9205)
ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)

cpan[1]> o conf makepl_arg
    makepl_arg         []
Type 'o conf' to view all configuration items


cpan[2]> o conf makepl_arg "LIBS=-L/foo/bar INC=-I/foo/bar/include"
    makepl_arg         [LIBS=-L/foo/bar INC=-I/foo/bar/include]
Please use 'o conf commit' to make the config permanent!

cpan[3]> install Some::Module

С помощью команды cpan вы можете использовать переключатель -j для загрузки файла пользовательской конфигурации.Вы можете начать с переключателя -J, чтобы сбросить конфигурацию, затем изменить нужные значения и перезагрузить ее:

 $ cpan -J > my_config.pm
 .... edit file ....
 $ cpan -j my_config.pm -i Some::Module

Однако я подозреваю, что подозрения rafl верны .

3 голосов
/ 30 сентября 2010

Makefile.PL ищет libxml2.so. Обычно это символическая ссылка на ваш реальный совместно используемый объект libxml2, например libxml2.so.2.6.32. Если по какой-либо причине эта символическая ссылка отсутствует, потому что вы удалили ее, ваш поставщик не поставил ее с пакетом заголовков libxml2 (например, libxml2-dev в Debian / Ubuntu / etc), вам нужно будет создать его самостоятельно. *

Вам не нужно передавать какой-либо конкретный аргумент в Makefile.PL здесь. Это уже ищет в нужных местах. Вещи, которые он ищет, просто отсутствуют.

...