APT HOWTO (Obsolete Documentation)
Total Page:16
File Type:pdf, Size:1020Kb
APT HOWTO (Obsolete Documentation) Gustavo Noronha Silva <[email protected]> 刘i <[email protected]> 1.8.10.4 - 2005t3月 XXX要要要 这Ç文c试图©(7ù于Debian包¡理工wAPT的工\¹式有一个很}的理ã。 它的目标/© 新的Debian(7更¹易上K,_©£些想.©£些想更ñe理ã 如U¡理他们的û统的º。它 :Debiany目而编写,目的/Ð高d发LH对它 的(7的/持4s。 HHHCCC声声声明明明 HC@有 © 2001, 2002, 2003, 2004 Gustavo Noronha Silva This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details. A copy of the GNU General Public License is available as /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or on the World Wide Web at the GNU General Public Licence. You can also obtain it by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. i Contents 1 导导导言言言 1 2 úúú@@@设设设nnn 3 2.1 /etc/apt/sources.list文件 ................................3 2.2 如U(,0使(APT...................................4 2.3 选é最s\Ï发布站¹加esource.list文件:netselect,netselect-apt........5 2.4 将CD-ROM加esource.list文件 .............................6 3 ooo件件件包包包¡¡¡理理理 7 3.1 更新可(o件包列h ...................................7 3.2 安Åo件包 .........................................7 3.3 ûdo件包 .........................................9 3.4 更新o件包 ......................................... 10 3.5 G§0新H, ....................................... 11 3.6 ûd无(o件包文件:apt-get clean and autoclean.................. 12 3.7 (dselect-Í\APT................................... 13 3.8 如何保持一个混合û统 .................................. 15 3.9 如UÎDebian的专(H,下G§o件包 ......................... 15 3.10 如U维¤已安Åo件包的多*H,(复B) How to keep specific versions of packages installed (complex).............................. 16 4 几几几***^^^888有有有(((的的的工工工www 19 4.1 如U安Å,0编译的o件包:equivs.......................... 19 4.2 ûd无(的0:Mn(locale)文件:localepurge.................... 21 4.3 如U知Sê些o件包可以G§ .............................. 21 CONTENTS ii 5 ···取取取ooo件件件包包包áááooo 23 5.1 ·得o件包名称 ...................................... 23 5.2 使(dpkg查~o件包名称 ................................ 25 5.3 如U“按需”安Åo件包 ................................. 26 5.4 如U知S文件^于ê*o件包 .............................. 27 5.5 如U掌握o件包的变化Å况 ............................... 27 6 源源源码码码包包包ÍÍÍ\\\ 29 6.1 下}源码包 ......................................... 29 6.2 编译源码包@需的o件包 ................................. 30 7 如如如UUU处处处理理理错错错误误误 31 7.1 一,错误 .......................................... 31 7.2 (ê?·得.©? ..................................... 32 8 êêê些些些发发发LLLHHH///持持持APT??? 33 9 致致致""" 35 10 ,,,使使使(((指指指WWW的的的新新新HHH,,, 37 1 Chapter 1 导导导言言言 最初ê有.tar.gz的S包文件,(7Å{编译Ï*他想(GNU/Linux上ÐL的o件。 (7们n M¤:û统很有Å要Ð供一͹法e¡理这些安Å(:h上的o件包, SDebian诞生时,这 7一*¡理工w_1应Ð而生,它«}名:dpkg。 Î而W名的“package”概õ,一!ú现 (GNU/Linuxû统-,稍后Red HatM³定开 发êñ的“rpm”包¡理û统。 很ë一*新的问题难倒了GNU/Linux6\者,他们需要一*ë速、实(、高H的¹ 法e安Å o件包,So件包更新时,这*工w应该能ꨡ理sT文件和维¤已有 Mn文件。Debian( !率Hã³了这*问题,APT(Advanced Packaging Tool)诞生 了。APT后e还«Conectiva9 (e¡理rpm,v«v它Linux发LH,Ç(:它们 的o件包¡理工w。 ,文c不S算²ãapt-rpmøs知Æ,因:Conectivaû植的APT已很有名了,不Ç Ð供有s这 è分的eE文c还/"Î的。 ,文c/ú于Debian下一个发LHSarge的。 Chapter 1. 导言 2 3 Chapter 2 úúú@@@设设设nnn 2.1 /etc/apt/sources.list文文文件件件 \:Í\的一è分,APT使(一*文件列ú可·得o件包的\Ï站¹0@,这*文 件1 //etc/apt/sources.list。 文件中的各yáo通8按如下<式列ú: deb http://host/debian distribution section1 section2 section3 deb-src http://host/debian distribution section1 section2 section3 S6,上b@列的0@y都/G设的且不应该使(它们。ÏL的,一*UÍdeb 或deb-srcÏ 述了文件{型:目U-包+的/二进6o件包(deb), s我们通8使(的已编译}的o 件包;或包+的/源码包(deb-src),源码 包包+源程序编码、Debian§6文件(.dsc)和 “Debian化”该程序@Z更9的 记U文件diff.gz。 (Debian:省的sources.list-通8/如下内¹: # See sources.list(5) for more information, especially # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. deb http://http.us.debian.org/debian stable main contrib non-free deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org stable/updates main contrib non-free # Uncomment if you want the apt-get source function to work #deb-src http://http.us.debian.org/debian stable main contrib non-free #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free 这些/Debianú,安Å@需的o件包e源0@。,一*debL指向官¹c 式o件包e源,,二 *L指向non-USo件包e源,,三L指向Debian安he丁更新 包e源。 Chapter 2. ú@设n 4 最 后 $ L« è Ê 掉 了(( 句 首 加 “#”), @ 以apt-get将 忽 e 它 们 。 这 些 /deb-srcL 指 向Debian源码包e源,如果`8下}程序源码eK试或Í编译,可取消ù 它们的èÊ。 /etc/apt/sources.list文件可包+多Í{型的0@,APT知S如U处理这 些不同的0@ {型:http、ftp、file(,0文件,例 如:一个加}了ISO9600文件û统的目U)和ssh。 +忘了(修9完/etc/apt/sources.list文件后ÐLapt-get使 更9生H。`Å{完成这 *e¤,以¿©APTÎ`指定的0¹·得新的o件包列h。 2.2 如如如UUU(((,,,000使使使(((APT 有时`l盘上有¸多.debo件包,`会希望通ÇAPTe安Å它们,以¿©它»处理o 件包间复 B的依Vsû。 想这HZ,1ú一个目U,将@有`想要安Å的.deb文件>ev-。例如: # mkdir /root/debs `可以使(一*override文件直¥»修9o件包-§6文件-的定I,使 K&合`的o件¨ Ï库¡理Ä则。(这*覆盖文件-,`可能希望定I一些选ye覆 盖£些o件包的定I,如下 @:: package priority section package/ o 件 包 的 名 称 ,priority有 三 * § +low、medium或high,section/ o 件 包 @ ^ 的section, Í } 文 件 可 û 意 } 名 , 文 件 名 将 ( ¥ 下 e 的 e ¤ - Z :  p 递 给dpkg-scanpackages。如果`不想写Í}文件,ê需(调(dpkg-scanpackages时使 (/dev/null1L了。 Í/(/root目U下gL: # dpkg-scanpackages debs file | gzip > debs/Packages.gz ( 上 述 的 } 令 L - ,file:override文 件 , } 令 生 成 一 *Packages.gz文 件 , 它 包 + 了APT@需的各Ío件包áo。最后,如果要使( 这些o件包,加上: deb file:/root debs/ 完成了上b的工\,1可以通8£7使(APT}令Í\这些o件包了。`可以使(同 7的¹法 生成一*源码库,F请记O`需要将.orig.tar.gz文件、.dsc文件和.diff.gz文件包+( 目U-,同时Å{生成Source.gz文件而不/Packages.gz文件。@使(的}令_不ø同, 要使(dpkg-scansources,}令如下@:: # dpkg-scansources debs | gzip > debs/Sources.gz Notice that dpkg-scansources doesn’t need an override file. The sources.list’s line is: deb-src file:/root debs/ Chapter 2. ú@设n 5 2.3 选选选 ééé 最最最 sss \\\ ÏÏÏ 发发发 布布布 站站站 ¹¹¹ 加加加 eeesource.list文文文 件件件:::netselect,,,netselect-apt 一*新(7Ï8问0的问题:“该将ê*Debian\Ï发布站¹加esource.list文件?”。 有很多¹法e选é\Ï发布站¹,专¶们可能会写一*脚,»K试 不同站¹的ping时间。不Ç v实有一个程序可以.`: netselect。 要安Ånetselect,通8使(: # apt-get install netselect 不&ÂpÐL它时会>:它的.©áo。ÐL它时加上以z<分隔的\Ï;:列h, 它会返 回一*分<和列h-的一*;:名。这*分<通ÇÄ0ping时间和hopsp(一 *Q络请B¥文 0达目标;:@ÏÇ的l发;:的*p)得ú,它与\Ï站¹预¡下 }速¦成Í比(p<越小越 })。返回的;:名/;:列h-得分最N的£*(查看列 h-@以;:的得分Å况可使(-vv选 y)。看ú下的例P: # netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br 365 ftp.debian.org.br # 它h:,(netselect后列ú的@有;:-,ftp.debian.org.br/下}速 ¦最ë的;:,v 得分:365。(è意!!这/(我5脑上的K试结果,不同的Q络 节¹Q速会'不ø同,@以这 *分<不一定适(于v它5脑) 现 ( 将netselect~ 0 的 连 ¥ 速 ¦ 最 ë 的 \ Ï 站 ¹ 加 e/etc/apt/sources.list文 件( 考‘/etc/apt/sources.list文件’ on page3) v按g‘o件包¡理’ on page7 -的技巧eZ。 èèè 意意意 ::: \ Ï 站 ¹ 列 h 通 8 包 + ( 文 件 http://www.debian.org/mirror/mirrors_ full-。 Î0.3.ds1H开Ë,netselect源码包-包+了netselect-apt二 进6包,它使上述Í\ê¨完成。 ê需将发布目U树Z:Âp(默¤:stable)输e, sources.list文件1会生成速¦最ë 的main和non-US\Ï站¹列h,v保 X(SM目U下。下b的例P生成一*包+stable发 布\Ï站¹列h的sources.list: # ls sources.list ls: sources.list: File or directory not found # netselect-apt stable (...) # ls -l sources.list sources.list # 记记记OOO:::sources.list生成(SM目U下,Å{将vû 至/etc/apt目U。 ¥@,按g‘o件包¡理’ on page7 -的技巧eZ。 Chapter 2. ú@设n 6 2.4 将将将CD-ROM加加加eeesource.list文文文件件件 如果`(APTÎCD-ROM上安ÅÊG§o件包,`可以将它加e0sources.list文件-。完 成该Í\,可使(apt-cdrom程序: # apt-cdrom add 将DebianI盘>eIq,它将加}I盘目U,v(I盘上查~o件包áo。如果` 的Iq需要 额外设n,可使(以下选y: -h - program help -d directory - CD-ROM mount point -r - Rename a recognized CD-ROM -m - No mounting -f - Fast mode, don’t check package files -a - Thorough scan mode 例如: # apt-cdrom -d /home/kov/mycdrom add `还可以kÏ一 I盘,F不将v加e列h: # apt-cdrom ident è意,ê有S`(û统的/etc/fstab-cn设n了Iq后,该程序M会工\。 7 Chapter 3 ooo件件件包包包¡¡¡理理理 3.1 更更更新新新可可可(((ooo件件件包包包列列列hhh o件包¡理û统使(一*Á有pn库跟*列h-o件包的SM¶态:已安Å、*安 Å或可安 Å。apt-get通Ç该pn库en定如U安Å(7想(的o件 包以Êc8ÐL该o件包@Å{ 的v它sT包。 ` 可 以 使 (apt-get updatee 更 新 p n 库 列 h 。 这 * } 令 将 k Ï /etc/apt/sources.list文 件 - @ 指 路 径 - 的 o 件 包 列 h 文 件 。 有 s 该 列 h 文 件 的 更多áo请Â考‘/etc/apt/sources.list文件’ on page3 。 定时ÐL这*程序/*};意,它将使`和`的û统·得最新的o件包更新和安h 更新Iá o。 3.2 安安安ÅÅÅooo件件件包包包 现(,È于0了`一直期待的6段!Æ备}了sources.list和最新H的的可(o件 包,`@需Z 的1/ÐLapt-gete安Å`4望已E的o件了。例如,` 可以这7: # apt-get install xchat APT会kÏ它的pn库~0最新的H,的o件包,v将它Îsources.list- @指的0¹下} 0,0。如果该o件包需要v它o件包M能c8ÐL——如,例一7 ——APT会ZsT'检查 vê¨安Å@sTo件包。如下@:: # apt-get install nautilus Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 Chapter 3. o件包¡理 8 The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 17.2MB will be used. Do you want to continue? [Y/n] nautiluso件包需要引(q«函p库,因dAPT会Î\Ï源处下}øsq «函p库,如果` (apt-get}令L-K¨指定了这些q«函p库的名称, APT不会询问`/&要继续;它会ê ¨¤:`希望安Å@有这些o件包。 _1/说APTê会(安Å£些¡有(}令L-指定的o件包时Ð:n¤。 下列apt-get选y_¸ù`有(: -h 这*.©áo -d ê下}——不安Å或ã压cH -f s¿完t'检查1%了仍6继续 -s 不Z什么。ê/按z序!拟 -y ù于@有问题都G定:Yes,不询问 -u >:一û列已Ï将要更新的包 可 以 ( 一 a } 令 安 Å 多 * o 件 包 。 包 文 件 Î Q 络 上 下 } 0 , 0 /var/cache/apt/archives目U,稍后再安Å。 `可以(同7的}令L d指定o件包,ê需(o件包名称后'跟一个“-”,如下@:: # apt-get install nautilus gnome-panel- Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.