Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Trying to get DBI to install on Raspberry Pi with Wheezy OS

470 views
Skip to first unread message

Steven Haun

unread,
Oct 28, 2012, 9:18:37 AM10/28/12
to dbi-...@perl.org
I have tried cpan and cpanm installs and get very non description errors (other than failed). Any help would be appreciated. Thanks.

Martin J. Evans

unread,
Oct 28, 2012, 9:27:31 AM10/28/12
to Steven Haun, dbi-...@perl.org
On 28/10/2012 13:18, Steven Haun wrote:
> I have tried cpan and cpanm installs and get very non description errors (other than failed). Any help would be appreciated. Thanks.
I installed DBI on a raspberry Pi ages ago. See bottom of
http://www.martin-evans.me.uk/node/142 and
http://www.martin-evans.me.uk/node/144

I had some problems running out of memory (from the above post):

BTW, I tried to install Perl DBI (which does not have many dependencies)
with cpanp and after 13 minutes it died with the signal 'Killed' - hmm.
I've not investigated further yet - but I had plenty of disk space left
on a 4gb card.
*UPDATE:* It appears I had some problems with my sd card - switched to
another one and the machine seems faster but cpanp still bombs out as
before - trying cpanminus.
*UPDATE2:* ilmari suggested cpanp might be a big memory user so I
installed cpanm and managed to install DBI - although the test suite
took over 60 minutes to run.

Doesn't cpanm have a verbose mode.

Martin

Steven Haun

