[gobolinux-users] Source repositories and other suggestions

Jonas Karlsson jonka750 at student.liu.se
Mon Nov 27 23:40:08 UTC 2006


On Tue, 28 Nov 2006 00:14:18 +0100, Martin Baldan <martinobal at gmail.com>  
wrote:

> On 11/27/06, Dan <theyranos at gmail.com> wrote:
>>
>> > Is there a way to know what are the actual links the program is
>> > using, a file that changes every time you recompile or relink a
>> > program? I'm thinking of something like /Programs/Foo/Resources/
>> > CurrentLinks.
>>
>> How about ldd?
>>
>> "ldd `which amarok`" for example, gives you a fairly comprehensive
>> list of links the Amarok binary needs to run. If you want programs
>> and versions, you can use something like this bash line:
>>
>> $ ldd `which amarok` | sed 's,.*=>,,g' | sed 's,(.*),,g' | xargs -n1
>> readlink -f
>>
>> (I'm not sure this is what you're looking for, as I haven't been
>> really following this thread. Sorry if I'm completely off-topic.)
>>
>
> Hmm, it pretty much looks like what I wanted. Still, it has a few bugs  
> and
> shortcommings.
>
> For instance, I got this output for Firefox:
>
> martin1 at martinGobo ~]ldd `which firefox`
>         not a dynamic executable
>
Well, that depends on that Firefox is somewhat special. The executable  
that resides in the /bin directory is just a script (that it is a script  
has nothing to do with gobolinux. Ask the firefox devs instead). The real  
binary is lib/firefox-1.5.0.7/firefox-bin (as I use 1.5.0.7). Do ldd on  
that instead.

>
> Now I'm a bit confused. It looks like the actual version number is
> picked at level below SymlinkProgram.
> I thought it was SymlinkProgram who decided which versions to link to.
> If it does, it should be easy to record its choices in a file.

Well "linked in" programs are not the same thing as "linked against"  
programs. You have to separate the libraries that an application is linked  
against and what libraries that are linked in in GoboLinux.

For example my firefox links against  
/System/Links/Libraries/libpangocairo-1.0.so.0 (part of Pango), so I can  
use any version of Pango that has that library version and the one linked  
in atm is which firefox would use, as the link  
/System/Links/Libraries/libpangocairo-1.0.so.0 is updated to reflect which  
version of Pango that is active. So far I can select which version to use.
But say, as an example, that firefox was more version specific and linked  
against libpangocairo-1.0.so.0.1101.1 (I have  
libpangocairo-1.0.so.0.1101.1, part of Pango 1.11.2, and  
libpangocairo-1.0.so.0.1400.2, part of Pango 1.14.2, on my system). Then  
it would not matter which pango I linked in, as firefox would use the  
exact version it needed and if I removed Pango 1.11.2 firefox would not  
start. So until I recompiled firefox, or installed another version, I had  
to keep Pango 1.11.2 installed.
Fortunatly most apps are not that specific, but problems can arise when  
one makes major version upgrades.

-- 
/Jonas

Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


More information about the gobolinux-users mailing list