[Ilugc] Compiling the whole Linux distro from source

  • From: dearsaravanan@xxxxxxxxx (Saravanan S)
  • Date: Mon Feb 8 19:26:05 2010

Hi Senthil,

On Mon, Feb 8, 2010 at 6:56 PM, S. Senthil Anand <senthils@xxxxxxxxxx>wrote:

On Mon, Feb 8, 2010 at 5:03 PM, S. Senthil Anand

Is pkgsrc such tool??, to find all the dependency library files/ bin
files
/
files that are required for the application that has its contents inside
a
directory?


You get a application directory with a Makefile and a few patches. The
makefile clearly says what are the other packages which are needed to
build the software and then to run the software [these need not be
identical eg. to build C++ programs you need g++ but to run it you need
libstdc++ and not g++.] Each of those packages will have their own
Makefile etc. When you run make install, make will take care of building
all the required dependencies recursively by downloading the source code
and building them in the required order. FreeBSD and OpenBSD ports, and
Gentoo's portage which is inspired by FreeBSD ports works similarly.

If you want to simply view dependencies, go to http://pkgsrc.se and see if
the software you want is there. You will get the complete dependency
information for a package in pkgsrc under all supported platforms.

To be simple, is there any such ldd command for all files/
sub-directories
of a directory specified, not just for libraries but also for all
dependencies ???

I am not aware of a single tool like ldd to display all the dependencies
recursively. You can probably write a tool to walk through the dependency
graph of a package for the various package managers you are interested in.
For me the dependencies tab in synaptic is good enough.

Or how to make an application *absolutely* portable in Linux environment
???

For source portability, pkgsrc or portage will take care of the stuff. For
binary portability within a same architecture ie. i686 (betwwen
distributions of the same architecture) , you need to statically compile
your program + dependencies eg. Opera. Binary compatibilty between
architectures ie. i686 and arm for example, is not feasible unless you go
for something like MacOS's universal binaries which is not used anywhere
in Linux land.


Thanks for the eye-opening guidelines. Credits to your impressive
cognizance. :)
BTW, about ldd,

ldd - list  dynamic  dependencies  of  executable  files  or shared objects

http://wwwcgi.rdg.ac.uk:8081/cgi-bin/cgiwrap/wsi14/poplog/man/1/ldd


Saravanan Sundaramoorthy
Red Hat Certified Engineer
+91 99404 32545

Other related posts: