Ubuntu中文手册第六章软件包管理Word格式.docx
- 文档编号:18670940
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:19
- 大小:31.72KB
Ubuntu中文手册第六章软件包管理Word格式.docx
《Ubuntu中文手册第六章软件包管理Word格式.docx》由会员分享,可在线阅读,更多相关《Ubuntu中文手册第六章软件包管理Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
▪6.3.2APT升级错误以及解决方法
▪6.3.3使用dpkg救助
▪6.3.4恢复软件包选择状态的数据
▪6.3.5/var崩溃之后如何恢复系统
▪6.3.6为无法启动的系统安装软件包
▪6.3.7如果dpkg命令出错怎么办
o6.4Ubuntu必杀技
▪6.4.1文件信息
▪6.4.2软件包信息
▪6.4.3使用APT无人执守安装
▪6.4.4重新配置已安装的软件包
▪6.4.5删除和清除软件包
▪6.4.6阻止旧软件包升级
▪6.4.7breezy/dapper/edgy混合系统
▪6.4.8删除缓存包文件
▪6.4.9记录/拷贝系统配置
▪6.4.10向breezy系统引入软件包
▪6.4.11本地软件包文件
▪6.4.12转换或安装外来的二进制软件包
▪6.4.13自动安装命令
▪6.4.14校验已安装的软件包
▪6.4.15优化sources.list
o6.5其他Ubuntu的特性
▪6.5.1dpkg-divert命令
▪6.5.2equivs软件包
▪6.5.3Alternative命令
▪6.5.4运行级别Runlevel
▪6.5.5停止daemon服务
第6章-Ubuntu软件包管理
高级包管理工具aptitude是目前首选的字符界面的APT前端程序。
它会记住哪些包是你安装的,哪些是为了满足依赖关系而安装的;
在不被已安装包需要的情况下aptitude会自动卸载后者。
它内建一套高级的包过滤器,但是比较难上手。
synaptic是目前首选的基于GTK的图形化APT前端程序。
它的包过滤器比aptitude的好用多了。
它包含了对DebianPackageTags的实验性支持。
为了减少Ubuntu仓库的网络负担和加快你下载的速度,你应该从Ubuntu镜像下载。
如果你需要在你本地网络的许多台机器上安装相同的包。
在使用APT下载包的时候,请考虑使用squid来设置本地HTTP代理。
必要的话,可以设置环境变量http_proxy或者在/etc/apt/apt.conf里面设置http的值。
尽管apt_preferences(5)中描述的APT的pinning功能非常强大,但造成的影响是难以察觉和管理的。
你应该把它作为一个高级功能来看待。
在chroot,第8.6.35节中描述的使用方法非常适合于需要同时确保系统的稳定性和使用最新软件的情况。
介绍
如果你没有精力阅读完所有的开发者文档,那么先看看本章的内容,然后开始体验Ubuntu的威力吧:
-)
主要的包管理工具
dpkg–Debian包安装工具
apt-get–APT的命令行前端
aptitude–APT的高级的字符和命令行前端
synaptic–图形界面的APT前端
dselect–使用菜单界面的包管理工具
tasksel–Task安装工具
这些工具不是用来取代对方的,比如dselect同时使用APT和dpkg。
APT使用/var/lib/apt/lists/*来跟踪可用的软件包,而dpkg使用的是/var/lib/dpkg/available。
如果你使用了aptitude或者其他APT前端来安装软件包,同时你希望使用dselect来安装软件包,请不要忘记使用dselect菜单上的[U]pdate(或者运行"
dselectupdate"
)来更新/var/lib/dpkg/available。
在处理依赖关系上apt-get会自动下载安装依赖的软件包,但是不会处理所安装软件推荐的或者建议的软件包。
相反aptitude可以设置成安装所安装软件推荐的或者建议的软件包。
dselect给使用者列出所安装软件推荐或建议的软件包,可以进行单独选择。
参阅软件包依赖关系,第2.2.8节.
方便的工具
dpkg-reconfigure-重新配置已安装的软件包
(如果它是使用debconf进行配置的)
dpkg-source-管理源码包
dpkg-buildpackage-自动生成包文件
apt-cache-在本地缓冲区检查包文件
Ubuntu软件包管理基础
设置APT
参考准备升级工作,第5.2节来设置sources.list。
请参考Ubuntu系统安装提示,第3章,发行版升级到Breezy、Dapper或Edgy,第5章,和应急的编辑器,第11.2节.
安装tasks
你可以安装一些软件包集合,这些集合是由使Ubuntu系统满足某些特定用途的典型软件包组成的。
这些集合被称为“tasks”。
在初始化安装中,安装tasks最简单的方法就是使用tasksel。
注意在使用之前,你需要运行
dselectupdate
建议使用aptitude来安装tasks。
它能让你在选择好tasks并准备安装之前,删除tasks中的某些软件包。
aptitude
aptitude是全新的可菜单操作的包安装工具,和dselect类似,但是是针对APT从头设计的。
从大多数参数来讲,aptitude完全可以作为apt-get的一个兼容的代替品。
参阅aptitude
(1)和/usr/share/doc/aptitude/README.
一旦开始使用aptitude,你最好继续使用它,而不是选择其他替代工具。
否则你将失去aptitude包存的软件安装清单,你就不能享受自动删除多余软件包的功能了。
全屏状态下aptitude接受单键的命令,大多数是小写的。
主要的几个功能键如下:
按键动作
F10菜单
?
按键命令帮助(完整的清单)
u更新软件包信息
+标记软件包为升级或者新安装
-标记软件包为删除(保留配置文件)
_标记软件包为完全删除(删除配置文件)
===保持软件包的当前版本,阻止其被升级
U标记所有可以升级的软件包为升级
g下载和安装选择的软件包
q退出当前屏幕,保存改变
x退出当前屏幕,忽略改变
Enter查看一个软件包的信息
C查看一个软件包的更新日志
l改变软件包树状显示限制
/搜索第一个匹配的软件包
\重复最后一次搜索
和apt-get一样,aptitude安装软件包的时候自动解决依赖问题。
aptitude还能安装即将安装的软件包推荐或者建议的软件包。
你通过F10->
选项->
处理依赖关系在菜单上更改这一默认设置。
aptitude的其他特点如下:
∙aptitude能访问所有版本的软件包。
∙aptitude的动作记录在/var/log/aptitude。
∙aptitude能轻松的追踪陈旧的和本地建立的软件包,并在“过期的和在本地创建的软件包”上列出。
∙aptitude内建强大的包搜索和显示功能。
熟悉mutt的用户很容易上手,因为这个显示方法的灵感来源于mutt。
参阅/usr/share/doc/aptitude/README中的“SEARCHING,LIMITING,ANDEXPRESSIONS”
∙aptitude在全屏状态下有嵌入的su功能。
普通用户都可以执行,直到安装或删除软件的时候再取得管理员权限。
dselect
dselect一直是主要的包维护工具。
你可以考虑用aptitude代替。
当你启动程序的时候,dselect会自动选择所有“Required”“Important”和“Standard”的包。
dselect的用户界面是有些奇怪,但是大部分人已经习惯了。
它有四个主要命令:
(指令都是大写的!
):
Q退出。
确认当前的选择并退出。
(忽略依赖关系)
R撤销!
我不是那个意思。
D不管他!
我不管你dselect怎么想的,照做就好了!
U都照建议的来做
使用D和Q,你可以选择有冲突的选项。
请小心使用这个命令。
在/etc/dpkg/dselect.cfg中加上一行“expert”来减少干扰。
如果你的机器运行dselect的速度很慢,你可以考虑在速度快一点的机器上运行dselect,确定你要安装的软件包之后,在慢的机器上通过apt-get来安装它们。
使用APT来维护发行版本
请编辑/etc/apt/preferences并加入以下内容来维持系统为dapper版本:
Package:
*
Pin:
releasea=edgy
Pin-Priority:
800
releasea=dapper
600
更多复杂的例子请参考apt_preferences(5),可以让您做更多的事情,例如安装edgy的软件包的同时还能把系统维持在dapper。
关于限制特定软件在特定版本上,而其他软件随系统升级的设置在examplessubdirectory找到,即preferences.dapper和preferences.edgy。
如果你混用不同的发行版本,例如dapper和breezy或edgy和dapper,你终究还是会安装上dapper或edgy版本的核心软件,例如libc6,这样作无法确保系统中没有臭虫。
你需要特别小心。
另外一个例子,preferences.breezy,会强制降级所有的软件到breezy。
Ubuntu不支持将某个软件包降级到先前的发行版本。
然而在新的软件包出问题时,你会发现你不得不安装旧的可用的软件包。
你可以在本地的/var/cache/apt/archives/或远端的中找到先前的版本。
请参考使用dpkg救助,第6.3.3节。
从某个发行版本降级到先前的发行版本也是不被支持的,而且这样做往往造成很多问题。
不过你愿意冒险的话,作为最后的手段这样做也是值得的。
aptitude,apt-get和apt-cache命令
还是以上面使用testing发行版的用户为例,可使用下列命令来管系统:
∙aptitudeupgrade(或apt-getupgrade或aptitudedist-upgrade或apt-getdist-upgrade)
这样就会跟随dapper版本—它们会跟踪dapper版本的更新情况,对系统上所有软件包进行升级,并从dapper处重新分析依赖关系并安装相关的包。
∙apt-getdselect-upgrade
这个命令跟踪dapper版本—根据dselect的选择对系统上的软件包进行升级。
∙aptitudeinstallpackage/edgy
从edgy中安装package,并由dapper版本提供安装依赖的包。
∙aptitudeinstall-tedgypackage
通过设置edgy的Pin-Priority为990,可以从edgy处安装package及其依赖的包。
∙apt-cachepolicyfoobar...
检查foobar...软件包的状态。
∙aptitudeshowfoobar...|less(或apt-cacheshowfoobar...|less)
查看foobar...软件包的有关信息。
∙aptitudeinstallfoo=2.2.4-1
安装foo软件包的特定版本2.2.4-1。
∙aptitudeinstallfoobar-
安装foo软件包并删除bar软件包。
∙aptituderemovebar
删除bar软件包,但保留其配置文件。
∙aptitudepurgebar
删除bar软件包及其所有配置文件。
在上面的例子中使用-u选项的作用是在实际升级之前将所有将要升级的软件包列出,并提示用户确认。
下面的操作可将-u设置为默认行为:
$cat>
>
/etc/apt/apt.conf<
<
.
//Alwaysshowpackagestobeupgraded(-u)
APT:
:
Get:
Show-Upgraded"
true"
;
.
使用--no-act可进行模拟升级,并不是进行真正的升级行为。
Ubuntu生存命令
掌握了这些知识,你就能够享受无尽的“升级”了
检测程序错误寻求帮助
如你使用某个软件包出现问题,在寻求帮助或发送错误报告之前请确认查看过下列站点(lynx,links和w3m都很好用):
$lynx
$lynx#如果你知道软件包的名字
$lynx#如果你知道错误序号
在Google()中使用关键字“site:
”搜索。
如有疑问,可阅读帮助文件。
设置CDPATH如下:
exportCDPATH=.:
/usr/local:
/usr/share/doc
然后输入
$cdpackagename
$pagerREADME.Debian#如果存在的话
$mc
更多技术支持资源列在Debian技术支持,第15章。
APT升级错误以及解决方法
从edgy/dapper进行升级时可能出现升级,第5.3节中提到的软件包关联问题。
多数情况下,是因为升级的软件包所需的新增的关联包没有安装。
可使用如下方法解决:
#aptitudedist-upgrade
如果这招无效,可以重复下面的方法至到问题解决:
#aptitude-fupgrade#即使遇到错误也继续upgrade
...或
#aptitude-fdist-upgrade#即使遇到错误也继续dist-upgrade
一些的确存在问题的升级脚本会引起持续出错。
最好的解决方法是检查该软件包的安装脚本/var/lib/dpkg/info/packagename.{post-,pre-}{install,removal}然后运行:
#dpkg--configure-a#配置所有安装的软件包
如果脚本报告缺少配置文件,查看一下/etc中相关的配置文件。
如果配置文件有.dpkg-new扩展名(或其它类似的扩展名),去掉(mv)它的扩展名。
从edgy/dapper进行升级时可能出现软件包关联问题。
可用这个方法智取:
#aptitude-finstallpackage#重载坏关联
还可以用equivs包来解决此类问题。
参阅/usr/share/doc/equivs/README.Debian和equivs软件包,第6.5.2节。
使用dpkg救助
如果你在使用APT的时候遇到死胡同了,那么可以从Ubuntu的镜像站点下载软件包并使用dpkg来安装。
如果你不能访问网络,可以在/var/cache/apt/archives/中找到被缓存的软件包。
#dpkg-ifetchmail_6.2.5-4_i386.deb
如果你用这种方法安装软件包,但是遇到了依赖问题安装失败了,并且你确实需要安装这个软件包。
你可以用dpkg的--ignore-depends,--force-depends和其他参数来安装软件包。
dpkg(8)有更详细的介绍。
恢复软件包选择状态的数据
如果/var/lib/dpkg/status因为某种原因坏掉了,Ubuntu系统将会完全丢失软件包选择状态的数据。
赶快到/var/lib/dpkg/status-old或/var/backups/dpkg.status.*下找找旧的/var/lib/dpkg/status文件。
将/var/backups/放在其它的分区是个好习惯,因为该目录包含了许多非常重要的系统数据。
如果旧的/var/lib/dpkg/status文件也坏了,仍可以从/usr/share/doc/下的目录进行恢复这些信息。
#ls/usr/share/doc|\
grep-v[A-Z]|\
grep-v'
^texmf$'
|\
^debian$'
awk'
{print$1"
install"
}'
dpkg--set-selections
#dselect--expert#重新安装系统,如果需要的话去除一些选项
/var崩溃之后如何恢复系统
/var目录包含着定时更新的数据如mail,它们很容易遭破坏。
将目录放到别的分区可降低风险,如果最坏的事情发生了,可以通过重建/var目录来挽救Ubuntu系统。
从相同或旧版本的最简Ubuntu系统中取得/var目录的内容框架,例如var.tar.gz,然后它放入受损系统的root目录,接着
#cd/
#mvvarvar-old#如果里面还有其他有用资料的话
#tarxvzfvar.tar.gz#使用Woody框架文件
#aptitude#或是用dselect
上述步骤可使系统恢复工作。
使用恢复软件包选择状态的数据,第6.3.4节中描述的技术加速软件包选择数据的恢复。
([FIXME]:
该过程需要更多的实践来检验)
为无法启动的系统安装软件包
使用Ubuntu急救软盘/CD或从多启动Linux系统其它分区启动。
参阅启动系统,第8.1节.将无法启动的系统挂载到/target并使用dpkg的chroot安装模式。
#dpkg--root/target-ipackagefile.deb
接下来就可以着手配置并解决问题。
如是只是由于lilo损坏而造系统无法启动,可使用标准Ubuntu急救盘启动。
假设你的root分区位于/dev/hda12且想使用runlevel3,在启动提示符输入:
boot:
rescueroot=/dev/hda123
这样,你就可以使用软盘中内核启动系统,新系统的功能基本齐全。
(可能丢失某些内核特性或模块)
如果dpkg命令出错怎么办
如果dpkg损坏就不能安装任何.deb文件。
下面的操作可帮助你修复这种状况。
(在第一行,你可将“links”替换成你喜欢的浏览器。
)
$links
...下载完好的dpkg_version_arch.deb
$su
password:
*****
#arxdpkg_version_arch.deb
#mvdata.tar.gz/data.tar.gz
#tarxzfvdata.tar.gz
对i386,亦可用作为URL。
Ubuntu必杀技
有了这些命令的启迪,你将会从无休止的升级冲突的地狱中解放出来,达到Ubuntu天堂。
文件信息
在已安装的软件包中许找特定文件所属的软件包:
$dpkg{-S|--search}pattern
或者搜索Ubuntuarchive:
$wget
$zgrep-epatternContents-i386.gz
或是用专门的软件包命令:
#aptitudeinstalldlocate
#和slocate冲突(locate的安全版本)
$dlocatefilename#dpkg-L和dpkg-S的高效代替品
...
#aptitudeinstallauto-apt#请求式软件包安装工具
#auto-aptupdate#为auto-apt建立db文件
$auto-aptsearchpattern
#在所有软件包中搜索pattern,不论安装与否
软件包信息
搜索并显示包文件的信息。
编辑/etc/apt/sources.list,让APT指向正确的包文件。
如果想了解dapper/edgy中的相应软件包与当前系统安装的软件包有何差别,使用apt-cachepolicy—更好。
#apt-getcheck#更新缓冲区并检查损坏的软件包
$apt-cachesearchpattern#按文本描述搜索软件包
$apt-cachepolicypackage#软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ubuntu 中文 手册 第六 软件包 管理