Dependency Issues with apt-get


Forum: Apps
Topic: Dependency Issues with apt-get
started by: Juanito

Posted by Juanito on Mar. 04 2007,13:34
I've been trying to install the m4, autoconf and automake packages (because they are required, in turn, to compile an application to use a Bluetooth headset) but ran across a strange problem with apt-get.

This is using DSL 3.3 rc1 and the latest dpkg.dsl with the woody archives (I did not edit sources.list). After "apt-get update" on oldstable, the m4 package installs without problems - but:

# apt-get install autoconf
...
Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that the package is simply not installable and a bug report against that package should be filed. The following information may help to resolve the situation:

The following packages have unmet dependencies:
 autoconf: Depends: perl (> 5.005) but it is not going to be installed
               Depends: autoconf2.13 (>= 2.13-41) but it is not going to be installed
E: Broken packages

I have seen a similar message when trying to install from testing or unstable but never from oldstable or stable.

Given that DSL has perl 5.8.0, does anybody know the reason for the error message - is it because of the way some libraries are stripped from DSL?

Note also:

# apt-get install autoconf2.13
...
 autoconf2.13: Depends: autoconf (>= 2.50) but it is not going to be installed
               Depends: perl but it is not going to be installed
               Depends: libfile-temp-perl

# apt-get install libfile-temp-perl
...
 perl-modules: Depends: perl (>= 5.6.1-1) but it is not going to be installed

# apt-get install automake        
...
 automake: Depends: autoconf but it is not going to be installed

Posted by Jason W on Mar. 04 2007,23:49
I got those errors all the time using apt with DSL.  Debian Woody of course does not have Perl 5.8.  It only has up to version 5.6, so I reckon apt does not even know that the installation of Perl 5.8 exists.  As you know, DSL is based on Debian Woody but also has a lot added that basically breaks the apt system in many situations.  Makes it hard to meet dependencies to compile programs, though there are ways around it.  I basically started treating DSL as if I were using Slackware and don't even use apt much at all and manually install stuff instead.  Life has been much easier since.
Posted by Juanito on Mar. 05 2007,03:50
Quote (Jason W @ Mar. 04 2007,22:49)
I basically started treating DSL as if I were using Slackware and don't even use apt much at all and manually install stuff instead. Life has been much easier since.

Well...maybe.

Although this often works, I sometimes have difficultly to find a .tar.gz package of the right "vintage" to install easily and occasionally cannot find the package at all.

Posted by Jason W on Mar. 05 2007,04:16
To make things easy for me, I tend to do most of my compiling for DSL on Debian Woody, which I also use as my HD install system.  The resulting packages can usually be plugged right in to DSL or even Debian Sarge since older packages seem to work on newer systems, but not the other way around.  In Woody, I can have -dev packages installed coming out my ears making it much easier to work with than trying to compile things for DSL, which by it's very nature makes it hard to have the right -dev packages installed due to it's design.  If I must compile on DSL, I sometimes have to grab packages from Woody and install them with dpkg, even having to do a dpkg --force-all -i pkgname.deb at times.  I am not very experienced on compiling on DSL since I quickly fell into the dependency issues that made me run back to Woody to do my compiling.  Sure, I took the easy way out, but I am learning more about the DSL development system.
 There is the occasional dependency issue that you will run into when compiling on Woody for DSL since DSL has some updated and different packages but that is the exception and not the rule.  Now for kernel stuff, one of course must use DSL or install the specific kernel stuff on another system.  Hope this made some sense.

Posted by ^thehatsrule^ on Mar. 05 2007,06:49
For autoconf, automake, m4, libtool, and other gnu tools, I have always downloaded it and built it from source (watch out for the many different versions, though!).
Posted by WDef on Mar. 05 2007,20:19
Juanito, I have an autoconf2.60_automake-1.10.dsl extension (built from source) that I haven't got around to posting.  Used successfully a number of times.  I promise to pack m4 into it as well and send this to Robert within 24 hours.

