版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一篇关于Debian/GNU软件配置工具介绍的文章主要工具dselect - 使用菜单界面的软件包管理工具(最上层的包管理工具)dpkg - 安装软件包(管理软件包中的文件)apt-get - 安装软件包(管理软件包,CLI APT)tasksel - 安装任务套件(管理面向某方面任务的一套软件包)aptitude - 安装软件包(管理软件包和任务套件,ncurses APT)deity - 另一种ncurses APTsynaptic, gsynaptic - 另一种GUI APT它们不是同级的工具。dselect'运行于APT(命令行命令是apt-get')和dpkg
2、9;之上。APT使用/var/lib/apt/lists/*'来跟踪可用的软件包,而dpkg'使用的是 /var/lib/dpkg/available'。如果直接用apt-get'或同类工具如aptitude'等来安装软件包,千万别忘了更新 /var/lib/dpkg/available'文件,可以使用dselect的Update'选项或在运行dselectupdate'、tasksel'或dpkg -l'前执行shell命令行“dselect update'”。在理关联软件包的方式上,apt-get
3、9;会自动搜索下载_depends_类软件包,但不会理睬_recommends_和_suggests_ 类软件包,而dselect'在软件包的选择方面采用菜单方式操作,对_depends_、_recommends_和_suggests_三类相关软件包均给出提示。aptitude'则提供了选项下载安装所有_depends_、_recommends_和_suggests_类软件包。方便的工具apt-cache - 在本地缓冲区检查包文件dpkg-reconfigure - 重新配置已安装的软件包(如果它是使用debconf进行配置的)dpkg-source - 管理源码包dpkg-
4、buildpackage - 自动生成包文件.Debian软件包管理基础地安装软件包称之为_task_,还可以使用软件包管理工具逐个地安装软件包或升级系统。使用tasksel'或aptitude'进行_task_安装tasksel'是_Debian的任务安装器_,系统安装过程中它为用户提供了一种简易'软件包选择方式。如果你希望完装的某项常规功能包含了许多软件包,最好的办法就是使用它来安装。运行如下命令:# dselect update# taskselaptitude'亦可访问_task_。用它不仅可以选择_tasks_还可以对_task_选项菜单中的软
5、件包进行逐个取舍。设置APT系统使用testing'发布版的用户,有时需要对系统进行有选择性地升级首先,在/etc/apt/sources.list'中添加stable'、testing'和unstable'镜像源,接着编辑/etc/apt/preferences',设置合适的Pin-Priority。1Package: *Pin: release a=stablePin-Priority: 500Package: *Pin: release a=testingPin-Priority: 600Package: *Pin: release a=u
6、nstablePin-Priority: 501 I kept the description around here as is to maintain consistency withother parts. If you are really tracking testing' or unstable', youshould actually remove references to stable' in/etc/apt/sources.list' and /etc/apt/preferences'. This is becausetesting&
7、#39; starts as a copy of stable'.用 dselect代替apt:dselect'会自动选上所有“Required”、“Important”和“Standard”类软件包,在Potato系统中,某些大型应用程序如TeX和Emacs处于这些分类中,在初次安装系统时最好手工取消对它们的选择(输入“_”)。在Woody稳定版中,这些大型应用程序被移入 “Optional”类软件包。dselect'的用户界面有点怪。有4个相似命令(注意是大写字母!):Key-stroke ActionQ 退出。确认当前的选择然后退出。(override depen
8、dencies)R 恢复!我放弃我做出的选择D 不管它!我不管dselect有什么建议,照我说的做!U 照系统的建议做使用D'和Q'可以选择有冲突的选项,你要自负风险,所以使用这些命令要小心。当前dselect'是一款成熟的菜单驱动式工具,在对_suggests_和_recommends_类软件包的选择控制方面,它提供相当棒的微操作能力。在/etc/dpkg/dselect.cfg'中加上一行包含“expert”选项以减少干扰。对于速度慢的机器,请在其它速度快的机器上运行dselect'选好软件包,然后用apt-getinstall'安装它们。对
9、于没有定义Pin-Priority的软件包,dselect'不会访问它们。使用 aptitude程序:aptitude'是一款新的菜单驱动式软件包安装工具,与dselect'很相似。它亦可作为命令行工具apt-get'的替代品。aptitude'可接受单字符命令,通常是小写字母。Key-stroke ActionF10 菜单? 键盘命令帮助u 更新软件包信息g 下载并安装选定的软件包q 保存修改并退出当前屏幕x 放弃修改并退出当前屏幕Enter 浏览某软件包的相关信息aptitude'提供了选项可自动选取所有_depends_、_recommen
10、ds_和_suggests_类软件包。可在F10-> Options -> Dependency handling'菜单中设置它。通过aptitude'可访问某软件包的所有版本。apt-cache和apt-get命令还是以上面使用testing'发布版的用户为例,可使用下列命令管理系统:* apt-get -u upgrade'跟踪testing'发布版的更新情况,对系统上所有软件包进行升级并从testing'处安装关联软件包。* apt-get -u dist-upgrade'跟踪testing'发布版的更新情况,对
11、系统上所有软件包进行升级并从testing'处重新分析关联关系并安装关联包。* apt-get -u dselect-upgrade'跟踪testing'发布版的更新情况,对系统上所有在dselect'中选定了的软件包进行升级。* apt-get -u install '从testing'处安装及其关联包。* apt-get -u install /unstable'从unstable'处安装并从testing'处安装关联包。* apt-get -u install -t unstable '从unstable
12、39;处安装及其关联包。注意须设置unstable'的Pin-Priority为990。* apt-cache policy '检查软件包的状态。* apt-cache show | less'查看软件包的有关信息。* apt-get install '安装软件包的特定版本<2.2.4-1>。* apt-get -u install '安装软件包并删除软件包。* apt-get remove '删除软件包,但保留其配置文件。* apt-get remove -purge '删除软件包及其配置文件。在上面的例子中用-u'
13、选项的作用是在实际升级之前将所有将要升级的软件包列出,并提示用户确认。下面的操作可将-u'设置为默认行为:$ cat >> /etc/apt/apt.conf << ./ Always show packages to be upgraded (-u)APT:Get:Show-Upgraded "true".使用-s'可进行模拟升级,并不进行真正的升级行为。跟踪某Debian发行版根据个人的喜好,选择要跟踪的Debian发行版设置APT系统'的样例文件/etc/apt/preferences':track stable
14、: 将testing的Pin-Priority改为50track testing: 保持上面的设置不变track testing(unstable): 将unstable的Pin-Priority改为500track unstable(testing): 将unstable的Pin-Priority改为800有关如何选定Pin-Priority的说明:在上表中,从上而下代表了某个版本从上个版本刚刚发布之后到下一版进入冻结期之前这段时间经历的各个阶段。请注意,跟踪testing'发行版的Debian有一个负面影响,安全补丁的更新很慢。请注意,如果将Debian各版本混合,例如将testi
15、ng'混入stable'或将unstable'混入stable',这会造成众多关键软件包不自觉地从testing'处或unstable'处获得,结果引起许多麻烦。如何对/etc/apt/preferences'进行设置,将某些关键包锁定在成熟版本,而让其它非关键包跟踪不太成熟的新版本,可参考样例目录(/doc/manuals/debian-reference/examples/)中的 preferences.testing'和preferences.unstable'文件。另一方面,
16、preferences.stable' 强制所有软件包降级到“stable”。将所有软件包降级到stable'要将所有软件包降级到stable',可按下面的方法编辑/etc/apt/preferences':Package: *Pin: release a=stablePin-Priority: 1001然后运行“apt-get upgrade'”,由于Pin-priority >1000而引起强制降级。注意,该操作可能会在关联性方面发生一点问题。/etc/apt/preferences概述设置APT系统'中展示的/etc/apt/pref
17、erences'样例文件里,首行Package:*'表示该段落指令作用于所有软件包。可以通过指定软件包名称来为某个特定的软件包设置指定的Pin-Priority。接下来的一行是Pin: release a=stable'表示apt-get'从包含Archive:stable'节的Release'文件所在的目录获得Packages.gz'文件。最后一行Pin-Priority: 500'指定Pin-Priority为500。如果多个软件包同名,系统通常会安装拥有最高Pin-Priority的软件包。在此,Pin-Priority表示
18、:* 1001及以上:可降级优先级。Pin-Priority处于该范围的软件包允许降级操作。* 100到1000:标准优先级。不允许降级。几个key Pin-Priority的值:* 990:由-target-release'或apt-get(8)-t'选项设置的优先级。* 500:所有默认软件包文件的优先级。* 100:当前安装软件包文件的优先级。* 0到99:非自动优先级。(仅用于软件包没有安装或没有别的可用版本时。)* 小于0:决不选择该版本。按下面的方法设置/etc/apt/apt.conf'可获得与-target-release'一样的效果:# ech
19、o 'APT:efault-Release "testing"' >> /etc/apt/apt.conf命令行选项-target-release'和/etc/apt/apt.conf'中的设置会顶替/etc/apt/preferences'的设置。在玩/etc/apt/preferences'的时候小心两者冲突。检测程序错误寻求帮助如你使用某个软件包出现问题,在寻求帮助或发送错误报告之前请确认查看过下列站点(lynx'、links'和w3m'同样好用):$ lynx http:/bugs.
20、/$ lynx / # 如果你知道软件包名称$ lynx / # 如果你知道错误序号如有疑问,可阅读帮助文件。设置CDPATH'如下:export CDPATH=.:/usr/local:/usr/share/doc然后输入$ cd $ pager README.Debian # if this exists$ mcAPT升级错误及解决方法从unstable'/testing'进行升级时可能出现第 5.3 节,升级Debian系统'中提到的软件包关联问题。多数
21、情况下,是因为升级的软件包所需的新增的关联包没有安装。可使用如下方法解决:# apt-get dist-upgrade如果这招无效,可以重复下面的方法至到问题解决:# apt-get upgrade -f # continue upgrade even after error. 或# apt-get dist-upgrade -f # continue dist-upgrade even after error一些的确存在问题的升级脚本会引起持续出错。最好的解决方法是检查该软件包的安装脚本/var/lib/dpkg/info/packagename.<>'然后运行:# dp
22、kg -configure -a # 配置所有未完成安装的软件包如果脚本报告缺少配置文件,查看一下/etc'中相关的配置文件。如果配置文件有.new'扩展名(或其它类似的扩展名),去掉(mv')它的扩展名。从unstable/testing进行升级时可能出现软件包关联问题。可用这个方法智取:# apt-get install -f # 重载坏关联使用dpkg救助如果系统的dselect'(APT)受损无法完成安装,可使用dpkg'来恢复:# cd /var/cache/apt/archives# dpkg -i libc6* libdb2* perl*#
23、 dpkg -i apt* dpkg* debconf*# dpkg -i * # 直至不再出错如果软件包丢失,用下述方法从镜像源(/mirror/)下载:# mc # use "FTP link" pointing to Debian FTP server现在,在HTTP/FTP服务器上,软件包的真正位置不再是传统的/dist'目录而是新的/pool'目录。然后开始安装:# dpkg -i /var/cache/apt/archives/对于坏关联,可这样解决:# dpkg -ignore-depends=,. -i
24、 # dpkg -force-depends -i # dpkg -force-depends -purge # dpkg -force-confmiss -i # Install missing conffile恢复软件包选择状态的数据如果/var/lib/dpkg/status'因为某种原因坏掉了,Debian系统将会完全丢失软件包选择状态的数据。赶快到 /var/lib/dpkg/status-old'或/var/backups/dpkg.status.*'下找找旧的 /var/lib/dpkg/status'文件。将/var/backups/'放
25、在其它的分区是个好习惯,因为该目录包含了许多非常重要的系统数据。如果旧的/var/lib/dpkg/status'文件也坏了,仍可以从/usr/share/doc/'下的目录进行恢复这些信息。# ls /usr/share/doc |grep -v A-Z |grep -v 'texmf$' |grep -v 'debian$' |awk 'print " install"' |dpkg -set-selections# dselect -expert # reinstall system, de-select
26、 as needed/var被删除后如何恢复系统/var'目录包含着定时更新的数据如mail,它们很容易遭破坏。将目录放到别的分区可降低风险,如果最坏的事情发生了,可以通过重建/var'目录来挽救Debian系统。从相同或旧版本的最简Debian系统中取得/var'目录的内容框架,例如var.tar.gz(/osamu/pub.膔oot目录,接着# cd /# mv var var-old # 如果剩有有用内容# tar xvzf var.tar.gz # 使用Woody框架文件# aptitude # 或用dselect上
27、述步骤可使系统恢复工作。恢复软件包选择状态的数据'中描述的技术加速软件包选择数据的恢复。(FIXME:该过程需要更多的实践来检验)为无法启动的系统安装软件包使用Debian急救软盘/CD或从多启动Linux系统其它分区启动。启动系统'.将无法启动的系统挂载到/target'并使用dpkg'的chroot安装模式。# dpkg -root /target -i接下来就可以着手配置并解决问题。如是只是由于lilo'损坏而造系统无法启动,可使用标准Debian急救盘启动。假设你的root分区位于/dev/hda12'且想使用runlevel3,在启动提
28、示符输入:boot: rescue root=/dev/ 3这样,你就可以使用软盘中内核启动系统,新系统的功能基本齐全。(可能丢失某些内核特性或模块)如果dpkg命令出错该怎么办如果dpkg'损坏就不能安装任何.deb'文件。下面的操作可帮助你修复这种状况。(在第一行,你可将“links”替换成你喜欢的浏览器。)$ links http:/debian/pool/main/d/dpkg/. 下载完好的dpkg_.deb$ supassword: *# ar x dpkg_.deb# mv data.tar.gz /data.tar.gz# cd /# tar xzfv data
29、.tar.gz对i386',亦可用/dpkg'作为URL。文件信息查找特定文件所属的软件包:$ dpkg pattern # search for pattern in installed packages$ wget /debian/dists/$ zgrep -e pattern# find filename-pattern of files in the debian archive或使用专门的软件包命令:# apt-get install dlocate# conflicts
30、 with slocate (secure version of locate)$ dlocate # fast alternative to dpkg -L and dpkg -S.# apt-get install auto-apt # on-demand package installation tool# auto-apt update # create db file for auto-apt$ auto-apt search # search for pattern in all packages, installed or not软件包信息搜索并显示包文件的信息。编辑/etc/a
31、pt/sources.list',让APT指向正确的包文件。如果想了解testing/unstable中的相应软件包与当前系统安装的软件包有何差别,使用apt-cachepolicy'-更好。# apt-get check # 更新缓冲区并检查损坏的软件包$ apt-cache search # 按文本描述搜索软件包$ apt-cache policy # 软件包的priority/dists信息$ apt-cache show -a # 显示所有dists中软件包描述信息$ apt-cache showsrc # 显示相应源码包的信息$ apt-cache showpkg #
32、 软件包调试信息# dpkg -audit|-C # 搜索未完成安装的软件包$ dpkg . # 已安装软件包描述$ dpkg -l . # 已安装软件包的状态(每个占一行)$ dpkg -L . # 列出软件包安装的文件的名称如果是Woody发布版没有为apt-cache showsrc'建档,但该命令可用你也这可这样查看软件包信息(我用mc'浏览):/var/lib/apt/lists/*/var/lib/dpkg/available比较下面的文件可以确切了解最近的安装过程对系统造成了那些改变。/var/lib/dpkg/status/var/backups/dpkg.st
33、atus*使用APT进行全自动系统安装进行全自动安装,要在/etc/apt/apt.conf'中加上一行:Dpkg:Options另一种等阶的方法是运行apt-get -q -y'。这种方法可能产生严重的负作用,所以使用起来要小心。参阅apt.conf(5)和dpkg(1)。安装完毕以后重新配置已安装软件包'中的方法配置特定的软件包。重新配置已安装软件包使用下列方法重新配置已安装软件包。# dpkg-reconfigure -priority= .# dpkg-reconfigure -all # 重新配置所有的软件包# dpkg-reconfigure locales
34、 # 生成别的locales# dpkg-reconfigure -p= xserver-xfree86 # 重新配置X服务器如果你想永久改变debconf'对话框模式,可这么做。某些程序用于生成特殊的配置脚本。apt-setup - 创建/etc/apt/sources.listinstall-mbr - 安装主引导(Master Boot Record)管理器tzconfig - 设定本地时间gpmconfig - 设置gpm鼠标daemonsambaconfig - 在Potato中配置Samba(Woody使用debconf来配置)eximconfig - 配置Exim (MT
35、A)texconfig - 配置teTeXapacheconfig - 配置Apache (httpd)cvsconfig - 配置CVSsndconfig - 配置声音系统.update-alternatives - 设定默认启动命令,例如设定vi启动vimupdate-rc.d - System-V init脚本管理工具update-menus - Debian菜单系统.删除软件包删除软件包但保留其配置文件:# apt-get remove .# dpkg -remove .删除软件包并删除配置文件:# apt-get remove -purge .# dpkg -purge .阻止旧软件
36、包升级举个例子,要阻止libc6'和libc6-dev'通过dselect'或使用apt-get -uupgrade '命令升级,可执行:# echo -e "libc6 hold libc6-dev hold" | dpkg -set-selections这种方法不影响apt-get -u install '命令操作。要阻止apt-get-u upgrade '或apt-get -udist-upgrade'命令对软件包执行的强制自动降级行为,可在/etc/apt/preferences'中加上:Packag
37、e: libc6Pin: release a=stablePin-Priority: 2000这里“Package:'”后不能使用通配符如“libc6*'”,如果要保持所有与glibc'源码包相关的二进制包的版本同步,可以明确的列出它们。该命令可以显示处于“阻止”状态的软件包:dpkg -get-selections "*"|grep -e "hold$"stable/testing/unstable混合系统apt-show-versions'可以列出发行版中可用软件包的版本。$ apt-show-versions | fgrep /testing | wc. 你有多少testing软件包$ apt-show-versions -u. 列出可升级的软件包$ apt-get install apt-show-versions -u -b | fgrep /unstable. 将所有unstable软件包升级到最新版本删除缓存包文件使用APT安装软件包会在/var/cache/apt/archives'目录留下缓存文件,要清除这些文件可使用:# apt-get autoclean # removes only useless package files# apt-get clean
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球及中国大功率电主轴行业头部企业市场占有率及排名调研报告
- 2025-2030全球3D细胞模型成像和分析系统行业调研及趋势分析报告
- 2025-2030全球无收银员结账解决方案行业调研及趋势分析报告
- 2025商业裙房买卖服务合同
- 销售合同签订流程图范本年
- 2025经济合同履约担保的法律规定具体有些
- 苹果购销合同书
- 国有股权转让合同
- 2025防水合同协议书范文
- 2025工程施工承包合同备案申报表(I)
- 慢性肾衰竭的护理课件
- 二年级数学上册口算题100道(全册完整)
- 四百字作文格子稿纸(可打印编辑)
- 冷轧工程专业词汇汇编注音版
- 小升初幼升小择校毕业升学儿童简历
- 第一单元(金融知识进课堂)课件
- 新概念二册课文电子版
- 介入导管室护士述职报告(5篇)
- GB/T 37062-2018水产品感官评价指南
- 零件的工艺分析及毛坯选择
- 三笔字讲座(完整版)
评论
0/150
提交评论