Установка Term :: TermKey возвращает ошибку - PullRequest
1 голос
/ 27 ноября 2011

У меня проблема при установке Term :: TermKey с CPAN, и я не могу найти информацию о том, как ее решить. Вот вывод:

cpan[9]> install Term::TermKey
Running install for module 'Term::TermKey'
Running Build for P/PE/PEVANS/Term-TermKey-0.10.tar.gz
  Checksum was ok
  '/usr/bin/perl Build.PL installdirs=site' returned status 256, won't make
Running Build test
  Make had some problems, won't test
Running Build install
  Make had some problems, won't install

Может кто-нибудь мне помочь?

// редактировать

Я установил libtermkey, но у меня все еще есть проблема:

Building Term-TermKey
cc -I/usr/lib/perl5/core_perl/CORE -DXS_VERSION="0.10" -DVERSION="0.10" -fPIC -I/usr/local/include -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -o lib/Term/TermKey.o lib/Term/TermKey.c
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Term/TermKey/TermKey.bs')
cc -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -L/usr/local/lib -fstack-protector -o blib/arch/auto/Term/TermKey/TermKey.so lib/Term/TermKey.o -L/usr/local/lib -ltermkey
  PEVANS/Term-TermKey-0.10.tar.gz
  ./Build -- OK
'YAML' not installed, will not store persistent state
Running Build test
t/00use.t ........... 1/1 
#   Failed test 'use Term::TermKey;'
#   at t/00use.t line 8.
#     Tried to use 'Term::TermKey'.
#     Error:  Can't load '/root/.cpan/build/Term-TermKey-0.10-Y5j3Oz/blib/arch/auto/Term/TermKey/TermKey.so' for module Term::TermKey: libtermkey.so.1: nie można otworzyć pliku obiektu dzielonego: Nie ma takiego pliku ani katalogu at /usr/lib/perl5/core_perl/DynaLoader.pm line 190.

Сбой при каждом тесте. Я не знаю почему. Существует -L/usr/local/lib -ltermkey, поэтому я проверил этот каталог:

ciembor@peace lib]$ ls | grep libtermkey
libtermkey.a
libtermkey.la
libtermkey.so
libtermkey.so.1
libtermkey.so.1.4.0

И все файлы на своих местах ...

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Убедитесь, что /usr/local/lib также присутствует в $LD_LIBRARY_PATH или /etc/ld.so.conf. Без этого, даже если pkg-config сможет найти файл termkey.pc, который сообщит компилятору, где находятся файлы <termkey.h>, компоновщик (во время выполнения) не сможет связываться с действительным файлом libtermkey.so во время выполнения.

В качестве альтернативы, вы можете установить libtermkey как реальный пакет, если ваша ОС поддерживает его - я держу пакет на http://packages.leonerd.org.uk/ для тестирования Debian / нестабильно; он также может подойти для других дистрибутивов, основанных на Debian, таких как Ubuntu.

0 голосов
/ 27 ноября 2011

Когда вы устанавливаете модули через CPAN, вы не видите много сообщений об ошибках, если установка не удалась.Я бы предложил загрузить Term-TermKey-0.10.tar.gz вручную через http://search.cpan.org,, распаковать его, а затем

perl Makefile.PL
make
make test
sudo make install

На моем компьютере на первом этапе мне сказали, что я неУ меня не установлен libtermkey, и он указывает мне на скачивание.

...