I did build early versions of autoconf and automake from deb packages (woody and various backports) using various  manipulations of the order of installing deps and using dpkg options like --ignore-depends or --force-all  This can sometimes be useful for fighting out of  dependency hell issues like that one.

But I don't use these at all since compiling the new version and I don't know how reliable they are.

JasonW's woody hd install sounds highly useful.

Posted by Juanito on Mar. 06 2007,03:40
Thanks - I was in the middle of building an autoconf/automake package from Debian stable, but I'll use yours instead.

Unfortunately, I don't have the full use of a machine to make an oldstable hd installation...

Posted by Juanito on Mar. 07 2007,07:09
I'm still having problems with this, both using WDef's extension (thanks) and when using "apt-get install" on Debian stable.

It looks like the problem is related to the way DSL has Perl installed - in fact the "apt-get install' option works (with force loopbreak) until reboot and then, no matter how I build a dsl extension, will no longer work.

The error I get is of the following form:

# aclocal
Can't locate File/stat.pm in @INC (@INC contains: /usr/local/share/automake-1.10 /etc/perl /usr/local/lib/perl/5.8.0 /usr/local/share/perl/5.8.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8.0 /usr/share/perl/5.8.0 /usr/local/lib/site_perl .) at /usr/local/share/automake-1.10/Automake/FileUtils.pm line 41.
BEGIN failed--compilation aborted at /usr/local/share/automake-1.10/Automake/FileUtils.pm line 41.
...etc, etc

The file being looked for is in /usr/share/perl/5.8.4/File/stat.pm, I guess Perl 5.8.4 is either installed as an upgrade to Perl 5.8.0 included with DSL or because dpkg/apt-get cannot "see" the Perl 5.8.0 installation.

Not really understanding what @INC is about (it doesn't appear to be a file, is it a variable?), I tried replacing /usr/share/perl/5.8.0 with a symlink to /usr/share/perl/5.8.4 but this doesn't help - does anybody have any suggestions?

Posted by WDef on Mar. 07 2007,11:30
Try installing the gtk2 extension since it contains a nearly full version of a more recent perl.

I can't remember what I installed when I used the autoconf-automake extension I sent you and will have to test again but I know it works
dsl's base perl is sadly crippled since it's missing most of the core modules, and it doesn't match either the version of perl from Woody (older) or the version of perl on the Knoppix3.4 motherdisk. (newer).

@INC is the perl environment variable that contains the paths where perl looks for its modules, which are the files ending in .pm

Perl modules tend to be version-specific so that's why your symlinks won't work.

Posted by Juanito on Mar. 07 2007,12:25
I ended up doing the obvious (which I didn't think of before) and compiled Perl 5.8.0 from the binary .tar.gz over the top of the DSL Perl 5.8.0

Once that was in place, I could compile autoconf 2.59 and automake 1.8.5 (chosen for their 2003 vintage) from the binaries.

I made separate extensions for Perl and autoconf and, once I get around to it, I'll test to see if autoconf will work with the base DSL or if I need the full Perl 5.8.0

Anyway, I managed to compile a Bluetooth headset driver using aclocal/autoconf which was the object of the exercise :)

Posted by WDef on Mar. 07 2007,16:54
I just tested the extension I sent you and it works with gtk2, m4 -1.4.4 and the libtool extension (and gcc1-with-libs to be precise)  installed. Did you test it?

I found my notes and actually I was using it with woody's perl, but it seems perl-5.8.7 from gtk2 works.  I just used it to build a configure and makefile for faac.

You may be right to use vintage autoconf_automake for old sources.  New versions always want the "latest" autoconf and automake however.

In any case: do us a favor and post your perl-5.8.0 as an extension, that way we'll get the core modules for that version.  Maybe Robert can be coaxed into squeezing them into the base so we don't have a seriously challenged perl .... :=)  

