Slacky Posted April 7, 2017 Share Posted April 7, 2017 Добрый день. Поиск рыл, ничего не нашел. Вопрос - не могу прикрутить 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 и проч. Не помогло. Куда смотреть? Спасибо. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 7, 2017 Share Posted April 7, 2017 1 час назад, Slacky сказал: Куда смотреть? Начальная установка Perl включает более 100 пакетов. Можно поставить 1ой командой - http://forums.zyxmon.org/viewtopic.php?p=16476#p16476 Для поддержки sqlite скорее всего одним пакетом не обойтись - изучите список пакетов perl. Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 7, 2017 Author Share Posted April 7, 2017 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. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 7, 2017 Share Posted April 7, 2017 28 минут назад, Slacky сказал: Установил, как предлагалось по ссылке. Не помогло. Так это только первая часть. Выше написано.... Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 7, 2017 Author Share Posted April 7, 2017 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 ... Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 7, 2017 Share Posted April 7, 2017 27 минут назад, Slacky сказал: К тому же, все пакеты от Perl вообще поставить не получается Где был такой совет? Не нужжно это делать. Если пакета нет - https://github.com/Entware-ng/Entware-ng/wiki/Self-installation-of-perl-modules Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 8, 2017 Author Share Posted April 8, 2017 15 часов назад, zyxmon сказал: Где был такой совет? Не нужжно это делать. Если пакета нет - https://github.com/Entware-ng/Entware-ng/wiki/Self-installation-of-perl-modules О, а вот это хорошая ссылка. Спасибо. Буду пробовать. Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 8, 2017 Author Share Posted April 8, 2017 Не, все равно не получилось. Создание 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 Поиск рыл, ничего внятного ... Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 8, 2017 Share Posted April 8, 2017 Изучите кнопочку CODE на форуме. Если листинг большой - выкладывайте на https://pastebin.com 8 минут назад, Slacky сказал: А вот дальше этому всему не хватает Driver_xst.h. это жe target! PS Наверняка инструкцию выполнили не полностью. Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 8, 2017 Author Share Posted April 8, 2017 59 минут назад, zyxmon сказал: PS Наверняка инструкцию выполнили не полностью. Каюсь. Прочел только до установки CPAN-DistnameInfo - ну типа понял. А там дальше несколько по другому. Пока положительным результатом похвастаться не могу - долго это все происходит ... Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 8, 2017 Share Posted April 8, 2017 Надеюсь, sqlite3 поставили. Если нет - не будет найдена либа при линковке. 5 минут назад, Slacky сказал: долго это все происходит ... Если дошло до тестов - все ок! Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 8, 2017 Author Share Posted April 8, 2017 8 минут назад, zyxmon сказал: Надеюсь, sqlite3 поставили. Если нет - не будет найдена либа при линковке. Если дошло до тестов - все ок! Конечно поставил - sqlite3-cli и libsqlite3. До тестов не дошло. При попытке установки HTTP::Date пишет, что нашел новую версию cpan, ну ее что-то долго устанавливает ... Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 8, 2017 Share Posted April 8, 2017 Инструкция писалась давно, могла частично и устареть. Не так давно на НАСах по ней пакеты ставили. Вот с неделю назад с форума Цитата For those trying to install Net::SSLeay this CPAN line worked for meo conf makepl_arg 'LIBS="-L/opt/lib -lcrypto -lssl"' Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 9, 2017 Author Share Posted April 9, 2017 Дал вечером команду 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. Ладно, нужно убегать. Оставлю, вечером посмотрю - отлипнет ли ... Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 9, 2017 Author Share Posted April 9, 2017 (edited) Отлипла. Но все равно не работает, результат тот же. 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 Вечером все снесу, попробую по-новой ... Edited April 9, 2017 by Slacky Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 9, 2017 Share Posted April 9, 2017 По Вашим обрывкам логов ничего сказать нельзя. Swap включите! Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 9, 2017 Share Posted April 9, 2017 Попробовал на 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 Думаю проще с этим разобраться. Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 10, 2017 Author Share Posted April 10, 2017 21 час назад, zyxmon сказал: make проходит, все нужные файлы компилируются и создаются, а install вываливается Вчера некогда было этим заниматься. Но make у меня не проходит. А можно попросить листинг посмотреть opkg list-installed? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 10, 2017 Share Posted April 10, 2017 36 минут назад, Slacky сказал: А можно попросить листинг посмотреть opkg list-installed? По инструкции все и ставил, включая некоторые coreutils*. Лучше Вы полные листинги выкладывайте на pastebin. 37 минут назад, Slacky сказал: Но make у меня не проходит. Должны быть установлены make, gcc, распакованы хедеры, установлены либы, с которыми линковка будет. Лучше Вам дам лог установки DBI (в самом конце ошибка, файл которые не удается скопировать есть!) Вот лог - https://pastebin.com/2V6zi0Uu Причина проблем, возможно, в самых первых строках лога. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 10, 2017 Share Posted April 10, 2017 Очень похоже на проблему чисто ndms. Perl не определяет текущую директорию и установка не проходит. Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 10, 2017 Author Share Posted April 10, 2017 26 минут назад, zyxmon сказал: Очень похоже на проблему чисто ndms. Perl не определяет текущую директорию и установка не проходит. Есть решение? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted April 10, 2017 Share Posted April 10, 2017 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 .... Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 10, 2017 Author Share Posted April 10, 2017 4 минуты назад, zyxmon сказал: Блин. Кто из нас с Вами знгаток по perl и должен решение искать. Проблема то локализована! Ну если Вы меня знатоком считаете, то конечно спасибо, но это не совсем так. Я довольно плотно изучал (в качестве чистого хобби) С, С++, Perl, Linux и проч. Но это было более 10 лет назад. Последнее время я простой юзер. Знания, когда их не применяешь, забываются ... Спасибо. Quote Link to comment Share on other sites More sharing options...
Slacky Posted April 10, 2017 Author Share Posted April 10, 2017 Спасибо, все заработало :)) root@Keenetic_Extra:/opt/usr/local/etc/sqlite$ ./test.pl Opened database successfully Но если честно, я "оригинальный" DBI не ставил сначала, только из коробки perl-dbi. Потому хедеров и не было ... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.