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

📄 s1-rpm-using.html

📁 Redhat9中文官方文档, 初学者必备
💻 HTML
📖 第 1 页 / 共 2 页
字号:
error: removing these packages would break dependencies:        foo is needed by  bar-2.0.20-3.i386.rpm</TT></PRE></TD></TR></TABLE><P>          要使 RPM 忽略这个错误,并强制删除该软件包(不是个好办法,因为依赖于它的软件包可能无法正常运行),使用 <TTCLASS="COMMAND">--nodeps</TT> 选项。        </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-UPGRADING"></A>32.2.4. 升级</H2><P>          升级软件包和安装类似。在 shell 提示下键入以下命令:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Uvh foo-2.0-1.i386.rpm</TT></PRE></TD></TR></TABLE><P>          你在上面的例子里看不到的是,RPM          自动删除 <TTCLASS="FILENAME">foo</TT> 软件包的任何老版本。事实上,你可能想一直使用	  <TTCLASS="COMMAND">-U</TT> 来安装软件包,因为即便没有安装软件包的任何先前版本,它也可以用来安装该软件包。        </P><P>          因为 RPM 对软件包和配置文件执行智能升级,你可能会看到和下面相似的消息:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">saving /etc/foo.conf as /etc/foo.conf.rpmsave</TT></PRE></TD></TR></TABLE><P>          这条消息意味着你对配置文件所作的改变可能不会和软件包中的新配置文件“前向兼容”,因此,RPM	  保存了你的原始文件,并安装了一个新文件。你应该调查一下这两个配置文件的区别,然后尽快地解决这些区别来确保系统继续正确运行。        </P><P>          升级实际上是删除和安装的组合,因此,在	  RPM 升级中,你除了遇到删除和安装中会遇到的错误外,还会看到另一个错误。如果          RPM 认为你试图升级到软件包的<ICLASS="EMPHASIS">老</I>版本,你会看到:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">package foo-2.0-1 (which is newer than foo-1.0-1) is already installed</TT></PRE></TD></TR></TABLE><P>          要使 RPM 强制“升级”,使用          <TTCLASS="COMMAND">--oldpackage</TT> 选项:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Uvh --oldpackage foo-1.0-1.i386.rpm</TT></PRE></TD></TR></TABLE></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-FRESHENING"></A>32.2.5. 刷新</H2><P>          刷新软件包和升级软件包相似。在 shell 提示下键入以下命令:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Fvh foo-1.2-1.i386.rpm</TT></PRE></TD></TR></TABLE><P>          RPM 的刷新选项比较在命令行上指定的软件包的版本和你的系统上已安装的版本。当          RPM 的刷新选项处理的版本比你已安装的版本更新,它就会被升级到更新的版本。然而,如果某软件包先前没有安装,RPM	  的刷新选项将不会安装该软件包。这和 RPM	  的升级选项不同,因为不管该软件包的老版本是否已被安装,升级选项<ICLASS="EMPHASIS">都会</I>安装该软件包。        </P><P>          RPM 的刷新选项可以用于单个软件包或一组软件包。如果你刚刚下载了大量不同的软件包,你只想升级那些已安装在你的系统上的软件包,刷新即可达到目的。如果使用刷新,你不必在使用	  RPM 前从下载的软件包组中删除不必要的软件包。        </P><P>          在这种情况下,你单使用下面的命令就可以了:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Fvh *.rpm</TT></PRE></TD></TR></TABLE><P>          RPM 将只会自动升级那些已经在系统上安装的软件包。        </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-QUERYING"></A>32.2.6. 查询</H2><P>          使用 <TTCLASS="COMMAND">rpm -q</TT> 命令来查询安装的软件包的数据库。<TTCLASS="COMMAND">rpm -q foo</TT>	  命令会显示安装的软件包 foo 的名称、版本、和发行号码:        </P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="100%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMPUTEROUTPUT">foo-2.0-1</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>。要查询软件包,你需要把	    <TTCLASS="FILENAME">foo</TT> 换成实际软件包名称。	  </P></TD></TR></TABLE></DIV><P>          与其指定软件包名称,你可以和 <TTCLASS="COMMAND">-q</TT> 一起使用下列选项来指定你要查询的软件包。它们叫做<ICLASS="EMPHASIS">软件包指定选项</I>。        </P><P></P><UL><LI><P><TTCLASS="COMMAND">-a</TT> 查询所有已安装的软件包。</P></LI><LI><P><TTCLASS="COMMAND">-f              <TTCLASS="FILENAME"><TTCLASS="REPLACEABLE"><I>&#60;file&#62;</I></TT></TT></TT>              会查询拥有 <TTCLASS="FILENAME"><TTCLASS="REPLACEABLE"><I>&#60;file&#62;</I></TT></TT>	      的软件包。当指定文件时,你必须指定文件的完整路径(如 <TTCLASS="FILENAME">/usr/bin/ls</TT>)。            </P></LI><LI><P><TTCLASS="COMMAND">-p		<TTCLASS="FILENAME"><TTCLASS="REPLACEABLE"><I>&#60;packagefile&#62;</I></TT></TT></TT>		查询软件包		<TTCLASS="FILENAME"><TTCLASS="REPLACEABLE"><I>&#60;packagefile&#62;</I></TT></TT>。            </P></LI></UL><P>         指定被查询的软件包要显示哪些信息的方法多种多样。以下选项用来选择你要搜索的信息类型。它们叫做<ICLASS="EMPHASIS">信息选择选项</I>。        </P><P></P><UL><LI><P><TTCLASS="COMMAND">-i</TT> 显示软件包信息,包括名称、描述、发行版本、大小、制造日期、生产商,以及其它杂项。            </P></LI><LI><P><TTCLASS="COMMAND">-l</TT> 显示软件包所含的文件列表。            </P></LI><LI><P><TTCLASS="COMMAND">-s</TT> 显示软件包中所有文件的状态。            </P></LI><LI><P><TTCLASS="COMMAND">-d</TT> 显示被标记为文档(man 页、info 页、README 等等)的文件列表。            </P></LI><LI><P><TTCLASS="COMMAND">-c</TT> 显示被标记为配置文件的文件列表。你在安装后改变这些文件来使软件包适用于你的系统(譬如,<TTCLASS="FILENAME">sendmail.cf</TT>、<TTCLASS="FILENAME">passwd</TT>、<TTCLASS="FILENAME">inittab</TT> 等等)。            </P></LI></UL><P>          对于用来显示文件列表的选项,你可以在命令后添加          <TTCLASS="COMMAND">-v</TT> 来用你熟悉的 <TTCLASS="COMMAND">ls -l</TT>	  格式来显示文件列表。        </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-RPM-VERIFYING"></A>32.2.7. 校验</H2><P>          校验软件包比较从某软件包安装的文件和原始软件包中的同一文件的信息。它校验每个文件的大小、MD5 值、权限、类型、所有者、以及组群。        </P><P>          <TTCLASS="COMMAND">rpm -V</TT> 命令校验软件包。你可以查询任何<ICLASS="EMPHASIS">软件包选择选项</I>列举的条目来指定要校验的软件包。校验的最简单用法是          <TTCLASS="COMMAND">rpm -V foo</TT>,它校验所有在 foo 软件包内的文件是否和最初安装时一样。例如:        </P><P></P><UL><LISTYLE="list-style-type: disc"><P>要校验包含某一特定文件的软件包:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="90%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Vf /bin/vi</TT></PRE></TD></TR></TABLE></LI><LISTYLE="list-style-type: disc"><P>要校验所有安装了的软件包:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="90%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Va</TT></PRE></TD></TR></TABLE></LI><LISTYLE="list-style-type: disc"><P>要根据 RPM 软件包文件来校验安装了的软件包:</P><TABLECLASS="SCREEN"BGCOLOR="#DCDCDC"WIDTH="90%"><TR><TD><PRECLASS="SCREEN"><TTCLASS="COMMAND">rpm -Vp foo-1.0-1.i386.rpm</TT></PRE></TD></TR></TABLE><P>如果你怀疑 RPM 数据库已被损坏,该命令就会很有用。            </P></LI></UL><P>          如果一切都被校验正确,就不会有输出。如果出现矛盾,它们就会被显示。输出的格式为包括八个字符的字符串(<TTCLASS="COMPUTEROUTPUT">c</TT> 代表配置文件),然后是文件名称。这八个字符的每个字符都代表一种文件属性的比较结果,所比较的是文件的属性和 RPM	  数据库中记录的属性。单用一个 <TTCLASS="COMPUTEROUTPUT">.</TT>(点)意味着测试通过。下列字符代表某类测试失败:        </P><P></P><UL><LI><P><TTCLASS="COMPUTEROUTPUT">5</TT> &#8212; MD5 校验和</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">S</TT> &#8212; 文件大小</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">L</TT> &#8212; 符号链接</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">T</TT> &#8212; 文件修改时间</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">D</TT> &#8212; 设备</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">U</TT> &#8212; 用户</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">G</TT> &#8212; 组群</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">M</TT> &#8212; 模式(包括权限和文件类型)</P></LI><LI><P><TTCLASS="COMPUTEROUTPUT">?</TT> &#8212; 不可读文件</P></LI></UL><P>          如果你看到任何输出,最好开动脑筋来判断是应该删除还是重新安装该软件包,或用另一种方法来解决这个问题。        </P></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="ch-rpm.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">起点</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="s1-check-rpm-sig.html"ACCESSKEY="N">前进</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">使用 RPM 来管理软件包</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ch-rpm.html"ACCESSKEY="U">上级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">检查软件包的签名</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

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