Debian APT.docx

上传人:b****3 文档编号:26875493 上传时间:2023-06-23 格式:DOCX 页数:18 大小:24.84KB
下载 相关 举报
Debian APT.docx_第1页
第1页 / 共18页
Debian APT.docx_第2页
第2页 / 共18页
Debian APT.docx_第3页
第3页 / 共18页
Debian APT.docx_第4页
第4页 / 共18页
Debian APT.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Debian APT.docx

《Debian APT.docx》由会员分享,可在线阅读,更多相关《Debian APT.docx(18页珍藏版)》请在冰豆网上搜索。

Debian APT.docx

DebianAPT

以Debian的方式系列(INTHEDEBIANWAY):

Debian维护工具之APT

etonyC.F.ANetony@

v0.0.1,2006-3-30

本文档是针对DebianGNU/Linux的APT工具做一般性介绍,希望Linux用户对于Debian有个较为深刻的了解.

1.声明

∙版本信息:

本文档的最新版本将张贴于:

LinuxSir.Org论坛Debian发行版讨论区;

也可以从http:

//debian.linuxsir.org/获取.

∙反馈:

所有评论,错误报告,其他信息以及批评,请邮寄到etony@;

或在LinuxSir.Org论坛Debian发行版讨论区张贴.

∙版权信息:

本文档的版权(c)2006-2007归etonyC.F.AN所有.

转载请注明源自http:

//debian.linuxsir.org/.

2.基本概念

dpkg功能十分的强大,是它保证了系统的稳定性.但是随着GNU/Linux的日益普及,Debian操作系统的广泛应用,dpkg在操作上日益显示出它的不足之处.APT(高级软件包工具AdvancedPackageTool)很好的解决了这一难题,它功过抽取软件包中的相关信息,给出相关操作的优化方案,确定解决请求所需软件包,从资源库下载,根据需求在本地系统安装和删除软件包.

dpkg采取的方式较为保守,当发现进一步操作可能会将问题引入系统时(比如使系统中出现了不能满足依赖关系的软件),将拒绝执行这一操作(默认方式),APT则会根据出现的问题,智能的给出解决方案,并继续进行操作.比如,安装操作出现依赖关系时,dpkg会拒绝操作,APT则不同,将会自动安装这些依赖包以完成安装请求.

APT提供另一个简单的命令行方式,与dpkg不同,其本身不会处理.deb文件,而是智能从资源库下载,然后调用dpkg仅此处理.APT是dpkg的一个智能前端.

3.基本配置

apt通过名称和版本来在确定一个软件包,这些信息通常是通过资源库中提供的Packages.gz(如果是源代码则是Source.gz)来抽取来的(通过apt-getupdate获取).通常如果出现重复的软件包,则第一个有效.这些资源库在etc/apt/sources.list/中定义.

3.1自动配置

在基本系统中提供了一个用于自动配置资源列表的工具:

apt-setup.由base-config(现在仅在sarge中提供)软件包中,可以通过

#base-config

调用,或者直接运行

#apt-setup

进行配置.

3.2手动配置

资源库在/etc/apt/sources.list中用就象如下行定义:

debftp:

//some-server/debiansargemaincontrib

deb-srcftp:

//some-server/debiansargemaincontrib

与网站有如下对应关系:

ftp:

//some-server/debian/dists/sarge/main/binary-i386/...

ftp:

//some-server/debian/dists/sarge/contrib/binary-i386/...

-----------------------------||

\___/||

add:

\/||

-----------------------------||

debftp:

//some-server/debiansargemaincontrib

当然上边的网站是假设的,不可用的.应当选择您连接速度最快的镜像地址替换.Debian官方镜像列表可以从http:

//www.debian.org/mirror/list处获取,也可从/var/lib/apt-spy/mirrors.txt(apt-spy提供)得到.至于私有资源则需要通过别的途径获取.

在/etc/apt/sources.list中,每行为一条记录,定义一个资源库.其具体语法在sources.list(5)联机手册中有详细介绍.每条记录至少包括三个字段,共同组成资源定位.这些字段是:

软件包类型

deb指二进制软件包.要访问软件包源代码,则必需用deb-src代替.

资源URI

统一资源标识符(URI)用于指定资源库,可以使用下边任意一种方式访问:

