This is a highly nontrivial exercise. Creating a linux distribution involves a great deal of effort in verifying inter-operability. This is a major contribution of the Linux From Scratch project. In general, you must read the README files associated with each package to determine which versions of other packages are required for correct operation.
A usable linux system includes the following additional packages:
Note that configure will determine your CPU type and build the software for that processor. Since not all processors have the same capabilities, you should build the software on the same type of CPU, or a lower class of compatible CPU, that you intend to run it on. For instance, software built on a Pentium will run on any class of Pentium, but software built on a Pentium II will only run on a Pentium II or better. It is possible to build for a different processor, but that is outside the scope of this class.
Be sure to check the output of configure to make sure the package will be built to your needs; some of these builds are LONG!
(./configure) 2>&1 | tee package.logThe "2>&1" will redirect stderr to stdout, and the tee will allow you to see the output as it is written to the log file (the "-a" tells tee to append to the log file). The "&&" ensures that the "make install" will not run if the "make" fails. Of course, you should not do either if there were problems with the configure.(make && make install) 2>&1 | tee -a package.log
If you install software which includes new libraries, the install process will use ldconfig to rebuild the runtime linkages. /etc/ld.so.conf contains a list of the directories in which the dynamic loader is to look for libraries. Any library directories other than /lib and /usr/lib must be included in /etc/ld.so.conf. ldd can be used to determine which libraries are required by a given program.
strip --strip-debug (library file name)Be sure NOT to do the latter on libraries!strip --strip-unneeded (binary executable file name)
Now we get to fix a couple of additional problems in your distribution, which prevent mplayer from being as useful as it should be. In addition, it can improve the performance of multimedia software immensely if you rebuild it for your specific hardware, so that it takes advantage of all available CPU features.
./configure --prefix=/usr && make && make install
A small mistake caused several of the cdparanoia header files to be lost, which prevents mplayer from including cdparanoia (and therefore CD playing capability).
./configure --prefix=/usr --confdir=/etc/mplayer \
--enable-largefiles --enable-shared-pp --with-x11libdir=/usr/X11R6/lib
Make sure cdparanoia and X support were included (video output drivers should include xv and x11); this was inadvertently not done on your distribution. Then issue the commands
make && make install
Test mplayer by playing a CD (mplayer cdda://1), and viewing the mpg file in last week's notes.
You can burn a data CD using the commands
mkisofs -l -R -allow-leading-dots -o output.iso (input directory) cdrecord -v dev=ATAPI:0,0,0 -data output.iso
The mkisofs creates an ISO-9660 filesystem in the file output.iso, which is then burned using cdrecord.
To burn a music CD, simply cd to a directory with wav files to be burned (make sure they will fit!), and
cdrecord -v dev=ATAPI:0,0,0 -audio -pad *.wav
tar -xzf dvd+rw-tools-5.21.4.10.8.tar.gz cd dvd+rw-tools-5.21.4.10.8 (make && make install) 2>&1 | tee -a ../dvd+rw-tools.out cd .. rm -rf dvd+rw-tools-5.21.4.10.8After rebuilding your kernel next week, you should also be able to burn DVD-ROMs.
©2006, Kenneth R. Koehler. All Rights Reserved. This document may be freely reproduced provided that this copyright notice is included.
Please send comments or suggestions to the author.