source: chapter06/zlib.xml@ 443cace

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 443cace was 5888299, checked in by Alex Gronenwoud <alex@…>, 20 years ago

Moving stuff from appendix A to chapter 6.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3161 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 2.9 KB
Line 
1<sect1 id="ch06-zlib" xreflabel="Zlib">
2<title>Installing Zlib-&zlib-version;</title>
3<?dbhtml filename="zlib.html" dir="chapter06"?>
4
5<para>The Zlib package contains compression and uncompression routines used by
6some programs.</para>
7
8<screen>Estimated build time: &zlib-time;
9Estimated required disk space: &zlib-compsize;</screen>
10
11&aa-zlib-down;
12&aa-zlib-dep;
13
14<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
15
16<sect2>
17<title>Installation of Zlib</title>
18
19<para>Prepare Zlib for compilation:</para>
20
21<screen><userinput>./configure --prefix=/usr --shared</userinput></screen>
22
23<note><para>Zlib is known to build its shared library incorrectly if CFLAGS is
24specified in the environment. If you are using your own CFLAGS variable, be
25sure to add the <emphasis role="strong">-fPIC</emphasis> directive to your
26CFLAGS for the duration of the above command, then remove it
27afterwards.</para></note>
28
29<para>Compile the package:</para>
30
31<screen><userinput>make</userinput></screen>
32
33<para>This package has a test suite available which can perform a number of
34checks to ensure it built correctly. The test suite for Zlib is quick and
35painless so we recommend it be run. The following command will test the shared
36library:</para>
37
38<screen><userinput>make check</userinput></screen>
39
40<para>Install the shared library:</para>
41
42<screen><userinput>make install</userinput></screen>
43
44<para>Now also build the non-shared (static) library:</para>
45<screen><userinput>make clean
46./configure --prefix=/usr
47make</userinput></screen>
48
49<para>The following command will test the static library:</para>
50
51<screen><userinput>make check</userinput></screen>
52
53<para>Install the static library:</para>
54
55<screen><userinput>make install</userinput></screen>
56
57<para>And fix the permissions on the static library:</para>
58
59<screen><userinput>chmod 644 /usr/lib/libz.a</userinput></screen>
60
61<para>It is good policy and common practice to place important libraries into
62the <filename class="directory">/lib</filename> directory. This matters most
63in scenarios where <filename class="directory">/usr</filename> is on a
64separate partition. Essentially, the run-time components of any libraries
65depended upon by programs in <filename class="directory">/bin</filename> or
66<filename class="directory">/sbin</filename> should reside in
67<filename class="directory">/lib</filename> so that they are on the root
68partition and available in the event of
69<filename class="directory">/usr</filename> being inaccessible.</para>
70
71<para>Therefore we move the run-time components of the shared Zlib into
72<filename class="directory">/lib</filename> by issuing the following
73command:</para>
74
75<screen><userinput>mv /usr/lib/libz.so.* /lib</userinput></screen>
76
77<para>Now we need to fix up the <filename>/usr/lib/libz.so</filename> symlink
78because we just moved the location of the file it points to:</para>
79
80<screen><userinput>ln -sf ../../lib/libz.so.1 /usr/lib/libz.so</userinput></screen>
81
82</sect2>
83
84&aa-zlib-shortdesc;
85&aa-zlib-desc;
86
87</sect1>
88
Note: See TracBrowser for help on using the repository browser.