cdrom,file,copy,http,ftp,ssh

发行版(distribution)

在标准的镜像中,这一字段使用规范名称(如stable)或代号(如sarge)来关联Debian的发行版.

构成

用于关联一个发行版的组成部分,对应官方镜像,相当于软件库(如每个条目的其余部分用于关联一个发行版提供的组成部分.对于官方镜像,这相当于软件库(如main,contrib),对于非官方资源库,组成部分的关联方式可以由管理员自己定义.APT会为每个构成创建单独的URI.因此,正常的发行版至少需要一个组成部分.

在修改sources.list后或安装软件前,需要对APT进行更新,就是运行apt-getuodpate获取各种Packages文件,它的位置是通过/etc/apt/sources.list中的记录来指定的.每个提到构成都有一个对应的Packages文件.

3.3优化资源

apt-spy方式

Debian在互联网上有庞大的镜像群,有超过100个提供了全部Debian归档库的官方镜像.另外,还有很多大学和机构提供非官方镜像,因此使用附近的还是不错的.我们将哪些镜像加入我们的sources.list文件呢?

当然是速度最快的!

Debian为我们提供了一个用户测试镜像速度的工具apt-spy(由apt-spy提供).这样有利于有效的利用带宽,节省下载时间.

可以从http:

//www.debian.org/mirror/list(由于某种原因,您可能无法访问)处获取获取完整的镜像列表.也可以从tt/var/lib/apt-spy/mirrors.txt/(apt-spy提供)找到一个副本.

apt-spy通过对列表进行测试,根据带宽和回应速度,找出其中最快的一个,并将结果自动保存到/ect/apt/sources.list中.

#apt-getinstallapt-spy

#mvsources.listsources.list.bak//backup

#manapt-spy//获取详细的使用方法

#apt-spyupdate//更新您的镜像列表文件/var/lib/apt-spy/mirrors.txt

可将测试限制在一个国家或区域内,提供限制测试服务器个数的选项,等等.另外,区域也可以在/etc/apt-spy.conf中定义.可以通过下边的命令找出亚洲区速度最快的镜像,并生成针对testing的记录:

#apt-spy-dtesting-aAsia

上边的测试大概每个服务器需要用一分钟的时间,这个也可以使用-t选项控制.有关这一选项的详细信息请阅读apt-spy(8)联机手册.

netselect-apt方式

netselect-apt会创建一个更完整的sources.list文件,但它使用更落后的方法来选择镜像站点:

#apt-getinstallnetselect-apt

#mvsources.listsources.list.bak//backup

#mannetselect-apt//获取详细的使用方法

#netselect-apt-stesting

//下载http:

//www.debian.org/mirror/list-full文件,并根据其内容测试网络,生成sources.list

也可将下载http:

//www.debian.org/mirror/list-full手动下载到本地,并同过参数-i指定.同样可以通过-o参数指定输出文件而不是默认的sources.list

4.APT的配置

APT的很多方面都是可以定制的.事实上,在/etc/apt/apt.conf文件中,您可以修改大多数命令行选项的默认值.配置参数使用名称-值对,根据用途被分为几组.组名在参数前边用":

:

"分割.ttapt.conf(5)联机手册有相关语法介绍.其它项目在对应命令的联机手册中有所描述(如ttapt.get

(1)和ttapt-cache

(1)).比如:

APT:

:

Default-Release"testing";

//在使用混合系统时,设定默认下载的版本

APT:

:

Get:

:

Assume-Yes"true";

//如果在安装/卸载过程中出现询问,应答为y

如果在使用aptitude、apt-get或dpkg时出现如下错误

E:

DynamicMMapranoutofroom

可以在apt.conf中加入:

APT:

:

Cache-Limit"12500000";

以重新设定缓存区大小.

访问资源库需要代理,则可以加入类似下边的内容:

Acquire:

:

http:

:

proxy"http:

//user:

pass@xxx.xxx.xxx.xxx:

port";

Acquire:

:

ftp:

:

proxy"ftp:

//user:

pass@xxx.xxx.xxx.xxx:

port";

APT还提供了三个钩子程序,用于在dpkg阶段调用.它们分别是Pre-Invoke,Post-Invoke,Pre-Install-Pkgs.

DPkg:

:

Pre-Invoke{"mount-oremount,rw/usr";};

DPkg:

:

Post-Invoke{"mount-oremount,ro/usr";};

DPkg:

:

Pre-Install-Pkgs{"dpkg-preconfigure--apt--priority=low--frontend=dialog";};

/usr/share/doc/apt/examples/apt.conf,/usr/share/doc/apt/examples/configure-index.gz中给出详细的例子,可以用于参照.

5.安装

当发出安装请求时,apt会根据其优化算法,求解出最佳安装方案,来完成用户的请求.比如:

debian:

~#apt-getinstallxchat

ReadingPackageLists...Done

BuildingDependencyTree...Done

Thefollowingextrapackageswillbeinstalled:

defomafontconfiglibatk1.0-0libfontconfig1libgtk2.0-0libgtk2.0-bin

libgtk2.0-commonlibpango1.0-0libpango1.0-commonlibperl5.8libtiff4

libx11-6libxcursor1libxext6libxft2libxi6libxrandr2libxrender1tcl8.4

ttf-bitstream-veraxchat-commonxfree86-commonxlibs-data

Suggestedpackages:

defoma-docpsfontmgrx-ttcidfont-confdfontmgrttf-kochi-gothic

ttf-kochi-minchottf-thryomanesttf-baekmukttf-arphic-gbsn00lp

ttf-arphic-bsmi00lpttf-arphic-gkai00mpttf-arphic-bkai00mptclreadline

libnet-google-perlx-window-system-corex-window-system

Recommendedpackages:

libft-perllibatk1.0-datahicolor-icon-theme

ThefollowingNEWpackageswillbeinstalled:

defomafontconfiglibatk1.0-0libfontconfig1libgtk2.0-0libgtk2.0-bin

libgtk2.0-commonlibpango1.0-0libpango1.0-commonlibperl5.8libtiff4

libx11-6libxcursor1libxext6libxft2libxi6libxrandr2libxrender1tcl8.4

ttf-bitstream-veraxchatxchat-commonxfree86-commonxlibs-data

0upgraded,24newlyinstalled,0toremoveand1notupgraded.

Needtoget12.5MBofarchives.

Afterunpacking39.1MBofadditionaldiskspacewillbeused.

Doyouwanttocontinue?

[Y/n]

APT下载软件时是根据/var/lib/apt/lists下的_Packages文件,来获取软件的详细定位的,而这些_Packages文件是通过命令:

#apt-getupdate

命令从sources.list中声明的顺序从资源库中获取的.这一命令将对Packages索引文件进行更新.因此,在安装软件前,或在修改sources.list后,应该进行apt-getupdate操作.

每天运行,或经常运行这一命令,是个良好的习惯.APT同时会清除/var/lib/apt/lists目录下没有在/etc/apt/sources.list中声明的资源文件.如果你使用--no-list-cleanup(APT:

:

Get:

:

List-Cleanup),APT将会保留这些文件,如果您只是在sources.list中临时禁用一条资源,这样还是比较方便的;当再次启用这条资源时,就不需要重复下载APT的资源文件了.

在安装的时候您可以通过使用--print-uris选项将这些信息输出到屏幕.比如:

#apt-getinstall--print-urisnano-tiny

ReadingPackageLists...Done

BuildingDependencyTree...Done

ThefollowingNEWpackageswillbeinstalled:

nano-tiny

0upgraded,1newlyinstalled,0toremoveand1notupgraded.

Needtoget87.8kBofarchives.

Afterunpacking123kBofadditionaldiskspacewillbeused.

'http:

//ftp.us.debian.org/debian/pool/main/n/nano/nano-tiny_1.2.4-5_i386.deb'

nano-tiny_1.2.4-5_i386.deb8778607794bf630d1a9dffdf85917a9e39968

注意后边的07794bf630d1a9dffdf85917a9e39968这是nano-tiny_1.2.4-5_i386.deb的MD5编码,将用跟从Packages中获取的对应MD5编码相比对.只有MD5编码相匹配时,才会安装.当出现不一致时,APT会报告MD5不匹配,并拒绝安装或升级软件包.

您也可以仅仅模拟一下,而不是真正的安装:

#apt-getinstallnano-tiny-s(--simulate)

如果您仅需要获取.deb,而不是装,则可以

#apt-getinstallnano-tiny-d(--download-only)

假如你不小心损坏了已安装的软件包而想修复它,或者仅仅想安装软件包中某些文件的最新版本,这是可以做到的,你可以用--reinstall选项:

#apt-get--reinstallinstallnano

如果您使用的是混合源,也可指定发行版安装:

#apt-getinstallnano/testing

解决依赖问题

当出现依赖问题时,APT会努力做出最好的的选择.作为解决依赖问题的一部分,APT为了尽可能的完成用户的请求,会首先卸载已经安装的冲突的软件包.无论何时,在进行用户请求的附加操作时,apt-get在提示了对所选择软件包将要做的的变更后,都会请求用户的确认.这是为了防止不小心卸载了冲突的软件包,或引入更严重的依赖问题.如果不需要额外的操作,APT将不会给出提示.

通过设置APT:

:

Get:

:

Show-Upgradeed为true,可以让APT每次都提示确认.同样,设置APT:

:

Get:

:

Assum-Yes为true,或在APT的命令行指定-y选项,APT将绕过确认,继续操作.请避免使用这一选项;确认对于生产应用系统来说是个好事情.有时,一个软件包会依赖于其它一组软件包中的任意一个.比如:

debian:

~#apt-cachedependsmailx

mailx

Depends:

libc6

Depends:

liblockfile1

|Depends:

exim4

Depends:

courier-mta

esmtp-run

exim

masqmail

nullmailer

postfix

sendmail-bin

ssmtp

xmail

exim4-daemon-heavy

exim4-daemon-light

Depends:

base-files

Conflicts:

mailx依赖于能够提供邮件传输代理的任一个软件包,在默认情况下会安装exim4,除非您明确指定:

#apt-getinstallmailxpostfix

6.查询

到目前为止,一切感觉都还不错,只要您知道了软件包名称,使用APT安装简直就是小菜一碟.当我们需要安装一个软件,而又没有确切的知道其名称时,就需要求助于apt提供的另一个命令apt-cache(详细的使用方法,请查阅apt-cache(8)联机手册).它可以用于查询您的软件包数据库,包括软件包描述,就象这样:

debian:

~#apt-cachesearchmysql-server

mysql-server-mysqldatabaseserver(currentversion)

mysql-server-4.1-mysqldatabaseserverbinaries

mysql-server-5.0-mysqldatabaseserverbinaries

phpbb2-conf-mysql-Automaticconfiguratorforphpbb2on

scoop-Web-basedcollaborativemediaapplication

webmin-mysql-mysql-servercontrolmoduleforwebmin

我们找到了几个相关的软件包,以及有关的简单描述.想进一步获得某个软件包的详细信息,你可以运行:

#apt-cacheshowmysql-server

Package:

mysql-server

Priority:

optional

Section:

misc

Installed-Size:

8344

Maintainer:

ChristianHammers

Architecture:

i386

Source:

mysql-dfsg

Version:

4.0.24-10sarge1

Provides:

virtual-mysql-server

Depends:

mysql-common(>=4.0.24-10sarge1),mysql-client(>=4.0.24-10sarge1),

ebconf(>=1.2.9),libdbi-perl,perl(>=5.6),libc6(>=2.3.2.ds1-21),libgcc

(>=1:

3.4.1-3),libmysqlclient12,libstdc++5(>=1:

3.3.4-1),libwrap0,zlib1g

=1:

1.2.1),adduser(>=3.40),psmisc,passwd,mailx

Conflicts:

mysql-server-4.1

Filename:

pool/updates/main/m/mysql-dfsg/mysql-server_4.0.24-10sarge1_i386.deb

Size:

3645680

MD5sum:

b1877cc602daf4b3aeffd350ced6f6a7

Description:

mysqldatabaseserverbinaries

MySQLisafast,stableandtruemulti-user,multi-threadedSQLdatabase

server.SQL(StructuredQueryLanguage)isthemostpopulardatabasequery

languageintheworld.ThemaingoalsofMySQLarespeed,robustnessand

easeofuse.

.

Thispackageincludestheserverbinariesforthe4.0branch.

如果仅想了解某软件包的与哪些软件包关联,可运行:

debian:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1