📄 2.htm
字号:
</P></LI></UL>
<UL>
<LI><STRONG>Standard</STRONG> 该级别软件包是任何Linux系统的标准件,它们组成一个小而精的字符模式的系统。
<P>系统的默认安装就包括了它们。“Standard”级软件包不包括许多大型应用程序,但它包括Emacs(它比其它应用程序更底层)和Tex及LaTeX的精巧版(不支持X)。
</P></LI></UL>
<UL>
<LI><STRONG>Optional</STRONG> 该级别软件包包括那些你可能想安装的软件,即使对它们并不熟悉。and if you don't
have specialized requirements.
<P>它们包括X11,TeX完整发布版和许多应用程序。 </P></LI></UL>
<UL>
<LI><STRONG>Extra</STRONG>
该级别软件包可能与其它高级别软件包冲突,仅当你知道其用途时才会使用它们,或者有运行它们有专门要求,这些都使它们不适合定为“Optional”级。
</LI></UL>
<HR>
<A name=s-virtual></A>
<H3>2.2.7 虚拟软件包</H3>
<P>虚拟软件包是一个统称,用来指一组具有相近功能的软件包。举个例子,<SAMP>tin</SAMP>和<SAMP>trn</SAMP>都是新闻组阅读软件,当系统中某个程序需要调用新闻阅读器工作时就会产会一个关联关系,它们必须满足这个关联,我们也称之为它们提供了一个叫做<SAMP>news-reader</SAMP>的“虚拟软件包”。
<P>又如,<SAMP>exim</SAMP>和<SAMP>sendmail</SAMP>都提供邮件传输代理的功能。也可称之为提供“邮件传输代理”虚拟包,如果安装了两者之一,那么任何与<SAMP>mail-transport-agent</SAMP>有关联关系的程序发出调用命令时,都会通过这个虚拟包实现调用。
<P>Debian有个机制,如果系统中提供同种虚拟包的软件包安装了多个,系统管理员可以指定一个为首选软件。相关的命令是<SAMP>update-alternatives</SAMP>,更详细的描述参阅<A
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html#s-alternatives">自选命令,
第 6.5.3 节</A>。
<HR>
<A name=s-depends></A>
<H3>2.2.8 软件包关联性</H3>
<P>Debian软件包管理系统有一套软件包“依赖性”定义(用一个标志)用来描述独立运行程序A与现存系统中程序B的存在之间的关系疏密程度:
<UL>
<LI>软件包A<STRONG>依赖</STRONG>(depends)软件包B:要运行A必须安装B。在有些情况下,A不仅依赖B,还要求B的特定版本。版本依赖通常有最低版限制,A更依赖于B的最新版而非某个特定版本。
</LI></UL>
<UL>
<LI>软件包A<STRONG>推荐</STRONG>(recommends)软件包B:软件包维护者认为所有用户都不会喜欢缺少某些功能的A,而这些功能需要B来提供。
</LI></UL>
<UL>
<LI>软件包A<STRONG>建议</STRONG>(suggests)软件包B:B中某些文件与A的功能相关(通常能增强其功能)。 </LI></UL>
<UL>
<LI>软件包A与软件包B<STRONG>冲突</STRONG>(conflicts):如果系统中安装了B那么A无法运行。多数情况下,冲突是由于A中包含了B中文件的改进版。“Conflicts”常和“replaces”同时出现。
</LI></UL>
<UL>
<LI>软件包A<STRONG>替换</STRONG>(replaces)软件包B:B安装的文件被A中的文件移除和覆盖了。 </LI></UL>
<UL>
<LI>软件包A<STRONG>提供</STRONG>(provides)软件包B:A中包含了B中的所有文件和功能。这种机制为那些受限于磁盘空间的用户提供了一个途径,只安装A中他们直正需要的部分。
</LI></UL>
<P>上述术语使用方法的更详细的信息参阅Packaging Manual和the Policy Manual。
<P>注意,<CODE>dselect</CODE>可以对<STRONG>recommends</STRONG>和<STRONG>suggests</STRONG>类软件包进行细操作,<CODE>apt-get</CODE>只会简单的下载安装<STRONG>depends</STRONG>类软件包而不管<STRONG>recommends</STRONG>和<STRONG>suggests</STRONG>类软件包。这两个程序均正式使用APT作为其后台。
<HR>
<A name=s-pre-depends></A>
<H3>2.2.9 何为“pre-depends”</H3>
<P>“pre-depends”是一种特殊关联关系。对于一个普通软件包,不管系统中是否存在它的关联文件,<CODE>dpkg</CODE>都会将它解包。解包主要指<CODE>dpkg</CODE>从软件包中取出安装文件。如果系统中不存在这些软件包<STRONG>依赖</STRONG>的软件包,<CODE>dpkg</CODE>会拒绝完成安装(通过执行它的“configure”动作)直至安装完所需的软件包。
<P>然而,对有些软件包,<CODE>dpkg</CODE>会拒绝解包,除非关联问题被解决。这种软件包就称为“pre-depend”于其它软件包。Debina提供这种机制是为了支持系统从<SAMP>a.out</SAMP>格式向ELF格式安全升级,在该过程中软件包的解包<STRONG>顺序</STRONG>至关重要。对于某些重大升级这种机制也很有用,例如对那些“required”级并有libc关联的软件包。
<P>再次,更多详细信息参阅Packaging Manual。
<HR>
<A name=s-pkgstatus></A>
<H3>2.2.10 软件包状态</H3>
<P>软件包有各种状态:“unknown”,“install”,“remove”,“purge”和“hold”。这些“希望”标记描述了用户打算如何操作这些软件包(既可以使用<CODE>dselect</CODE>的“Select”菜单,也可以直接调用<CODE>dpkg</CODE>)。
<P>它们的意思是:
<UL>
<LI><STRONG>unknown</STRONG> - 用户并没描述他想对软件包进行什么操作。
<LI><STRONG>install</STRONG> - 用户希望对软件包进行安装或升级。
<LI><STRONG>remove</STRONG> - 用户希望删除软件包,但不想删除任何配置文件。
<LI><STRONG>purge</STRONG> - 用户希望完全删除软件包,包括配置文件。
<LI><STRONG>hold</STRONG> - 用户希望软件包保持现状,例如,用户希望保持当前的版本,当前的状态,当前的一切。 </LI></UL>
<HR>
<A name=s-puttingonhold></A>
<H3>2.2.11 阻止软件包升级</H3>
<P>有两种方法阻止软件包升级,使用<CODE>dpkg</CODE>,或者在Woody中使用APT。
<P>使用<CODE>dpkg</CODE>,首先导出软件包选择列表: <PRE> dpkg --get-selections \* > <VAR>selections.txt</VAR>
</PRE>
<P>接着编辑文件<CODE><VAR>selections.txt</VAR></CODE>,修改想要恢复的软件所在的行,例如<CODE>libc6</CODE>,则将:
<PRE> libc6 install
</PRE>
<P>改为: <PRE> libc6 hold
</PRE>
<P>保存文件,将它装入<CODE>dpkg</CODE>数据库: <PRE> dpkg --set-selections < <VAR>selections.txt</VAR>
</PRE>
<P>或者,如果你知道要恢复的软件包名称,执行: <PRE> echo libc6 hold | dpkg --set-selections
</PRE>
<P>这个命令将在每个软件包安装过程中保持该软件包不变。
<P>使用<CODE>dselect</CODE>也可以达到同样的效果。进入[S]elect屏幕,找到想阻止其升级的软件包,按“=”键(或者“H”)。更改在你退出[S]elect屏幕后立即生效。
<P>Woody中的APT系统有一个新机制来阻止软件包升级,在下载升级档进程中使用<SAMP>Pin-Priority</SAMP>。参阅帮助页面<CODE>apt_preferences(5)</CODE>,或阅读<CODE><A
href="http://www.debian.org/doc/manuals/apt-howto/">http://www.debian.org/doc/manuals/apt-howto/</A></CODE>或<CODE>apt-howto</CODE>软件包。
<HR>
<A name=s-sourcepkgs></A>
<H3>2.2.12 源码包</H3>
<P>源码包发布在<SAMP>source</SAMP>目录中,既可以手工下载可以使用 <PRE> apt-get source <VAR>foo</VAR>
</PRE>
<P>获取它们(参阅<CODE>apt-get(8)</CODE>帮助页面)。
<HR>
<A name=s-sourcebuild></A>
<H3>2.2.13 编译源码包</H3>
<P>对于<SAMP><VAR>foo</VAR></SAMP>软件包,从源码编译需要<CODE><VAR>foo_*</VAR>.dsc</CODE>、<CODE><VAR>foo_*</VAR>.tar.gz</CODE>和<CODE><VAR>foo_*.diff</VAR>.gz</CODE>文件(注意,对于由Debian开发的软件包,没有<SAMP>.diff.gz</SAMP>文件)。
<P>当你得全了这些文件,如果你这安装了<CODE>dpkg-dev</CODE>软件包,运行: <PRE> $ dpkg-source -x <VAR>foo_version-revision</VAR>.dsc
</PRE>
<P>它将软件包解压到一个名为<SAMP><VAR>foo-version</VAR></SAMP>的目录。
<P>使用下列命令创建二进制软件包: <PRE> $ cd foo-version
$ su -c "apt-get update ; apt-get install fakeroot"
$ dpkg-buildpackage -rfakeroot -us -uc
</PRE>
<P>然后, <PRE> # su -c "dpkg -i ../<VAR>foo_version-revision_arch</VAR>.deb"
</PRE>
<P>安装新编译的软件包。参阅<A
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html#s-port">向<SAMP>stable</SAMP>系统引入软件包,
第 6.4.10 节</A>。
<HR>
<A name=s-creatingdebs></A>
<H3>2.2.14 新建Debian软件包</H3>
<P>创建新软件包的详细信息,参阅New Maintainers'
Guide,该文档在<CODE>maint-guide</CODE>包中,或浏览<CODE><A
href="http://www.debian.org/doc/manuals/maint-guide/">http://www.debian.org/doc/manuals/maint-guide/</A></CODE>。
<HR>
<A name=s-uptodate></A>
<H2>2.3 Debian系统升级</H2>
<P>Debian的设计目标之一就是提供一个一致的升级途径和安全的升级过程,我们致力于旧版本的平滑升级,软件包在升级过程中会将重要信息反馈给用户,并提供一个可能的解决方案。
<P>你也应该阅读发布手记(Release Notes),该文档描述了升级的详细情况,它存在于所有的Debian光盘中,也可以通过互联网访问<CODE><A
href="http://www.debian.org/releases/stable/releasenotes">http://www.debian.org/releases/stable/releasenotes</A></CODE>或<CODE><A
href="http://www.debian.org/releases/testing/releasenotes">http://www.debian.org/releases/testing/releasenotes</A></CODE>。
<P><A
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html">Debian软件包管理,
第 6 章</A>提供了升级的实用指南,本节只作基础细节的介绍。
<HR>
<A name=s-howtocurrent></A>
<H3>2.3.1 系统升级方法</H3>
<P>你可以简单的执行匿名FTP或用<CODE>wget</CODE>查找想安装的Debian包文件,然后下载,用<CODE>dpkg</CODE>装上。(注意<CODE>dpkg</CODE>随时随地都能安装升级文件,甚至是正在运行的系统上)然而,有时安装修订包需要先安装其它软件包的新版本,这时安装就会停止,直到所需的软件包被安装好。
<P>许多人觉得这种手工安装太费时,加上Debian软件包升级是那样频繁—通常,每周会上载十几个新软件包。在新版本发布前期更新量更是加倍。为了跟上更新速度,许多用户更乐意使用自动化升级工具。基于此目的出现了几种专门的软件包管理工具。
<HR>
<A name=s-pkgtools></A>
<H3>2.3.2 软件包管理工具概述</H3>
<P>Debian软件包管理系统有两个设计目标:实现对软件包文件和包中文件的操作。APT和<CODE>dselect</CODE>完成前者,<CODE>dpkg</CODE>完成后者。
<HR>
<A name=s-dpkg></A>
<H3>2.3.3 <CODE>dpkg</CODE></H3>
<P>它是操作软件包文件的主要工具;参阅<CODE>dpkg(8)</CODE>获得完整信息。
<P><CODE>dpkg</CODE>由几个原始的辅助程序演化而来。
<UL>
<LI>dpkg-deb:操作<SAMP>.deb</SAMP>文件。<CODE>dpkg-deb(1)</CODE> </LI></UL>
<UL>
<LI>dpkg-ftp:一个旧的软件包获取命令。<CODE>dpkg-ftp(1)</CODE> </LI></UL>
<UL>
<LI>dpkg-mountable:一个旧的软件包获取命令。<CODE>dpkg-mountable(1)</CODE> </LI></UL>
<UL>
<LI>dpkg-split:将大软件包分割成小包。<CODE>dpkg-split(1)</CODE> </LI></UL>
<P><CODE>dpkg-ftp</CODE>和<CODE>dpkg-mountable</CODE>已被新的APT系统取代。
<HR>
<A name=s-apt></A>
<H3>2.3.4 APT</H3>
<P>APT(the Advanced Packaging
Tool)是Debian软件包管理系统的高级界面,由几个名字以“apt-”打头的程序组成。<CODE>apt-get</CODE>、<CODE>apt-cache</CODE>和<CODE>apt-cdrom</CODE>是处理软件包的命令行工具,它们也是其它用户前台程序的后端,如<CODE>dselect</CODE>和<CODE>aptitude</CODE>。
<P>更多信息,可安装<CODE>apt</CODE>软件包后阅读<CODE>apt-get(8)</CODE>、<CODE>apt-cache(8)</CODE>、<CODE>apt-cdrom(8)</CODE>、<CODE>apt.conf(5)</CODE>、<CODE>sources.list(5)</CODE>、<CODE>apt_preferences(5)</CODE>(woody)以及<CODE>/usr/share/doc/apt/guide.html/index.html</CODE>。
<P>另一个资源是<CODE><A href="http://www.debian.org/doc/manuals/apt-howto/">APT
HOWTO</A></CODE>,如果安装了<CODE>apt-howto</CODE>包,可在<CODE>/usr/share/doc/Debian/apt-howto/</CODE>中找到它。
<P><SAMP>apt-get upgrade</SAMP>和<SAMP>apt-get
dist-upgrade</SAMP>只获取“Depends”类软件包,它忽略“Recommend”和“Suggests”类软件包,不想这样的话,可使用<CODE>dselect</CODE>。
<HR>
<A name=s-dselect-basics></A>
<H3>2.3.5 <CODE>dselect</CODE></H3>
<P>这个程序是Debian软件包管理系统中菜单驱动的用户界面。特别适用于首次安装和大面积升级。参阅<A
href="http://qref.sourceforge.net/Debian/reference/ch-package.zh-cn.html#s-dselect"><CODE>dselect</CODE>,
第 6.2.3 节</A>。
<P>更多信息,可安装<CODE>install-doc</CODE>包后阅读<CODE>/usr/share/doc/install-doc/dselect-beginner.en.html</CODE>或<CODE><A
href="http://www.debian.org/releases/woody/i386/dselect-beginner">dselect
Documentation for Beginners</A></CODE>。
<HR>
<A name=s-updaterunning></A>
<H3>2.3.6 不停机系统升级</H3>
<P>Debian系统的内核(文件系统)支持替换使用中文件。
<P>我们还提供了一个程序<CODE>start-stop-daemon</CODE>用来在系统启动时开启daemons或内核运行级别(runlevel)改变时停止daemons(例如:从multi-user级转到single-user级或关机)。当安装新软件包时如果该软件包中包含daemon安装,安装脚本会调用这个程序,停止运行中的daemons,然后在合适的时候重启它们。
<P>注意,Debian系统不要求用户在single-user模式下进行不停机升级。
<HR>
<A name=s-savedebs></A>
<H3>2.3.7 下载和缓存<SAMP>.deb</SAMP>文件</H3>
<P>如果你手工下载包文件到硬盘(这完全没有必要,请阅读上面有关<CODE>dpkg-ftp</CODE>或APT的内容),当你完成软件包安装工作后,可以从系统中删除<SAMP>.deb</SAMP>文件。
<P>如果是使用APT,这些文件会缓存在<CODE>/var/cache/apt/archives/</CODE>目录中。你可以在完成安装后删除它们(<SAMP>apt-get
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -