| View previous topic :: View next topic |
| Author |
Message |
Hans-Peter Diettrich Guest
|
Posted: Thu Nov 13, 2008 4:31 pm Post subject: How to analyse and cure dependency problems? |
|
|
I've tried to install a program (Lazarus) on various Linux systems, with
no success. My last try was to install it in openSUSE 10.3/64 bit, where
the binary doesn't install for unknown reasons (Yast silently
terminates), and a make fails with missing libraries (ld could not find
-lglib).
What can I do to find out what should be installed, and that everything
is installed for use with ld?
AFAIK ld searches for an lib<name> entry, i.e. something like libglib.so
(or libglib.a?) for the above -lglib. Searching the library path reveals
both a libglib-1.2.so and a libglib-2.0.so on my system, and .a and .la
entries for the 2.0 version. So how can I know what exactly is missing?
Can somebody shed some light on the way from the linker error message
down to the files found or not found on a system?
DoDi |
|
| |
|
Back to top |
John Hasler Guest
|
Posted: Thu Nov 13, 2008 8:03 pm Post subject: Re: How to analyse and cure dependency problems? |
|
|
DoDi writes:
| Quote: | I've tried to install a program (Lazarus) on various Linux systems, with
no success.
|
'apt-get install lazarus' succeeds on Debian/Sid on amd64 and the
'lazarus-ide' program it installs (along with an appalling amount of other
cruft) starts up. I have no idea whether or not it works correctly.
--
John Hasler
john@dhh.gt.org
Dancing Horse Hill
Elmwood, WI USA |
|
| |
|
Back to top |
Hans-Peter Diettrich Guest
|
Posted: Thu Nov 13, 2008 8:56 pm Post subject: Re: How to analyse and cure dependency problems? |
|
|
John Hasler schrieb:
| Quote: | 'apt-get install lazarus' succeeds on Debian/Sid on amd64 and the
'lazarus-ide' program it installs (along with an appalling amount of other
cruft) starts up. I have no idea whether or not it works correctly.
|
Then I'll test that myself again. Nonetheless I'd prefer to use it on my
openSUSE host...
DoDi |
|
| |
|
Back to top |
s. keeling Guest
|
Posted: Fri Nov 14, 2008 2:56 am Post subject: Re: How to analyse and cure dependency problems? |
|
|
Hans-Peter Diettrich <DrDiettrich1@aol.com>:
| Quote: | I've tried to install a program (Lazarus) on various Linux systems, with
no success. My last try was to install it in openSUSE 10.3/64 bit,
where the binary doesn't install for unknown reasons (Yast silently
terminates), and a make fails with missing libraries (ld could not
find -lglib).
What can I do to find out what should be installed, and that everything
is installed for use with ld?
AFAIK ld searches for an lib<name> entry, i.e. something like libglib.so
(or libglib.a?) for the above -lglib. Searching the library path reveals
both a libglib-1.2.so and a libglib-2.0.so on my system, and .a and .la
entries for the 2.0 version. So how can I know what exactly is missing?
Can somebody shed some light on the way from the linker error message
down to the files found or not found on a system?
|
If you have the binary installed, "ldd program" should tell you what
libs program depends upon. You can tweak the lookup by adding dirs in
which program's libs reside to /etc/ld.so.conf, then run "ldconfig" to
update the system. Now try program again. Hope it helps.
--
Any technology distinguishable from magic is insufficiently advanced.
(*) http://blinkynet.net/comp/uip5.html Linux Counter #80292
- - http://www.faqs.org/rfcs/rfc1855.html Please, don't Cc: me. |
|
| |
|
Back to top |
Hans-Peter Diettrich Guest
|
Posted: Fri Nov 14, 2008 8:21 am Post subject: Re: How to analyse and cure dependency problems? |
|
|
s. keeling schrieb:
| Quote: | If you have the binary installed, "ldd program" should tell you what
libs program depends upon.
|
My problem: the program doesn't install from the rpm file :-(
But you remind me of looking into the rpm, where I can find the
dependencies.
| Quote: | You can tweak the lookup by adding dirs in
which program's libs reside to /etc/ld.so.conf, then run "ldconfig" to
update the system. Now try program again. Hope it helps.
|
The directories (ld search path) look fine, i.e. the rpm requested
libglib-1.2.so.0()(64bit) is in /usr/lib64/.
Now I'm clueless about the procedures to extract the binary from the
rpm, so that I can use ldd with it. As mentioned, Yast exits without
giving any hint about what's wrong :-(
DoDi |
|
| |
|
Back to top |
Andrew Halliwell Guest
|
Posted: Fri Nov 14, 2008 4:39 pm Post subject: Re: How to analyse and cure dependency problems? |
|
|
Hans-Peter Diettrich <DrDiettrich1@aol.com> wrote:
| Quote: | s. keeling schrieb:
If you have the binary installed, "ldd program" should tell you what
libs program depends upon.
My problem: the program doesn't install from the rpm file :-(
But you remind me of looking into the rpm, where I can find the
dependencies.
You can tweak the lookup by adding dirs in
which program's libs reside to /etc/ld.so.conf, then run "ldconfig" to
update the system. Now try program again. Hope it helps.
The directories (ld search path) look fine, i.e. the rpm requested
libglib-1.2.so.0()(64bit) is in /usr/lib64/.
|
You should be able to install libglib. If it's not in the respository or on
the disk, you could download it and compile it yourself.
| Quote: | Now I'm clueless about the procedures to extract the binary from the
rpm, so that I can use ldd with it. As mentioned, Yast exits without
giving any hint about what's wrong
|
You can use the rpm command directly.
rpm -i will install.
rpm -i --nodeps will force install to ignore dependencies.
(which is what you need if you've got a lib installed by a means not
included in rpm)
--
| spike1@freenet.co,uk | "Are you pondering what I'm pondering Pinky?" |
| Andrew Halliwell BSc | |
| in | "I think so brain, but this time, you control |
| Computer Science | the Encounter suit, and I'll do the voice..." | |
|
| |
|
Back to top |
Hans-Peter Diettrich Guest
|
Posted: Sat Nov 15, 2008 3:46 am Post subject: Re: How to analyse and cure dependency problems? |
|
|
Andrew Halliwell schrieb:
| Quote: | The directories (ld search path) look fine, i.e. the rpm requested
libglib-1.2.so.0()(64bit) is in /usr/lib64/.
You should be able to install libglib. If it's not in the respository or on
the disk, you could download it and compile it yourself.
|
There are 2 versions of glib installed. What should another install add,
that is not already there?
| Quote: | Now I'm clueless about the procedures to extract the binary from the
rpm, so that I can use ldd with it. As mentioned, Yast exits without
giving any hint about what's wrong :-(
You can use the rpm command directly.
rpm -i will install.
rpm -i --nodeps will force install to ignore dependencies.
(which is what you need if you've got a lib installed by a means not
included in rpm)
|
Now I don't understand what happened at all :-(
rpm said "already installed", and the program obviously had been
installed before, somehow. Perhaps the install was incomplete, so that
the package still is not listed as installed...
But you're right, something *must* be missing, because a "make clean
all" still fails with "cannot find -lglib" - so *what* might be missing?
DoDi |
|
| |
|
Back to top |
Andrew Halliwell Guest
|
Posted: Sun Nov 16, 2008 7:32 am Post subject: Re: How to analyse and cure dependency problems? |
|
|
Hans-Peter Diettrich <DrDiettrich1@aol.com> wrote:
| Quote: | But you're right, something *must* be missing, because a "make clean
all" still fails with "cannot find -lglib" - so *what* might be missing?
|
Seems to me, if you're trying to compile, you might be missing the dev
packages (include files used by the compiler)...
Alternatively...
Did you just type make, or have you done the ./configure before that?
Also... you said the program wasn't listed even though it claims to already
be installed... Have you tried starting it at the command line rather than
from the menus?
(some programs just don't install themselves into gnome's/kde's menu
system automatically)
--
| spike1@freenet.co.uk | "I'm alive!!! I can touch! I can taste! |
| Andrew Halliwell BSc | I can SMELL!!! KRYTEN!!! Unpack Rachel and |
| in | get out the puncture repair kit!" |
| Computer Science | Arnold Judas Rimmer- Red Dwarf | |
|
| |
|
Back to top |
Hans-Peter Diettrich Guest
|
Posted: Sun Nov 16, 2008 10:55 pm Post subject: Re: How to analyse and cure dependency problems? |
|
|
Andrew Halliwell schrieb:
| Quote: | But you're right, something *must* be missing, because a "make clean
all" still fails with "cannot find -lglib" - so *what* might be missing?
Seems to me, if you're trying to compile, you might be missing the dev
packages (include files used by the compiler)...
|
Right. It seems to me as if the .la files are essential for ld, in
addition to the .so files - correct?
Is above error message always related to shared object libraries, or can
it also mean a missing static library? Which files are required for
linking with a static library?
| Quote: | Alternatively...
Did you just type make, or have you done the ./configure before that?
|
A configure script was not required and not supplied in this case
(FreePascal project). AFAIK even for cross-compilation it's sufficient
to give the desired target OS in the make command, the compiler resolves
the platform dependencies internally.
| Quote: | Also... you said the program wasn't listed even though it claims to already
be installed... Have you tried starting it at the command line rather than
from the menus?
|
I couldn't find the program in a menu. A "which" from the command line
gave "not found". By now I know why: there exist 2 executable files,
named "lazarus-ide" and "lazbuild". That's why a "laz" input could not
be completed, and a "lazarus" could not be found or invoked. After the
first successful invocation I could find a "Lazarus" application in the
history menu. It's somewhat confusing that an according "Lazarus" on the
command line never would succeed, due to a case mismatch :-(
DoDi |
|
| |
|
Back to top |
|