unread,
Oct 28, 2012, 9:34:42 AM10/28/12
to Martin J. Evans, dbi-...@perl.org
I am using 'sudo cpanm -i DBI' . I found the details in the log (forgot to open it as sudo, so it looked blank). After the cp commands I found this (but don't know what 'gcc-4.7' is):

/usr/bin/perl -p -e "s/~DRIVER~/Perl/g" ./Driver.xst > Perl.xsi
/usr/bin/perl /usr/share/perl/5.14/ExtUtils/xsubpp -typemap /usr/share/perl/5.14/ExtUtils/typemap -typemap typemap Perl.xs > Perl.xsc && mv Perl.xsc Per$
gcc-4.7 -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS$
/bin/sh: 1: gcc-4.7: not found
make: *** [Perl.o] Error 127
-> FAIL Installing DBI failed. See /root/.cpanm/build.log for details.

Martin J. Evans

unread,
Oct 28, 2012, 9:36:59 AM10/28/12
to Steven Haun, dbi-...@perl.org
On 28/10/2012 13:34, Steven Haun wrote:
> I am using 'sudo cpanm -i DBI' . I found the details in the log (forgot to open it as sudo, so it looked blank). After the cp commands I found this (but don't know what 'gcc-4.7' is):
>
> /usr/bin/perl -p -e "s/~DRIVER~/Perl/g" ./Driver.xst > Perl.xsi
> /usr/bin/perl /usr/share/perl/5.14/ExtUtils/xsubpp -typemap /usr/share/perl/5.14/ExtUtils/typemap -typemap typemap Perl.xs > Perl.xsc && mv Perl.xsc Per$
> gcc-4.7 -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS$
> /bin/sh: 1: gcc-4.7: not found
> make: *** [Perl.o] Error 127
> -> FAIL Installing DBI failed. See /root/.cpanm/build.log for details.
gcc is a C compiler - you need it to compile the C code in DBI.

You need to install the gcc package. As your using debian it is probably
something like

sudo apt-get install gcc

Martin

Steven Haun

unread,
Oct 28, 2012, 9:40:01 AM10/28/12
to Martin J. Evans, dbi-...@perl.org
It appears to be installed:

root@raspberrypi:/home/pi# sudo apt-get install gcc
Reading package lists... Done
Building dependency tree
Reading state information... Done
gcc is already the newest version.
gcc set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@raspberrypi:/home/pi

Martin J. Evans

unread,
Oct 28, 2012, 9:42:02 AM10/28/12
to Steven Haun, dbi-...@perl.org
On 28/10/2012 13:40, Steven Haun wrote:
> It appears to be installed:
>
> root@raspberrypi:/home/pi# sudo apt-get install gcc
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> gcc is already the newest version.
> gcc set to manually installed.
> 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
> root@raspberrypi:/home/pi
What does perl -V output?

Steve Haun

unread,
Oct 28, 2012, 9:47:54 AM10/28/12
to Martin J. Evans, dbi-...@perl.org
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:

Platform:
osname=linux, osvers=3.2.0-2-mx5, archname=arm-linux-gnueabihf-thread-multi-64int
uname='linux build04.raspbian.lan 3.2.0-2-mx5 #1 sun apr 15 19:59:08 utc 2012 armv7l gnulinux '
config_args='-Dusethreads -Duselargefiles -Dcc=gcc-4.7 -Dccflags=-DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Dldflags= -Wl,-z,relro -Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=arm-linux-gnueabihf -Dprefix=/usr -Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.14.2 -Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.14.2 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc-4.7', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.7.0', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc-4.7', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/arm-linux-gnueabihf /lib /usr/lib/arm-linux-gnueabihf /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.14.2
gnulibc_version='2.13'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV USE_64_BIT_INT USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
USE_REENTRANT_API
Locally applied patches:
DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts
DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check.
DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information.
DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories.
DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes.
DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note that libperl-dev package is required for embedded linking
DEBPKG:fixes/respect_umask - Respect umask during installation
DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories
DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of libperl.a to /usr/lib
DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor
DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables written to the makefile
DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets.
DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor.
DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy.
DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/517938 http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS.
DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy
DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need.
DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038] http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local
DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default.
DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl.
DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/580034 Point users to Debian packages of deprecated core modules
DEBPKG:fixes/hurd-ccflags - [a190e64] http://bugs.debian.org/587901 [perl #92244] Make hints/gnu.sh append to $ccflags rather than overriding them
DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts
DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository
DEBPKG:fixes/extutils-cbuilder-cflags - [011e8fb] http://bugs.debian.org/624460 [perl #89478] Append CFLAGS and LDFLAGS to their Config.pm counterparts in EU::CBuilder
DEBPKG:fixes/module-build-home-directory - http://bugs.debian.org/624850 [rt.cpan.org #67893] Fix failing tilde test when run under a UID without a passwd entry
DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.14.2-12+rpi1 in patchlevel.h
DEBPKG:fixes/h2ph-multiarch - [e7ec705] http://bugs.debian.org/625808 [perl #90122] Make h2ph correctly search gcc include directories
DEBPKG:fixes/index-tainting - [3b36395] http://bugs.debian.org/291450 [perl #64804] RT 64804: tainting with index() of a constant
DEBPKG:fixes/document_makemaker_ccflags - http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
DEBPKG:fixes/sys-syslog-socket-timeout-kfreebsd.patch - http://bugs.debian.org/627821 [rt.cpan.org #69997] Use a socket timeout on GNU/kFreeBSD to catch ICMP port unreachable messages
DEBPKG:fixes/hurd-hints - http://bugs.debian.org/636609 Improve general GNU hints, needed for GNU/Hurd.
DEBPKG:fixes/pod_fixes - [7698aed] http://bugs.debian.org/637816 Fix typos in several pod/perl*.pod files
DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure CPAN::Distribution with correct name of html2text
DEBPKG:fixes/digest_eval_hole - http://bugs.debian.org/644108 Close the eval "require $module" security hole in Digest->new($algorithm)
DEBPKG:fixes/hurd-ndbm - [f0d0a20] [perl #102680] http://bugs.debian.org/645989 Add GNU/Hurd hints for NDBM_File
DEBPKG:fixes/sysconf.t-posix - [8040185] [perl #102888] http://bugs.debian.org/646016 Fix hang in ext/POSIX/t/sysconf.t on GNU/Hurd
DEBPKG:fixes/hurd-largefile - [1fda587] [perl #103014] http://bugs.debian.org/645790 enable LFS on GNU/Hurd
DEBPKG:debian/hurd_test_todo_syslog - http://bugs.debian.org/650093 Disable failing GNU/Hurd tests in cpan/Sys-Syslog/t/syslog.t
DEBPKG:fixes/hurd_skip_itimer_virtual - [rt.cpan.org #72754] http://bugs.debian.org/650094 Skip interval timer tests in Time::HiRes on GNU/Hurd
DEBPKG:debian/hurd_test_skip_sigdispatch - http://bugs.debian.org/650188 Disable failing GNU/Hurd tests op/sigdispatch.t
DEBPKG:debian/hurd_test_skip_stack - http://bugs.debian.org/650175 Disable failing GNU/Hurd tests dist/threads/t/stack.t
DEBPKG:debian/hurd_test_skip_pipe - http://bugs.debian.org/650187 Disable failing GNU/Hurd tests io/pipe.t
DEBPKG:debian/hurd_test_skip_io_pipe - http://bugs.debian.org/650096 Disable failing GNU/Hurd tests dist/IO/t/io_pipe.t
DEBPKG:fixes/manpage_name_CPAN - http://bugs.debian.org/650448 [rt.cpan.org #73396] cpan/CPAN: add NAME headings in modules with POD
DEBPKG:fixes/manpage_name_CPANPLUS - http://bugs.debian.org/650450 [rt.cpan.org #73398] cpan/CPANPLUS: add NAME headings in modules with POD
DEBPKG:fixes/manpage_name_Test-Harness - http://bugs.debian.org/650451 [rt.cpan.org #73399] cpan/Test-Harness: add NAME headings in modules with POD
DEBPKG:fixes/manpage_name_Term-UI - http://bugs.debian.org/650452 [rt.cpan.org #73400] cpan/Term-UI: add NAME headings in modules with POD
DEBPKG:fixes/podlators_ae_ligature_fallback - http://bugs.debian.org/652851 Fix the ASCII fallback string for AE
DEBPKG:fixes/fsf_postal_address - [de89470] Update references to the FSF's postal address
DEBPKG:fixes/cpan_module_pod_fixes - [perl #106870] [rt.cpan.org #73447] [rt.cpan.org #73446] Fix POD formatting in Term-Cap and Pod-Parser
DEBPKG:fixes/cgi_no_shellwords_pl - Use Text::ParseWords instead of shellwords.pl
DEBPKG:fixes/path_max_fallback - [perl #109262] http://bugs.debian.org/656869 Don't use _POSIX_PATH_MAX as a fallback PATH_MAX
DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/660195 [rt.cpan.org #28632] Make EU::MM pass LD through to recursive Makefile.PL invocations
DEBPKG:fixes/propagate_tainted_errors.patch - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663158 [perl #111654] properly propagate tainted errors
DEBPKG:debian/perl5db-x-terminal-emulator.patch - http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm in perl5db.pl
DEBPKG:fixes/socket_cache_propagate - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659075 [rt.cpan.org #61577] [perl #112736] sockdomain and socktype undef on newly accepted sockets
Built under linux
Compiled at Jun 26 2012 01:20:41
@INC:
/etc/perl
/usr/local/lib/perl/5.14.2
/usr/local/share/perl/5.14.2
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.14
/usr/share/perl/5.14
/usr/local/lib/site_perl
.

Martin J. Evans

unread,
Oct 28, 2012, 9:54:31 AM10/28/12
to Steve Haun, dbi-...@perl.org
On 28/10/2012 13:47, Steve Haun wrote:
> Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
>
> Platform:
> osname=linux, osvers=3.2.0-2-mx5, archname=arm-linux-gnueabihf-thread-multi-64int
> uname='linux build04.raspbian.lan 3.2.0-2-mx5 #1 sun apr 15 19:59:08 utc 2012 armv7l gnulinux '
> config_args='-Dusethreads -Duselargefiles -Dcc=gcc-4.7 -Dccflags=-DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Dldflags= -Wl,-z,relro -Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=arm-linux-gnueabihf -Dprefix=/usr -Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.14.2 -Dsitearch=/usr/local/lib/perl/5.14.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.14.2 -des'
> hint=recommended, useposix=true, d_sigaction=define
> useithreads=define, usemultiplicity=define
> useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
> use64bitint=define, use64bitall=undef, uselongdouble=undef
> usemymalloc=n, bincompat5005=undef
> Compiler:
> cc='gcc-4.7', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector
Your perl was compiled with gcc-4.7 and so that is what gets used when
you build a module with C code. My raspberry pi is at work right now so
I cannot check but basically the build is attempting to run gcc-4.7 and
it either does not exist or is not on your path.

What do you get when you type the following at the command line:

$ which gcc
$ gcc
$ gcc --version
$ gcc-4.7

If gcc --version reports 4.7 then you can probably get away with adding
a symbolic link in whatever dir gcc is found (see which gcc above) from
gcc-4.7 to gcc. Something like:

cd /usr/bin
ln -s /usr/bin/gcc gcc-4.7

but that depends on what which gcc and gcc --version says.

BTW, I'm on irc.perl.org in the #dbi channel (as mje) if you want a chat.

Martin

<snipped more -V output>

Lincoln A Baxter

unread,
Oct 28, 2012, 10:00:37 AM10/28/12
to Steve Haun, Martin J.Evans, dbi-...@perl.org
Most the the common high used perl cpan modules are package by Debian.
Try installing the package...

aptget libdbi-perl

Lincoln

Steve Haun

unread,
Oct 28, 2012, 10:17:02 AM10/28/12
to l...@lincolnbaxter.com, dbi-...@perl.org
That got some portion of DBI installed, because my code gets past 'use DBI;', but not past '$dbh = DBI->connect( "dbi:SQLite:$DBfile" ) || die "Cannot connect: $DBI::errstr";' The error in my apache log states Can't locate DBD/SQLite.pm .

Martin J. Evans

unread,
Oct 28, 2012, 10:43:51 AM10/28/12
to Steve Haun, l...@lincolnbaxter.com, dbi-...@perl.org
On 28/10/2012 14:17, Steve Haun wrote:
> That got some portion of DBI installed, because my code gets past 'use DBI;', but not past '$dbh = DBI->connect( "dbi:SQLite:$DBfile" ) || die "Cannot connect: $DBI::errstr";' The error in my apache log states Can't locate DBD/SQLite.pm .
>
Now you need the DBD::SQLite perl module. You can probably install that
like Lincoln suggested for DBI.
0 new messages