I'll post the newer autoconf etc including m4.

Can anyone tell me if libtool is usually required?  I think only sometimes ....?

EDIT: Actually it would probably be better if dsl simply used a full version of woody's perl sans docs.  There's not a whole lot of difference for most users, and where there is a difference it is clearly documented in perldocs.  Having perl-5.8.0 instead breaks almost anything from woody that uses perl.  The only way around this I've found is to force install woody perl over 5.8.0 with --ignore-deps

Posted by ^thehatsrule^ on Mar. 07 2007,23:30
Quote
Taken from a 5.8.x perl package, you'll need
/usr/share/perl/5.8.0/File/Basename.pm
/usr/share/perl/5.8.0/File/stat.pm
/usr/share/perl/5.8.0/File/Compare.pm
/usr/share/perl/5.8.0/File/Copy.pm
/usr/share/perl/5.8.0/Class/Struct.pm
(from my other thread in < http://damnsmalllinux.org/cgi-bin....t=16260 > )

These modules seemed sufficient enough for my compiling needs, and I think I still have the rather small extension created for that purpose - if someone wants them.  I don't think all of the modules will be placed in the default DSL image due to their size.

For libtool, I think there is some version available (forgot which mydsl package) but it's one of those things listed as 'recommended'.

Posted by WDef on Mar. 08 2007,14:06
That's interesting - perhaps John and Robert might look at augmenting the modules by at least those (if they're reading this).

An extension containing all of the 5.8.0  core modules would still be nice.

Posted by roberts on Mar. 08 2007,16:18
That would be John's call, he is the Perl guy.
Posted by Juanito on Mar. 09 2007,07:03
Quote (WDef @ Mar. 07 2007,15:54)
I just tested the extension I sent you and it works with gtk2, m4 -1.4.4 and the libtool extension (and gcc1-with-libs to be precise)  installed. Did you test it?

Yes, but:

[mydsl-load gtk2-0705.dsl, gcc1-with-libs.dsl, autoconf2-6.0_automake-1.10.dsl - couldn't find libtool extension, gnu-utils.dsl and alsa.dsl loaded on boot]

Compiling alsa-driver-0.9.6

# aclocal
configure.in:214: warning: underquoted definition of CHECK_COMPILER
configure.in:214:   run info '(automake)Extending aclocal'
configure.in:214:   or see < http://sources.redhat.com/automake/automake.html#Extending-aclocal >
autom4te: need GNU m4 1.4 or later: /usr/local/bin/m4
aclocal: autom4te failed with exit status: 1
# autoconf
autom4te: need GNU m4 1.4 or later: /usr/local/bin/m4

Strangely enough (I added m4 to gnu-utils a while ago):

# m4 --version
GNU m4 1.4

I'm pretty sure that your autoconf2-6.0_automake-1.10.dsl extension would work for me with a later version of m4, thanks.

Posted by Juanito on Mar. 09 2007,07:37
Quote (WDef @ Mar. 07 2007,15:54)
In any case: do us a favor and post your perl-5.8.0 as an extension, that way we'll get the core modules for that version.

No problem to post something but maybe it would be better to check exactly what first.

To compile from perl-5.8.0.tar.gz, I used:

sh Configure -Dcc=gcc -Dprefix=/usr -des

This installs Perl in the following directories:

/usr/bin/
/usr/lib/perl5/5.8.0

Whereas DSL has Perl in these directories:

/usr/bin/perl -> /KNOPPIX/usr/bin/perl
/usr/bin/perl5.8.0 -> /KNOPPIX/usr/bin/perl5.8.0
/usr/lib/perl/5.8.0
/usr/share/perl/5.8.0

And hats' mini Perl is in:

/usr/share/perl/5.8.0

Note the (perhaps) key difference between /perl and /perl5 - is my installation of Perl suitable, or should I change the configuration (how)?

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.