📄 zlib.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=gb2312" />
<title>
6.16. Zlib-1.2.2
</title>
<link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1" />
<link rel="stylesheet" href="../stylesheets/lfs-print.css" type="text/css" media="print" />
</head>
<body id="lfs" class="6.1">
<div class="navheader">
<div class="headertitles">
<h4>
Linux From Scratch - Version 6.1
</h4>
<h3>
Chapter 6. 安装系统基础软件
</h3>
</div>
<ul class="headerlinks">
<li class="prev">
<a accesskey="p" href="coreutils.html" title="Coreutils-5.2.1">后退</a>
<p>
Coreutils-5.2.1
</p>
</li>
<li class="next">
<a accesskey="n" href="mktemp.html" title="Mktemp-1.5">前进</a>
<p>
Mktemp-1.5
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>
</li>
</ul>
</div>
<div class="wrap" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h1 class="sect1">
6.16. Zlib-1.2.2
</h1>
</div>
<div class="package" lang="zh_cn" xml:lang="zh_cn">
<p>Zlib 软件包包含 zlib 库,很多程序中的压缩或者解压缩程序都会用到这个库。</p>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">预计编译时间:</span></strong> <span class="seg">0.1 SBU</span>
</div>
<div class="seg">
<strong><span class="segtitle">所需磁盘空间:</span></strong> <span class="seg">2.7 MB</span>
</div>
</div>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装依赖于:</span></strong> <span class="seg">Binutils, Coreutils, GCC, Glibc, Make, Sed</span>
</div>
</div>
</div>
</div>
<div class="installation" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h2 class="sect2">
6.16.1. 安装 Zlib
</h2>
</div>
<p> Zlib 有一个能够导致拒绝服务攻击的缓冲区溢出漏洞,下面的补丁可以修正它:
</p>
<pre class="userinput"><kbd class="command">patch -Np1 -i ../zlib-1.2.2-security_fix-1.patch</kbd></pre>
<div class="note">
<div class="admonhead">
<img alt="[Note]" src="../images/note.png" />
<h3 class="admontitle">
注意
</h3>
</div>
<div class="admonbody">
<p>如果在环境变量中指定了 <tt class="envar">CFLAGS</tt> 的话,Zlib 就不能正常编译共享库。如果你指定了自己的<tt class="envar">CFLAGS</tt>环境变量,请把 <em class="parameter"><tt>-fPIC</tt></em> 加到 <tt class="envar">CFLAGS</tt> 的最前面,在安装后再去掉这个参数。
</p>
</div>
</div>
<p>为编译 Zlib 做准备:
</p>
<pre class="userinput"><kbd class="command">./configure --prefix=/usr --shared --libdir=/lib</kbd></pre>
<p>编译软件包:</p>
<pre class="userinput"><kbd class="command">make</kbd></pre>
<p>
要测试结果,请运行: <strong class="userinput"><tt>make check</tt></strong>
</p>
<p>安装共享库:
</p>
<pre class="userinput"><kbd class="command">make install</kbd></pre>
<p>上面的命令将会在 <tt class="filename">/lib</tt> 目录中安装一个 <tt class="filename">.so</tt> 文件。我们将要移除它并重新连接到 <tt class="filename">/usr/lib</tt> 目录下:
</p>
<pre class="userinput"><kbd class="command">rm /lib/libz.so
ln -sf ../../lib/libz.so.1.2.2 /usr/lib/libz.so</kbd></pre>
<p>编译静态库(非共享库):
</p>
<pre class="userinput"><kbd class="command">make clean
./configure --prefix=/usr
make</kbd></pre>
<p>要测试静态库可以用这个命令:<strong class="userinput"><tt>make check</tt></strong>
</p>
<p>安装静态库:
</p>
<pre class="userinput"><kbd class="command">make install</kbd></pre>
<p>修正静态库的权限:
</p>
<pre class="userinput"><kbd class="command">chmod 644 /usr/lib/libz.a</kbd></pre>
</div>
<div class="content" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<a id="contents-zlib" name="contents-zlib"></a>
<h2 class="sect2">
6.16.2. Zlib 的内容
</h2>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装的库:</span></strong> <span class="seg">libz.[a,so]</span>
</div>
</div>
</div>
<div class="variablelist">
<h3>
<a id="id3320540" name="id3320540"></a>简要描述</h3>
<table border="0">
<col align="left" valign="top" />
<tbody>
<tr>
<td>
<a id="libz" name="libz"></a><span class="term"><tt class="filename">libz</tt></span>
</td>
<td>
<p>包含很多程序都用到的压缩和解压函数。
</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="navfooter">
<ul>
<li class="prev">
<a accesskey="p" href="coreutils.html" title="Coreutils-5.2.1">后退</a>
<p>
Coreutils-5.2.1
</p>
</li>
<li class="next">
<a accesskey="n" href="mktemp.html" title="Mktemp-1.5">前进</a>
<p>
Mktemp-1.5
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>.
</li>
</ul>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -