Find the answer to your Linux question:
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 13
Hey all, I'm new to Linux (using Mandriva 10.1 Official), and to make a long story short, I'm having problems installing a program called KTechlab. First, it says on the ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    May 2005
    Posts
    22

    libreadline.so.4 dependency problem


    Hey all,

    I'm new to Linux (using Mandriva 10.1 Official), and to make a long story short, I'm having problems installing a program called KTechlab. First, it says on the website that 'gpsim' is a dependency, so off I go to get gpsim; and for some reason, gpsim comes in a series of 4 packages:
    gpsim[version number].rpm
    gpsim-devel-[version].rpm
    gtk+extra2-[version].rpm
    gtk+extra2-devel[version].rpm

    Using RPMDrake, the GTK+extra2-devel and non-devel, as well as gpsim-devel, installed OK. Then, gpsim itself choked, and RPMDrake gives me something to the effect of "Couldn't install gpsim (due to unsatisfied libreadline.so.4)". 'rpm' and 'urpmi' give similar errors. I also tried:
    whereis libreadline.so.4
    ->/lib/libreadline.so.4
    I read on the internet somewhere, that I needed both libreadline and libreadline-devel, but combing through the package list, I can't find anything relevant to readline or libreadline or any variations thereof; and then, after seeing the installation tutorial on this site, I tried:
    urpmi libreadline
    ->Everything already installed.
    urpmi readline
    ->Everything already installed.
    Can anyone tell me what's going on here?

  2. #2
    Linux Guru fingal's Avatar
    Join Date
    Jul 2003
    Location
    Birmingham - UK
    Posts
    1,539
    Hmmm tricky one. Try searching for the library file just to make sure you don't already have it. Log in as root:

    su
    yourpassword
    find / -name libreadline* -print

    If the file is already there somewhere in - let's say - /usr/local/lib try moving it to /lib Sometimes it's as simple as that. Unfortunately, not very often.
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso

  3. #3
    Just Joined!
    Join Date
    May 2005
    Posts
    22
    I did the find, and the results are:
    [root@localhost /]# find / -name libreadline* -print
    find: /proc/5057/task: No such file or directory
    /lib/libreadline.so.4
    /lib/libreadline.so.4.1
    /lib/libreadline.so.4.2
    /lib/libreadline.so.4.3
    Any other ideas?

  4. #4
    Linux Guru fingal's Avatar
    Join Date
    Jul 2003
    Location
    Birmingham - UK
    Posts
    1,539
    You could try urpmi gpsim in the hope that this will handle the lower level dependencies.

    Or try moving that library file into /usr/local/lib ... Sometimes a pre-compiled binary (in your case gpsim) will have a fixed idea of where the library file should be.... Be careful moving files using the console, as it's easy to rename them accidentally...

    To do it that way you need to be root:
    su
    yourpassword
    cd /lib
    mv libfile.so /usr/local/lib
    exit

    The above is a generic example If this doesn't work, there are other /lib directories (I can never remember where they all are ... You might try /usr/lib). If none of this works, I'm out of ideas.
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso

  5. #5
    Just Joined!
    Join Date
    May 2005
    Posts
    22
    I already tried using urpmi, and it also complained about libreadline.so.4.

    I'll try moving the library around like you suggested.. but wouldn't it perhaps be safer to create a link instead of moving the actual file?

  6. #6
    Linux Guru fingal's Avatar
    Join Date
    Jul 2003
    Location
    Birmingham - UK
    Posts
    1,539
    Quote Originally Posted by Hunter2
    I'll try moving the library around like you suggested.. but wouldn't it perhaps be safer to create a link instead of moving the actual file?
    Nah, just move the file around. Make a copy of it first though. I rarely link: you need to link from something to something else. Eg.:

    ln -s myfile1 myfile2

    Often used to create a 'soft link' between devices. For eg. ln -s /dev/cdrom /mnt/cdrom links from an actual device to a directory.

    Let me know how you get on. If I can't help you, someone else probably will.
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso

  7. #7
    Linux User Muser's Avatar
    Join Date
    May 2004
    Location
    Maryland
    Posts
    363
    Doesn't urpmf search for files in rpm packages? Try that.

  8. #8
    Just Joined!
    Join Date
    May 2005
    Posts
    22
    Ok, well I went ahead and created symbolic links to libreadline.so.4, libreadline.so.4.1, libreadline.so.4.2 and libreadline.so.4.3 in every lib directory I could find, but no luck. Also, it seems that all of the libreadline.so.4*'s are symbolic links to libreadline.so.4.3 anyway, for whatever that's worth.

    I tried urpmf like linkinp4rk410 suggested, and the output was:
    [root@localhost kevin]# urpmf libreadline*
    libreadline4:/lib/libhistory.so.4
    libreadline4:/lib/libhistory.so.4.1
    libreadline4:/lib/libhistory.so.4.2
    libreadline4:/lib/libhistory.so.4.3
    libreadline4:/lib/libreadline.so.4
    libreadline4:/lib/libreadline.so.4.1
    libreadline4:/lib/libreadline.so.4.2
    libreadline4:/lib/libreadline.so.4.3
    Note: since no media searched uses hdlists, urpmf was unable to return any result
    You may want to use --name to search for package names.
    ...
    [root@localhost kevin]# urpmf --name libreadline
    libreadline4:libreadline4-4.3-7mdk.i586.rpm
    ...
    [root@localhost kevin]# urpmi libreadline4
    Everything already installed
    Going in circles, sort of

    Someone else also suggested that I try using rpm with the --nodeps option... but I'm not sure, if the install requires the library and it doesn't know where to find it, won't it kind of screw everything up? Do you guys have any thoughts on this?

  9. #9
    Linux Guru fingal's Avatar
    Join Date
    Jul 2003
    Location
    Birmingham - UK
    Posts
    1,539
    I don't know the answer in all honesty. Looks like dependency Hell gone mad! I wouldn't worry too much about screwing things up: you're unlikely to do a lot of damage, and the package isn't installing properly anyway.

    I would try searching on Google to see if anyone else has hit similar problems. Some things are just a pig to install, others - you hardly notice yourself doing it

    With dependencies, it's important to understand which order the packages should be installed in. Often, some packages won't install without the development versions (as you've found out) ... It may be a case of starting again or finding another suitable package (which is side-stepping the problem, or 'wimping out' depending on your point of view ).

    Look at the KTechlab site. Maybe you should think about contacting the developer (looks like a student with limited time!) Because it could be that something is buggy, or the whole thing is flakey I notice that on the site the developer mentions that the Mandriva specific version will only work on 10.2 - Could this be it?
    I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso

  10. #10
    Just Joined!
    Join Date
    May 2005
    Posts
    22
    Ok, after taking some time off to write exams ( ), I'm back at it. Ok, I tried the --nodeps, and it ran without giving any error messages. 'gpsim' also seems to load up the program OK, although I haven't much idea what to do with it so I can't tell whether it works properly or not.

    In any case, I went ahead and tried installing ktechlab, (compiling by source), but the configure script told me that it couldn't find the X includes. So I hunt around RPMDrake looking for X includes, and I come up with a couple libraries:
    libxorg-x11-devel-versionmdk
    libxorg-x11-static-devel-versionmdk

    The static-devel one tells me I must install the non-static one first. So I try to, and it tells me I need lib(something). I do some hunting, and I find something that has a name similar to the unsatisfied dependency and install it. I come back, and it says I need libexpat. Wow, RPMDrake can't find it at all, or any variants thereof. Very well, I google it up (wtf, it's an XML parser? Why do I want that??), and rpm it. But wait! RPM gives an error saying some of its files conflict with an already-installed library, libexpat-same_version_number-mdk. So I go back to RPMDrake and try again, and now it gives me an error (due to unsatisfied devel(libfreetype)), which (surprise!) can't be found with RPMDrake. I'd hazard a guess that perhaps most of these packages are already installed, but that they're 'mdk' versions ('mandrake'?) and the other RPM's aren't smart enough to find them, but mandrake's supposed to be the most hassle-free distro and consequently I don't imagine it would be that stupid.

    I'll do a little more poking around, maybe I can find another RPM or something that likes me better than the KTechlab tarball.

Page 1 of 2 1 2 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •