Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Добрый день.

 

Поиск рыл, ничего не нашел.

Вопрос - не могу прикрутить sqlite к Perl'у. Установил сам Perl, установил perl-dbi. При выполнении простого скрипта

#!/opt/bin/perl

use DBI;
use strict;

my $driver   = "SQLite";
my $database = "test.db";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "root";
my $password = "654321";
my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })
                      or die $DBI::errstr;

print "Opened database successfully\n";

выдает следующее

 

install_driver(SQLite) failed: Can't locate DBD/SQLite.pm in @INC (you may need to install the DBD::SQLite module) (@INC contains: /opt/lib/perl5/5.22 .) at (eval 5) line 3.
Perhaps the DBD::SQLite perl module hasn't been fully installed,
or perhaps the capitalisation of 'SQLite' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.
 at ./test.pl line 11.
 

С бубном бегал (пытался устанавливать perlbase-anydbm-file и проч. Не помогло.

 

Куда смотреть?

 

Спасибо.

Опубликовано
1 час назад, Slacky сказал:

Куда смотреть?

Начальная установка Perl включает более 100 пакетов. Можно поставить 1ой командой - http://forums.zyxmon.org/viewtopic.php?p=16476#p16476

Для поддержки sqlite скорее всего одним пакетом не обойтись - изучите список пакетов perl.

Опубликовано
11 час назад, zyxmon сказал:

Начальная установка Perl включает более 100 пакетов. Можно поставить 1ой командой - http://forums.zyxmon.org/viewtopic.php?p=16476#p16476

Для поддержки sqlite скорее всего одним пакетом не обойтись - изучите список пакетов perl.

Установил, как предлагалось по ссылке. Не помогло.

install_driver(SQLite) failed: Can't locate DBD/SQLite.pm in @INC (you may need to install the DBD::SQLite module) (@INC contains: /opt/lib/perl5/5.22 .) at (eval 5) line 3.
Perhaps the DBD::SQLite perl module hasn't been fully installed,
or perhaps the capitalisation of 'SQLite' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge.
 at ./test.pl line 11.

Опубликовано
16 минут назад, zyxmon сказал:

Так это только первая часть. Выше написано....

Если честно, про"выше написано" не совсем понял ...

Не понятно, что изучать в пакетах. К тому же, все пакеты от Perl вообще поставить не получается

Configuring perlbase-universal.
Configuring perlbase-storable.
Configuring perlbase-ipc.
Configuring perl-dbi.
Configuring perl-dev.
Configuring perl-image-exiftool.
Configuring perl-net-telnet.
Collected errors:
 * check_data_file_clashes: Package perl-test-harness wants to install file /opt/lib/perl5/5.22/TAP/Base.pm
        But that file is already provided by package  * perlbase-tap
 * check_data_file_clashes: Package perl-test-harness wants to install file /opt/lib/perl5/5.22/TAP/Formatter/Base.pm
        But that file is already provided by package  * perlbase-tap
 * check_data_file_clashes: Package perl-test-harness wants to install file /opt/lib/perl5/5.22/TAP/Formatter/Color.pm
        But that file is already provided by package  * perlbase-tap
 * check_data_file_clashes: Package perl-test-harness wants to install file /opt/lib/perl5/5.22/TAP/Formatter/Console/ParallelSession.pm
        But that file is already provided by package  * perlbase-tap
 

Ну и там много еще чего внизу с perlbase-tap ...

Опубликовано
27 минут назад, Slacky сказал:

К тому же, все пакеты от Perl вообще поставить не получается

Где был такой совет? Не нужжно это делать. Если пакета нет - https://github.com/Entware-ng/Entware-ng/wiki/Self-installation-of-perl-modules

Опубликовано
15 часов назад, zyxmon сказал:

Где был такой совет? Не нужжно это делать. Если пакета нет - https://github.com/Entware-ng/Entware-ng/wiki/Self-installation-of-perl-modules

О, а вот это хорошая ссылка. Спасибо. Буду пробовать.

Опубликовано

Не, все равно не получилось. Создание makefile проходит успешно ...

root@Keenetic_Extra:/opt/usr/src/perl/DBD-SQLite-1.54$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Using DBI 1.634 (for perl 5.022001 on mipsel-linux-glibc) installed in /opt/lib/perl5/5.22/auto/DBI/
Generating a Unix-style Makefile
Writing Makefile for DBD::SQLite
Writing MYMETA.yml and MYMETA.json

А вот дальше этому всему не хватает Driver_xst.h.

root@Keenetic_Extra:/opt/usr/src/perl/DBD-SQLite-1.54$ make
cp lib/DBD/SQLite/VirtualTable/FileContent.pm blib/lib/DBD/SQLite/VirtualTable/FileContent.pm
cp lib/DBD/SQLite/VirtualTable/PerlData.pm blib/lib/DBD/SQLite/VirtualTable/PerlData.pm
cp lib/DBD/SQLite/VirtualTable.pm blib/lib/DBD/SQLite/VirtualTable.pm
cp lib/DBD/SQLite.pm blib/lib/DBD/SQLite.pm
cp lib/DBD/SQLite/Cookbook.pod blib/lib/DBD/SQLite/Cookbook.pod
cp lib/DBD/SQLite/Constants.pm blib/lib/DBD/SQLite/Constants.pm
cp lib/DBD/SQLite/Fulltext_search.pod blib/lib/DBD/SQLite/Fulltext_search.pod
Running Mkbootstrap for DBD::SQLite ()
chmod 644 "SQLite.bs"
make: *** No rule to make target '/opt/lib/perl5/5.22/auto/DBI/Driver_xst.h', needed by 'SQLite.xsi'.  Stop.

В auto/DBI его нет, есть 

root@Keenetic_Extra:/opt/lib/perl5/5.22/auto/DBI$ ls -l
-rwxr-xr-x    1 root     root        139092 Feb 20 08:26 DBI.so
-rw-r--r--    1 root     root         23067 Feb 20 08:26 Driver.xst
 

Поиск рыл, ничего внятного ...

Опубликовано

Изучите кнопочку CODE на форуме. Если листинг большой - выкладывайте на https://pastebin.com

8 минут назад, Slacky сказал:

А вот дальше этому всему не хватает Driver_xst.h.

это жe target!

PS Наверняка инструкцию выполнили не полностью.

Опубликовано
59 минут назад, zyxmon сказал:

PS Наверняка инструкцию выполнили не полностью.

Каюсь. Прочел только до установки CPAN-DistnameInfo - ну типа понял. А там дальше несколько по другому. Пока положительным результатом похвастаться не могу - долго это все происходит ...

Опубликовано

Надеюсь, sqlite3 поставили. Если нет - не будет найдена либа при линковке.

5 минут назад, Slacky сказал:

долго это все происходит ...

Если дошло до тестов - все ок! :-D

Опубликовано
8 минут назад, zyxmon сказал:

Надеюсь, sqlite3 поставили. Если нет - не будет найдена либа при линковке.

Если дошло до тестов - все ок! :-D

Конечно поставил - sqlite3-cli и libsqlite3.

До тестов не дошло. При попытке установки HTTP::Date пишет, что нашел новую версию cpan, ну ее что-то долго устанавливает ...

Опубликовано

Инструкция писалась давно, могла частично и устареть. Не так давно на НАСах по ней пакеты ставили.

Вот с неделю назад с форума

Цитата

For those trying to install Net::SSLeay this CPAN line worked for me
o conf makepl_arg 'LIBS="-L/opt/lib -lcrypto -lssl"'

 

Опубликовано

Дал вечером команду install HTTP::Date и пошел спать.

Утром увидел, что все ок.

All tests successful.
Files=5, Tests=508,  7 wallclock secs ( 1.41 usr  0.10 sys +  4.15 cusr  0.33 csys =  5.99 CPU)
Result: PASS
  GBARR/TimeDate-2.30.tar.gz
  /opt/bin/make test -- OK
Running make install
Use of chdir('') or chdir(undef) as chdir() is deprecated at /opt/lib/perl5/5.22/ExtUtils/Install.pm line 332.
Appending installation info to /opt/lib/perl5/5.22/perllocal.pod
  GBARR/TimeDate-2.30.tar.gz
  /opt/bin/make install  -- OK

cpan[3]> 

Дал команду bye. Висит уже полчаса ...

cpan[3]> bye
Terminal does not support GetHistory.
Lockfile removed.

Ладно, нужно убегать. Оставлю, вечером посмотрю - отлипнет ли ...

Опубликовано (изменено)

Отлипла. Но все равно не работает, результат тот же.

Running Mkbootstrap for DBD::SQLite ()
chmod 644 "SQLite.bs"
make: *** No rule to make target '/opt/lib/perl5/5.22/auto/DBI/Driver_xst.h', needed by 'SQLite.xsi'.  Stop.
  ISHIGAKI/DBD-SQLite-1.54.tar.gz
  /opt/bin/make -- NOT OK
Failed during this command:
 ISHIGAKI/DBD-SQLite-1.54.tar.gz              : make NO

Вечером все снесу, попробую по-новой ...

Изменено пользователем Slacky
Опубликовано

Попробовал на mipsel - действительно жуткие тормоза. Причем тормозит  CPAN, пишет громадные файлы. Снял.

Можно попробовать ставить руками, только смотреть зависимости и ставить сначала их. Стал ставить DBI (зависимость) - http://search.cpan.org/~timb/DBI-1.636/DBI.pm

make проходит, все нужные файлы компилируются и создаются, а install вываливается 

# make install
Use of chdir('') or chdir(undef) as chdir() is deprecated at /opt/lib/perl5/5.22/ExtUtils/Install.pm line 332.
Use of chdir('') or chdir(undef) as chdir() is deprecated at /opt/lib/perl5/5.22/ExtUtils/Install.pm line 332.
Use of chdir('') or chdir(undef) as chdir() is deprecated at /opt/lib/perl5/5.22/ExtUtils/Install.pm line 332.
Installing /opt/lib/perl5/5.22/auto/DBI/Driver.xst
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Cannot copy 'blib/arch/auto/DBI/Driver.xst' to '/opt/lib/perl5/5.22/auto/DBI/Driver.xst': No such file or directory
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 at -e line 1.
make: *** [Makefile:1106: pure_site_install] Error 2
root@Keenetic_Extra:/opt/root/perl_install/DBI-1.636$
root@Keenetic_Extra ~/p/DBI-1.636# ls blib/arch/auto/DBI/
DBI.so        Driver.xst    dbd_xsh.h     dbipport.h    dbixs_rev.h
DBIXS.h       Driver_xst.h  dbi_sql.h     dbivport.h

Думаю проще с этим разобраться.

Опубликовано
21 час назад, zyxmon сказал:

make проходит, все нужные файлы компилируются и создаются, а install вываливается 

Вчера некогда было этим заниматься. Но make у меня не проходит.

А можно попросить листинг посмотреть opkg list-installed?

Опубликовано
36 минут назад, Slacky сказал:

А можно попросить листинг посмотреть opkg list-installed?

По инструкции все и ставил, включая некоторые coreutils*. Лучше Вы полные листинги выкладывайте на pastebin.

37 минут назад, Slacky сказал:

Но make у меня не проходит.

Должны быть установлены make, gcc, распакованы хедеры, установлены либы, с которыми линковка будет.

Лучше Вам дам лог установки DBI (в самом конце ошибка, файл которые не удается скопировать есть!)

Вот лог - https://pastebin.com/2V6zi0Uu 

Причина проблем, возможно, в самых первых строках лога.

 

Опубликовано
26 минут назад, zyxmon сказал:

Очень похоже на проблему чисто ndms. Perl не определяет текущую директорию и установка не проходит.

Есть решение?

Опубликовано
51 минуту назад, Slacky сказал:

Есть решение?

Блин. Кто из нас с Вами знгаток по perl и должен решение искать. Проблема то локализована!

Ищите в файле `/opt/lib/perl5/5.22/Cwd.pm` строку `/usr/bin/pwd` и меняете на `/opt/bin/pwd` - после этого все ставится

Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /opt/lib/perl5/5.22/auto/DBI/Driver.xst
Installing /opt/lib/perl5/5.22/auto/DBI/DBIXS.h
Installing /opt/lib/perl5/5.22/auto/DBI/DBI.so
Installing /opt/lib/perl5/5.22/auto/DBI/dbipport.h
Installing /opt/lib/perl5/5.22/auto/DBI/dbivport.h
Installing /opt/lib/perl5/5.22/auto/DBI/Driver_xst.h
Installing /opt/lib/perl5/5.22/auto/DBI/dbi_sql.h
Installing /opt/lib/perl5/5.22/auto/DBI/dbixs_rev.h
Installing /opt/lib/perl5/5.22/auto/DBI/dbd_xsh.h
Installing /opt/lib/perl5/5.22/dbixs_rev.pl
Installing /opt/lib/perl5/5.22/DBI.pm
....

 

Опубликовано
4 минуты назад, zyxmon сказал:

Блин. Кто из нас с Вами знгаток по perl и должен решение искать. Проблема то локализована!

Ну если Вы меня знатоком считаете, то конечно спасибо, но это не совсем так. Я довольно плотно изучал (в качестве чистого хобби) С, С++, Perl, Linux и проч. Но это было более 10 лет назад. Последнее время я простой юзер. Знания, когда их не применяешь, забываются ...

Спасибо.

Опубликовано

Спасибо, все заработало :))

root@Keenetic_Extra:/opt/usr/local/etc/sqlite$ ./test.pl
Opened database successfully

Но если честно, я "оригинальный" DBI не ставил сначала, только из коробки perl-dbi. Потому хедеров и не было ...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.