⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s1-rpm-using.html

📁 RedHat9.0中文版官方文档。给那些喜欢红帽的爱好者。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>使用 RPM</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Red Hat Linux 9"HREF="index.html"><LINKREL="UP"TITLE="使用 RPM 来管理软件包"HREF="ch-rpm.html"><LINKREL="PREVIOUS"TITLE="使用 RPM 来管理软件包"HREF="ch-rpm.html"><LINKREL="NEXT"TITLE="检查软件包的签名"HREF="s1-check-rpm-sig.html"><LINKREL="STYLESHEET"TYPE="text/css"HREF="rhdocs-man.css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=gb2312"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Red Hat Linux 9: Red Hat Linux 定制指南</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="ch-rpm.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">32. 使用 RPM 来管理软件包</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="s1-check-rpm-sig.html"ACCESSKEY="N">前进</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="S1-RPM-USING"></A>32.2. 使用 RPM</H1><P>        RPM 有五种基本操作模式(不包括软件包建构):安装、删除安装、升级、查询和校验。本章节包括对每一模式的总览。想了解完整的选项和细节,请使用	<TTCLASS="COMMAND">rpm --help</TT> 命令,或阅读 <AHREF="s1-rpm-additional-resources.html">第 32.5 节</A>中关于        RPM 的信息。      </P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-FINDING"></A>32.2.1. 寻找 RPM 软件包</H2><P>	  在使用 RPM 之前,你必须知道要到哪里去寻找它们。在互联网上搜索会返回许多	  RPM 仓库,但是如果你要找的是由 Red Hat 建构的 RPM 软件包,你可以在下面几个地方找到它们:	  <P></P><UL><LI><P>Red Hat Linux 光盘</P></LI><LI><P>Red Hat 勘误网页:<AHREF="http://www.redhat.com/apps/support/errata/"TARGET="_top">http://www.redhat.com/apps/support/errata/</A>	      </P></LI><LI><P>Red Hat FTP 镜像网站:	      <AHREF="http://www.redhat.com/download/mirror.html"TARGET="_top">http://www.redhat.com/download/mirror.html</A>	      </P></LI><LI><P>Red Hat 网络 &#8212; 关于 Red Hat 网络的详情,请参阅<AHREF="ch-rhnetwork.html">第34章 </A>。	      </P></LI></UL>	</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-INSTALLING"></A>32.2.2. 安装</H2><P>          典型的 RPM 软件包名称类似于          <TTCLASS="FILENAME">foo-1.0-1.i386.rpm</TT>。该文件名包括软件包名称(<TTCLASS="FILENAME">foo</TT>)、版本(<TTCLASS="FILENAME">1.0</TT>)、发行版本(<TTCLASS="FILENAME">1</TT>)、以及体系(<TTCLASS="FILENAME">i386</TT>)。安装软件包简单之极,登录为根用户,然后在	  shell 提示下键入下面的命令:	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Uvh foo-1.0-1.i386.rpm</TT></PRE></TD></TR></TABLE><P>	  如果安装成功,你会看到如下所示的输出:	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Preparing...                ########################################### [100%]   1:foo                    ########################################### [100%]</TT></PRE></TD></TR></TABLE><P>          如上面所示,RPM 显示软件包的名称,然后在软件包被安装时在屏幕上打印井号来显示安装进度。        </P><P>	  从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。如果签名校验失败,你就会看到如下所示的错误消息:	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">error: V3 DSA signature: BAD, key ID 0352860f</TT></PRE></TD></TR></TABLE><P>	  如果它是新的、只针对文件头的签名,你会看到如下所示的错误消息:	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">error: Header V3 DSA signature: BAD, key ID 0352860f</TT></PRE></TD></TR></TABLE><P>	  如果你没有安装合适的钥匙来校验签名,消息中就会包含	  <TTCLASS="COMPUTEROUTPUT">NOKEY</TT>,如:	</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">warning: V3 DSA signature: NOKEY, key ID 0352860f</TT></PRE></TD></TR></TABLE><P>	  关于校验软件包签名的详细信息,请参阅<AHREF="s1-check-rpm-sig.html">第 32.3 节</A>。	</P><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/note.png"HSPACE="5"ALT="注记"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>注记</B></TH></TR><TR><TD>&nbsp;</TD><TDALIGN="LEFT"VALIGN="TOP"><P>	    如果你要安装内核软件包,你应该使用 <TTCLASS="COMMAND">rpm	      -ivh</TT>。详情请参阅<AHREF="ch-kernel.html">第30章 </A>。	  </P></TD></TR></TABLE></DIV><P>          虽然安装软件包旨在简单易行,但是你有时也会看到错误。        </P><DIVCLASS="SECT3"><H3CLASS="SECT3"><ANAME="S3-RPM-ERRORS"></A>32.2.2.1. 软件包已安装</H3><P>            如果某软件包的同一版本已经安装,你就会看到:          </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Preparing...                ########################################### [100%]package foo-1.0-1 is already installed</TT></PRE></TD></TR></TABLE><P>            如果你在软件包已安装的情况下仍打算安装同一版本的软件包,你可以使用 <TTCLASS="COMMAND">--replacepkgs</TT>	    选项,它告诉 RPM 来忽略这个错误:          </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -ivh --replacepkgs foo-1.0-1.i386.rpm</TT></PRE></TD></TR></TABLE><P>	    如果从 RPM 安装的文件被删除了,或者你想安装 RPM 中的最初配置文件,该选项就会很有用。	  </P></DIV><DIVCLASS="SECT3"><H3CLASS="SECT3"><ANAME="S3-RPM-CONFLICTING-FILES"></A>32.2.2.2. 文件冲突</H3><P>            如果你试图安装的软件包中包含已被另一个软件包或同一软件包的早期版本安装了的文件,你会看到:          </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Preparing...                ########################################### [100%]file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20</TT></PRE></TD></TR></TABLE><P>            要使 RPM 忽略这个错误,使用            <TTCLASS="COMMAND">--replacefiles</TT> 选项:          </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -ivh --replacefiles foo-1.0-1.i386.rpm</TT></PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT3"><H3CLASS="SECT3"><ANAME="S3-RPM-UNRESOLVED-DEPENDENCY"></A>32.2.2.3. 未解决的依赖关系</H3><P>            RPM 软件包可能“依赖”于其它软件包,这意味着它们需要安装其它软件包才能正确运行。如果你试图安装具有未解决依赖关系的软件包,你会看到:          </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Preparing...                ########################################### [100%]error: Failed dependencies:        bar.so.2 is needed by foo-1.0-1    Suggested resolutions:        bar-2.0.20-3.i386.rpm</TT></PRE></TD></TR></TABLE><P>	    如果你安装的是 Red Hat,它通常会向你建议解决依赖关系所需的软件包。在	    Red Hat Linux 光盘或 Red Hat FTP 站点(或镜像)上找到这个软件包,使用以下命令来添加:	  </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm</TT></PRE></TD></TR></TABLE><P>	    如果这两个软件包都安装成功,你会看到:	  </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Preparing...                ########################################### [100%]   1:foo                    ########################################### [ 50%]   2:bar                    ########################################### [100%]</TT></PRE></TD></TR></TABLE><P>	    如果它不向你建议解决依赖关系所需的软件包,你可以试用	    <TTCLASS="COMMAND">--redhatprovides</TT> 选项来判定哪个软件包包含所需的文件。你需要安装	    <TTCLASS="FILENAME">rpmdb-redhat</TT> 软件包才能使用这个选项。	  </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -q --redhatprovides bar.so.2</TT></PRE></TD></TR></TABLE><P>	    如果包含 <TTCLASS="FILENAME">bar.so.2</TT> 的软件包在来自	    <TTCLASS="FILENAME">rpmdb-redhat</TT> 软件包的安装了的数据库中,该软件包的名称就会被显示:	  </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">bar-2.0.20-3.i386.rpm</TT></PRE></TD></TR></TABLE><P>	    如果你想强制安装(不是好办法,因为软件包可能不能够正确运行),使用            <TTCLASS="COMMAND">--nodeps</TT> 选项。          </P></DIV></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-UNINSTALLING"></A>32.2.3. 删除安装</H2><P>          删除软件包和安装软件包一样简单。在 shell 提示下键入下面的命令:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -e foo</TT></PRE></TD></TR></TABLE><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/note.png"HSPACE="5"ALT="注记"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>注记</B></TH></TR><TR><TD>&nbsp;</TD><TDALIGN="LEFT"VALIGN="TOP"><P>	    注意,我们使用软件包<ICLASS="EMPHASIS">名称</I>	    <TTCLASS="FILENAME">foo</TT>,而不是原始的软件包<ICLASS="EMPHASIS">文件</I>	    <TTCLASS="FILENAME">foo-1.0-1.i386.rpm</TT>。要删除某软件包,你需要把 <TTCLASS="FILENAME">foo</TT> 换成原始软件包的实际名称。	  </P></TD></TR></TABLE></DIV><P>          你在删除安装某软件包时也会遇到依赖关系错误,当另一个已安装的软件包依赖于你试图删除的软件包时,依赖关系错误就会发生。例如:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">Preparing...                ########################################### [100%]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -