精华内容
下载资源
问答
  • Debian APT

    2011-08-17 06:39:10
    1.Conf file :/etc/apt/sources.list 2.update apt: apt-get update. Do not forget to runapt-get update after modifying the/etc/apt/sources.lis

    1.Conf file :/etc/apt/sources.list

    2.update apt: apt-get update. Do not forget to runapt-get update after modifying the/etc/apt/sources.list file. You must do this to let APT obtainthe package lists from the sources you specified.

    3.how to use apt locally

    a.# mkdir /root/debs

    b.still in the root directory do : # dpkg-scanpackages debs file  | gzip > debs/Packaes.gz

    c.modify the sources.list, add : deb file:/root debs/

    d.add the sources file:

    I:dpkg-scansources debs | gzip > debs/Sources.gz

    II: modify the sources.list file, add : deb-src file:/root debs/

    4.deciding which mirrors is the best to include in the sources.list file: netselect netselect-apt

    5.adding the cd-rom to the sources.list (write in the sources.list file)
       # apt-cdrom add
         option:
         -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
    for example: apt-cdrom -d /path/to/the/cdrom add

    6. install software: apt-get install softwareName
       option:
         -h  This help text.
         -d  Download only - do NOT install or unpack archives
         -f  Attempt to continue if the integrity check fails
         -s  No-act. Perform ordering simulation
         -y  Assume Yes to all queries and do not prompt
         -u  Show a list of upgraded packages as well

            Note: You can specify packages to be removed on the same command line, as well. Just put a '-' immediately after the name of the package to be removed.

    7. remove software: apt-get remove softwareName

    8. update all the software: apt-get upgrade

    9. upate the system : apt-get dist-upgrade

    10. remove the unused packages: apt-get clean, apt-get autoclean

    11. show versions: apt-show-versions -u

    12. search packages: apt-cache search packagesName

    13. show packages information: apt-cache show packagesName

    14. use the dpkg to search packages: dpkg -S packageName

    15. use the dpkg to show packages info: dpkg -l | grep "packageName"

    16. download the source file: apt-get source packageName. This will download three files: a .orig.tar.gz, a .dsc and a .diff.gz.

    17. build the source files: apt-get -b source packageName

    展开全文
  • Debian apt-get 使用指南

    2012-07-16 16:06:18
    Debian apt-get 使用指南, 主要介绍了一写常用的命令等,和各种源的搜索技巧!
  • Debian Apt Howto

    2019-01-15 10:29:20
    Debian package management utility, APT. Its goal is to make life easier for new Debian users and to help those who wish to deepen their understanding of the administration of this system. It was ...
  • debian apt命令apt command is used to install, update, remove packages in Linux distributions like Ubuntu, Debian, Mint, Kali. apt is mainly used with the deb packages. With the apt update or apt-get ...
    debian apt命令

    debian apt命令

    apt command is used to install, update, remove packages in Linux distributions like Ubuntu, Debian, Mint, Kali. apt is mainly used with the deb packages.  With the apt update or apt-get update command the repository information is downloaded to from the deb repositories to the local repositories. Hash is used to checking if the downloaded file is valid. If there is a problem we may face with the Hash Sum mismatch error.

    apt命令用于安装,更新,删除Linux发行版中的软件包,例如Ubuntu,Debian,Mint,Kali。 apt主要与deb软件包一起使用。 使用apt updateapt-get update命令可以将存储库信息从deb存储库下载到本地存储库。 哈希用于检查下载的文件是否有效。 如果有问题,我们可能会遇到Hash Sum mismatch错误。

    “哈希总和不匹配”错误 (“Hash Sum mismatch” Error)

    First, we will look at how the  Hash Sum mismatch error occurs during the apt update or  apt-get update command usage.

    首先,我们将了解在apt updateapt-get update命令使用过程中如何产生Hash Sum mismatch错误。

    $ apt update && apt dist-upgrade -y
    
    "Hash Sum mismatch" Error
    “Hash Sum mismatch” Error
    “哈希总和不匹配”错误

    We can see that following errors and warnings are printed during the update repository information.

    我们可以看到在更新存储库信息期间打印了以下错误和警告。

    • Last modification reported: Wed, 26 Jun 2019 12:03:10 +0000

      上次修改的报告时间:2019年6月26日,星期三12:03:10 +0000
    • Hashes of expected file:

      预期文件的哈希值:
    • – Filesize:17059946 [weak]

      –文件大小:17059946 [弱]
    • Last modification reported: Wed, 26 Jun 2019 12:03:10 +0000

      上次修改的报告时间:2019年6月26日,星期三12:03:10 +0000
    • Release file created at: Wed, 26 Jun 2019 12:04:12 +0000

      发布文件创建于:2019年6月26日,星期三12:04:12 +0000
    • E: Some index files failed to download. They have been ignored, or old ones used instead.

      E:某些索引文件下载失败。 它们已被忽略,或改用旧的。

    “哈希和不匹配”解决方案 (“Hash Sum mismatch” Solution)

    In order to solve the Hash Sum mismatch error, we need to remove downloaded repository information from the /var/lib/apt/lists/ directory. We will use rm -rf command for this. We will also provide the sudo command.

    为了解决Hash Sum mismatch错误,我们需要从/var/lib/apt/lists/目录中删除下载的存储库信息。 我们将使用rm -rf命令。 我们还将提供sudo命令。

    $ sudo rm -rf /var/lib/apt/lists/*
    

    Then the update command like below will work.

    然后,如下所示的update命令将起作用。

    $ sudo apt update
    
    LEARN MORE  Ubuntu, Debian, Kali, Mint Apt-Get Search Tutorial with Examples
    了解更多Ubuntu,Debian,Kali,Mint Apt-获得带有示例的搜索教程

    翻译自: https://www.poftut.com/apt-command-hash-sum-mismatch-error-and-solution-on-ubuntu-debian-mint-kali/

    debian apt命令

    展开全文
  • Debian APT 引入 iPhone

    千次阅读 2010-05-05 15:44:00
    In Mac, Programming, Server-Side, Tools, iPhone on 23 March 2008 tagged apptapp, apt, cydia, debian, installer, iPhone with 3 comments原文: Bringing Debian APT to the iPhone作者: Jay Fre

    iPhone (或 iPod Touch) 是一台配备着 128MB RAM、4 到 32 GB 闪存的 667MHz 计算机 (尽管只跑在 412 MHz 上)。软件方面,它运行的是一套裁剪过的 Mac OS X,包括 Darwin 内核上基于 FreeBSD 的用户空间程序,作为其标准组件。虽然部分人可能会奇怪怎么有人会把它作为 Unix 工作站来使,但就我和其他许多人的看法,拿它来做 Unix 工作站才是值得奇怪的。

    BSD 子系统

    所以给这台设备头一个安装的包是“BSD Subsystem (子系统)”也就没什么奇怪的了:这是一套标准的 Unix 实用工具,让习惯了 Unix 的开发者感到宾至如归。从 grep, sed 到 vim, pico,这套软件包提供了深夜编程活动的基础。

    不幸的是,要真以这样的方式用过一会儿,你肯定会因为这些关键工具配置和编译时的缺漏而感到恼火。尽管完成到现在这样也是件好事,但对 Unix 实用工具的编译打包不应该仅仅停留在“它能安装成功”,而更应该延续到“它能正常工作”。下面是我不得不处理的一些问题:

    • bash – 命令在输入完之前就会被截短并执行
    • chmod/chown – 总以“memory exhausted (内存耗尽)”作为退出消息
    • nc/ping – 无法解析某些域名,并声称 “Unknown server error (未知的服务器错误)”
    • netstat – 无法提供任何本地 socket 的有用信息
    • passwd – 损坏 BSD 的 /etc/passwd 文件,使 1.1.3 的 SpringBoard 崩溃
    • screen – 无法通过 terminfo 找到 “linux” 这样常见的终端类型
    • vim – 没有语法高亮,退格键会导致编辑器崩溃

    所有这些问题中,仅有 chmod 和 chown 的问题在公开的“BSD Subsystem”包中被修复了,这还是因为 Apple 的 1.1.3 更新带来的巨大压力 (要求所有的软件以 mobile 用户而不是 root 运行,所以必须修改文件的权限,有些程序必须 setuid 为 root)。

    然而这些问题只要有人愿意花时间都是很容易解决的,却始终停留在目前这样的状况下,导致工作效率低到了可怜的程度。比如我到现在在 vim 里按下退格键之前还要犹豫一下下,就是因为用了那个损坏的版本开发了几个月所带来的后遗症。所以总得有人来改进吧。

    CoreOS – iPhone Unix

    剩下这些问题的一部分已经由一名叫 core 的 iPhone hacker 解决了。在他网站的 Unix Tools 部分一直提供了这些改进版本的程序,比如 chmod 和 chown (不过他提供的 passwd 还是坏的)。而在 Network Tools 部分他一直致力于改进 wget 和 ping 等有问题的工具。

    可是要安装 core 这些改进过的版本必须分别手工找到、下载并安装修改过的文件:这些工作做一回还好,但三四次 jackbreak 之后再做就肯定觉得非常麻烦了。而人们不一定总是从 core 那儿获得更新,导致实际分发的二进制程序会有区别,因而跟踪起它们的行为来也就分外困难。

    最后的一个原因是,core 总是没有时间把他如何神奇地修改这些软件代码的过程写下来,也没有把它用来编译的命令贴在网站上,所以别人没法知道这些问题是怎么被修正的,要修正其他类似的情况是也无法借助他的工作。

    一套开放的替代品

    为了缓解这些问题的困扰,我决定开始一个名叫 Telesphoreo 的项目,目的是以合作的、开放源代码的方式,给 iPhone 创建一套基于 GNU 和 BSD 的用户空间程序集。这个项目的名字来自于一个古希腊词汇,意思是“使果实成熟”,这正是我对 Apple 这个现有产品的想法:作为电话它是合格了,但要作为个人工作站它还远远不够。当然,要创建这样一个发行,还得使用正确的工具。

    为了发行软件,我选择了 Debian 的 APT 系统,这是我在少量修改以配合 Apple 的网络设置后移植到这个平台的。为了方便大量用户的迁移,我还花时间用 UIKit 写了一个 APT 的图形界面,名叫 Cydia (Cydia pomonella 是苹果蠹蛾的学名,而苹果蠹蛾……就是我们常认为的苹果蛀虫,我觉得这个名字挺合适的)。

    为令这个项目能够自举 (bootstrap),我先是移植好了百余软件,从 bash 到 xeyes 的所有东西,包括一系列的支持库和脚本语言 (包括比 Installer 提供版本功能更强的 Ruby 和 Python)。所有为编译所作的代码修改,以及编译整个项目的脚本,都通过 subversion 库 提供。

    虽然不是所有的东西都能正常工作,但我已经完成的部分肯定比原来 BSD Subsystem 提供的有了很大进步,也只在很少情况下会比 core 所提供的版本要糟 (不过这个情况很快会解决,因为 core 已经准备将他的更改贡献进来)。如果确实遇到了问题,我建议人们在项目的 Trac 上提交缺陷报告。

    如果谁希望出来担任某个现有软件包的维护者,或者提供其他新程序的移植,请加入邮件列表 (译注: 邮件列表还未建立,请通过 IRC 联系作者)。尽管现在是这个新发行版唯一的维护者,我当然不希望一直这样 (既因为缺少对很多领域软件的经验,也因为本就不可能一个人把所有事情做完)。

    安装过程

    从用户的角度讲,只要将 http://apptapp.saurik.com/ 加入 Installer 的源 (source) 中,然后从它的“System”分类中安装“Cydia Packager”就可以了。你应该在安装前暂时禁用设备的自动锁定 (auto-lock) 功能,因为这个安装过程可能会花上好几分钟。

    在安装过程中,下面这些操作会依次进行:

    移除 BSD 子系统的旧文件

    要替代 BSD 子系统,就得先把它删了,不幸的是在 Installer 里它是不能删除的,所以 Cydia 包管理器只好直接删除所有它安装的文件。不必大惊小怪,就算你非得要回 BSD 子系统,也完全可以用 Installer 来“Reinstall (重装)”它一遍。

    重组文件系统以提供足够的空间

    为了使升级 iPhone 固件时不会丢失个人数据,Apple 将 iPhone 的存储空间划为两个分区,分别挂载在 / 和 /private/var (它被符号链接到 /var)。前一个分区只有 300MB,所有 Apple 的软件都放在这里。可惜的是第三方软件也必须安装在这里。

    为了缓解空间不足的问题,如果安装 Cydia 时发现你在另一个分区 (也就是 4-32GB 里那剩下的部分) 有足够的空间,并确信这些文件并未被 BossTool 这样的工具移动过,就会将你所有的 Applications (应用程序), Wallpapers (墙纸), Fonts (字体), Ringtones (铃声) 和 Shared data (共享数据) 通通移动到那个较大的分区中,原来那个就多出了 150MB 的空间。

    安装 Cydia 和 Telesphoreo 基本包

    这一步完成后会占用大约 35MB 的空间,并提供了一套常规的 Telesphoreo 子集,以供安装更多的软件包,或者升级已经安装好的部分,又或是执行一些核心的管理操作如运行终端,另外这套子集还能支持现有应用程序对旧有 BSD 子系统的依赖 (我自己、还有许多测试者们一道,给这些依赖库开了一张清单)。

    上述的这三个步骤都完成了之后,以后 Cydia 自身和所有的 Telesphoreo 更新都将通过 Cydia/APT 进行,因此你不妨时常打开 Cydia 刷新来源信息看看有没有什么最新的软件。关于更新的更多信息会在下面的使用说明一节介绍。

    如果过程中出现了什么错误,你可以提交一个 bug 报告 (要先注册并登录这个站点) 或者来 irc.saurik.com 的 #iphone 频道报告,我平日都在这个频道上边,就算我哪天要出门也至少会查看一次上面信息,又或者是直接给我发邮件请求帮助。(请只在前两个办法不合适的情况下才发 邮件,因为前两个都能让其他看到的人帮上你的忙,以节省大家的时间。)

    “伪” BSD 子系统

    要注意:Telesphoreo 本身不依赖 BSD 子系统,所以如果你目前没装,也没有任何理由在装 Telesphoreo 之前装上 BSD 子系统,而更重要的是,安装过了 Telesphoreo 之后,如果你再尝试安装 BSD 子系统,则会损坏装好的 Telesphoreo (它会用就软件替换你的新系统)。而且,你还应该避免 BSD 子系统的升级 (upgrade),因为其实这和重装没什么区别,同样会把 Telesphoreo 中关键的组件替换成旧的。

    如果你刚刚 jailbreak 完自己的 iPhone/iPod Touch,不必安装 BSD Subsystem,装 Cydia Packager 就够了。如果某个包要用到 Cydia Packager 缺省没有提供的功能,你完全可以以后用 Cydia 装上。

    这样和 BSD 子系统包的基本冲突进一步导致了两个需要用户了解的问题:第一个是 BSD 子系统日后的更新都会列在 Installer 的 Updates 中,所以用户有可能会误装这些有问题的旧软件;第二个则是有些软件会在安装前要求 BSD 子系统已被安装,否则它们自己的安装就不能继续。

    希望 BSD 子系统会逐渐退休,而那些对它有需求的包则会在未来数月内更新为更聪明一点的检查 (比如判断自己需要的具体是哪些文件)。与此同时,Telesphoreo 也提供了了一个叫做“伪” BSD 子系统的变通方法,它和真正的 BSD Subsystem 的 bundle identifier (Mac OS X 用来甄别软件包的标识符) 一致,但本身不包含任何文件。只要装上了这个包,那些要求 BSD Subsystem 存在才肯安装的应用程序就能顺利装上,还能抑制 Installer 偶尔出现的那些——让你更新 BSD Subsystem 的请求。


    虽然我会尽量保持伪 BSD 子系统的版本号和原始那个包的版本号对应,但可能还是会慢上几天,所以 Installer 可能会提示你有 BSD 子系统的更新。你必须避免更新,稍等几天,新的伪造版本就会出现,Installer 的更新提示也就自然会消除了。


    Cydia 的使用

    一般说来,Cydia 用起来和 Installer 差不多,都是为了让人们快速装上新软件的。主界面由底部的一排按钮组成,让你在下列几个页面间切换。

    特色 (Featured)

    这个页面是在 Cydia 一启动就显示的,其实是一个包含 Cydia 和 Telesphoreo 使用的相关新闻的站点,还列出了近来一些有趣软件包。虽然目前它只有唯一的页面,不过会迅速成为程序中的一个浏览窗口,让你访问到软件包相关的站点和更详细的信息。

    安装 (Install)

    在这里你可以按目录的形式浏览未装的软件包,或依分类序、或依字典序。(目前软件包的分类名称还比较混乱,所以如果见到某些怪异的分类,请稍作适应。)

    更新 (Changes)

    一般你会关心的两件事是:“我已经安装的软件包有没有更新”和“最近更新过的软件里有没有我想装的”。这个页面里就把这两种情况组织到一起了:已装软件的更新显示在上部,其他所有未装软件则按更新时间逆序列在下方。

    这第二种使用方式类似 Installer 的“Recent Packages”分类,不过有两点重要的改变。第一,你可以回滚到任意时间点,而不仅仅是查看最近几天的更新。之所以支持这个功能,是因为只有 Installer 的死硬 fans 才会频繁地保持几天一次地查看最近更新,否则就有可能漏掉一些重要的新特性。

    第二,一个包只在你第一次看到它之后才被算作被“加入”了,而不是按照它本身加入软件仓库的时间算。这一点也很重要,只要你添加了一个新的软件源, 那它的库里所有的包都该被认为是“新”的。这样的定义还能避免每次软件库管理者修改包定义时又把它们推回列表的前头:只有没见过的包才能算是“新”的。

    卸载 (Uninstall) 或管理 (Manage)

    更为普通一点的 Cydia 使用是找出你已经装过的软件,然后或者重新配置或者重新安装。“Uninstall”界面就是为了这些情况设计的,之所以这么命名是因为 Telesphoreo 目前没用到 APT 的配置 (configuration) 系统,而 Cydia 当然也就不支持。如果这个界面以后有了更多的功能,可能会被改名为“Manage”以更好的表达其特点。

    搜索 (Search)

    最后一点,你经常会听说某个软件包但不确定它具体叫什么名字,又或者是你希望通过包描述中的信息找到特定功能的软件。这时就要用到“Search”了。只要输入一个字符串它就能依软件包的标识、名称或者描述将匹配的结果列出。

    最后还有个放在顶部的界面元素:一个让 Cydia 与所有来源进行本地 APT 数据库同步的刷新按钮。另外顶部还显示了上次同步的时间。我希望以后这个更新的过程能被精简掉:当用户不用 Cydia 的时候同步可以自动在后台进行。如果实现,顶部这栏就完全可以去掉了。

    管理来源 (Manage Sources)

    Installer 中存在而 Cydia 里没有 (因为 Search 占用了空间) 的一个界面是“Sources”。虽然还没实现出来,但我们的计划是让你在 iPhone 的 Settings 程序里选择这些来源,而不必塞在 Cydia 的界面里。这种交互方式和 Apple 的 MobileMail 比较类似,其中你的帐号也是偶尔在 Settings 里设置了但通常都在 Mail 里访问的。

    目前 APT 在 /etc/apt/sources.list 里维护了一个软件来源列表,你可以通过修改它来添加新的来源 (在管理来源的功能实现之前)。还有一个叫做 /etc/apt/sources.list.d 目录用来存放单独的 .list 文件,这样每个都可以简单地通过诸如 Installer 包的形式来安装卸载。

    作为过渡,所有屏幕的左上角都有一个带圈的小 i,表示目前缺少的这个功能,并允许通过它你临时把来源添加到 APT 的配置文件中。(如果这带来了什么不便,我很抱歉。)

    为何不用 Installer?

    我完全能理解的一个质疑是,为何选用 Debian APT 并开发 Cydia,而不是直接用 Installer 来管理所有 Telesphoreo 中的软件包。考虑到 Installer 已经是 iPhone 上经典的软件分发方式:它是几乎所有自动 jailbreak 方式安装的第一个,也是唯一一个软件,并有大量的软件仓库支持,这些仓库一起提供了大量的软件包。

    不幸的是,Installer 并非开源软件,就算有这么个许诺,也完全看不到任何相关的发布计划或者其他兑现的方式。Cydia 的源代码则已经提供了出来而其他项目 (比如 MxTube) 也正因此受益。我们也希望 Cydia 能借助开放源代码的优点,迅速得到第三方的补丁或者贡献。

    所以一旦考虑到 Telesphoreo 开放的特质,我们实在找不到还用 Installer 作为其安装程序的理由。不过即便如此,这一点还一直是本项目争议最大之处:很多人都来问我,为什么非得创建一个“新”的应用程序分发系统 (APT 的移植) 而不是直接用现成的广泛存在的 Installer。而且,他们对于以后开源的许诺也被用作不要分散 iPhone 开发者精力的理由之一。

    我觉得最好的回答是提供看问题的另一个角度:Cydia/APT 和 Installer 并不冲突。我在自己的 iPhone 上这两个程序都会用,也有大量用 Installer 装上的软件。目前为止也没有听说任何要求安装 BSD 子系统的程序因此出现什么兼容性问题,也没有任何理由这么怀疑。最后一点是:完全没有人——包括软件打包的人员和用户——被强制去用 Cydia 来替代 Installer。

    我觉得一个关键的问题是人们觉得觉得 Installer 实现了他们以前未曾见过的功能:从许多来源、以单一界面提供了简便地程序安装管理。虽然在 Mac OS X 和 Windows 这两个 iPhone 用户集中的平台上都没有什么这方面的经验,但包管理的概念可一点也不新:几乎所有的 Linux 和 BSD 发行版都依赖着它。再说 Mac OS X 和 Windows 上还有 Fink 这样的第三方软件提供类似的功能 (顺便说一句,Fink 正好也是基于 APT 的)。

    因此我专门写了一篇对包管理方式的快速剖析 (译注: 中文版见 AppTapp 的打包问题),并解释了一些这类系统的复杂情形。这篇文章还包括我个人作为软件打包者在使用 Installer 时遇到的挫折,希望它能阐明高级软件包管理中会遇到的那些问题,以及尝试开发 Telesphoreo 这样一个雄心勃勃的计划意义何在。

    总结性评论

    尽管有这些问题,我还是相信 Telesphoreo 和 Cydia 对 iPhone 社群会有很大的帮助。就算有人不同意其中某个具体实现上的选择,将关于移植应用程序和库的信息收集到一起也能方便我们把更多高质量的软件带到这个平台上。希望能如我所愿吧。

    展开全文
  • Debian APT HOWTO

    千次阅读 2005-03-09 12:42:00
    Debian APT HOWTOLYOO 翻译 转自 www.linuxsir.com概要 本文档的写作目的是帮助用户了解Debian包管理工具——APT的工作原理,我们的目标是简化Debian新用户的生活以及为那些希望深入了解系统管理的人提供帮助。...

    Debian APT HOWTO

    LYOO 翻译  转自 www.linuxsir.com


    概要
    本文档的写作目的是帮助用户了解Debian包管理工具——APT的工作原理,我们的目标是简化Debian新用户的生活以及为那些希望深入了解系统管理的人提供帮助。它也是为Debian项目组而作的,以帮助改善其为发行版提供技术支持的工作质量。

    版权声明
    Copyright ? 2001, 2002 Gustavo Noronha Silva

    This manual is licensed under the terms of the GNU FDL (Free Documentation License). It has been written in the hope that it will be useful to the community but it comes with no warranty; use it at your own risk.


    目录

    1.导言
    2.基础设置
    2.1 /etc/apt/sources.list文件
    2.2 怎样在本地使用APT
    2.3 选择最佳镜像发布站点加入source.list文件:netselect,netselect-apt
    2.4 将CD-ROM加入source.list文件
    3.软件包管理
    3.1 更新可用软件包列表
    3.2 安装软件包
    3.3 移除软件包
    3.4 更新软件包
    3.5 升级到新版本
    3.6 移除无用软件包文件:apt-get clean and autoclean
    3.7 在dselect中操作APT
    3.8 如何keep a mixed system
    3.9 如何从Debian的专用版本下升级软件包
    3.10 如何维护已安装软件包的多个版本(复杂)
    4.非常有用的助手
    4.1 如何安装本地编译的软件包:equivs
    4.2 移除无用的locale files文件:localepurge
    4.3 如何知晓哪些软件包可以升级
    5.获取软件包信息
    5.1 获得软件包名称
    5.2 使用dpkg查找软件包名称
    5.3 如何“按需”安装软件包
    5.4 如何知道文件属于哪个软件包
    5.5 如何掌握软件包的变化情况
    6.操作源码包
    6.1 下载源码包
    6.2 编译源码包所需的软件包
    7.如何处理错误
    7.1 一般错误
    7.2 在哪儿获得帮助?
    8.哪些版本支持APT?
    9.感谢
    10.本使用指南的新版本

    Debian APT HOWTO 第一章 导言
    APT HOWTO
    第一章 导言

    最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安 装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次出现在 GNU/Linux系统中,稍后RedHat才决定开发自己的“rpm”包管理系统。

    很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装软件包,当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件,再次,Debian率先解决了这个难题,APT(Advanced Packaging Tool)诞生了。APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具。

    本文档不打算讲解apt-rpm相关知识,因为Conectiva port of APT已很有名了,不过提供有关这部分的补充文档还是欢迎的。

    本文档是基于Debian下一个发行版的,长官。


    Debian APT HOWTO 第二章 基础设置
    APT HOWTO
    第二章 基础设置

    2.1 /etc/apt/sources.list文件
    =============================
    作为操作的一部分,APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list。

    文件中的各项信息通常按如下格式列出:

    deb http://site.http.org/debian distribution section1 section2 section3
    deb-src http://site.http.org/debian distribution section1 section2 section3

    当然,上面所列的地址项都是假设的不可用的。每行的第一个单词deb或deb-src,描述了文件类型,目录中包含的是二进制软件包(deb),即 我们通常使用的已编译好的软件包;或包含的是源码包(deb-src),源码包包含源程序编码、Debian管理文件(.dsc)和“Debian化”该 程序所做更改的记录文件diff.gz。

    通常可以看出如下Debian默认的sources.list:

    # See sources.list(5) for more information, especialy
    # 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

    这些是Debian基本安装所需的软件包来源地址,第一个deb行指向官方正式软件包来源,第二个deb行指向non-US软件包来源,第三deb行指向Debian安全补丁更新包来源。

    最后两行被注释掉了(在句首加#),所以apt-get将忽略它们。这些是deb-src行指向Debian源码包来源,如果你常下载程序源码来测试或重编译,可取消对它们的注释。

    /etc/apt/sources.list文件可包含多种类型的地址,APT知道如何处理这些不同的地址类型:http,ftp,file(本地文件,例如:一个加载了ISO9600文件系统的目录)和ssh。

    别忘了在修改完/etc/apt/sources.list文件后运行apt-get使更改生效。你必须完成这个步骤,以便让APT从你指定的地方获得新的软件包列表。

    2.2 如何在本地使用APT
    =====================
    有时你硬盘上有许多软件包,你会希望通过APT来安装它们,以便让它去处理软件包间复杂的依赖关系。

    想这么做,就建一个目录,将所有你想要安装的.deb文件放入其中。例如:

    mkdir /root/debs

    你可以使用一个重载文件(override file)直接去修改软件包中管理文件中的定义(definitions),使之符合你的软件储藏库管理规则,在这个重载文件中,你可能希望定义一些选项来重载那些软件包的定义,如下所示:

    package priority section

    package是软件包的名称,priority有三个级别low,medium或high,section是软件包所属的section,重载文 件可任意命名,文件名将在接下来的步骤中做为参数传递给dpkg-scanpackages。如果你不想写重载文件,只需在调用dpkg- scanpackages时使用/dev/null就行了。

    仍是在/root目录下执行:

    dpkg-scanpackages debs file | gzip > debs/Packages.gz

    在上述的命令行中,file为重载文件,命令生成一个Packages.gz文件,它包含了APT所需的各种软件包信息,要使用这些软件包,在sources.list中加上:

    deb file:/root debs/

    完成了上面的工作,就可以通常那样使用APT命令操作这些软件包了。你可以使用同样的方法生成一个源码库,但请记住你需要将. orig.tar.gz文件、.dsc文件和.diff.gz文件包含在目录中,要生成Source.gz文件而不是Packages.gz文件。所使用 的命令也不相同,要使用dpkg-scansources,命令如下所示:

    dpkg-scansources debs | gzip > debs/Sources.gz

    注意dpkg-scansource不需要重载文件,在sources.list中的引用法是:

    deb-src file:/root debs/

    2.3 选择最佳镜像发布站点加入source.list文件:netselect,netselect-apt
    =====================================================================
    一个新用户经常问到的问题:“该将哪个Debian镜像发布站点加入source.list文件?”。有很多方法来选择镜像发布站点,专家们可能会写一个脚本去测试不同站点的ping time,不过有一个现成的程序可以帮你:netselect。

    安装netselect

    apt-get install netselect

    不带参数运行它时会显示它的帮助信息。运行它时加上以空格分隔的镜像主机列表,它会返回一个分值和列表中的一个主机名。这个分值通过评估ping time和hops number(一个网络请求报文到达目标主机所经过的转发主机的个数)得出,它与镜像站点预计下载速度成反比(数值越小越好)。返回的主机名是主机列表中得分最低的那个(查看列表中所以主机的得分情况可使用-vv选项)。看出下的例子:

    bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
    365 ftp.debian.org.br
    bash$

    它表示,在netselect后列出的所有主机中,ftp.debian.org.br是下载速度最快的主机,其得分为365。(注意!!这是在我电脑上的测试结果,不同的网络节点网速会大不相同,所以这个分值不一定适用于其它电脑)

    现在将netselect找到的连接速度最快的镜像站点加入/etc/apt/sources.list文件(see The /etc/apt/sources.list file, Section 2.1)and follow the tips in Managing packages, Chapter 3.

    注意:镜像站点列表通常包含在文件http://www.debian.org/mirror/mirrors_full。

    从0.3版开始,netselect软件包包含了netselect-apt脚本,它使上述操作自动完成。只需将发布目录树做为参数(默认为 stable)输入,sources.list文件就会生成速度最快的main和non-US镜像站点列表,并保存在当前目录下。下面的例子生成一个包含 stable发布镜像站点列表的sources.list

    bash$ ls sources.list
    ls: sources.list: File or directory not found
    bash$ netselect-apt stable
    (...)
    bash$ ls -l sources.list
    sources.list
    bash$

    记住:sources.list生成在当前目录下,必须将其移至/etc/apt目录。

    Then, follow the tips in Managing packages, Chapter 3.

    2.4 将CD-ROM加入source.list文件
    ===============================
    如果你用APT从CD-ROM上安装及升级软件包,你可以将它加入到sources.list文件中。完成该操作,可使用apt-cdrom程序:

    apt-cdrom add

    将Debian光盘放入光驱,它将加载光盘目录,并在光盘上查找软件包信息。如果你的光驱需要额外设置,可使用以下选项:

    -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

    你还可以扫描一张光盘,但不将其加入列表:

    apt-cdrom ident

    注意,只有当你在系统的/etc/fstab中正确设置了光驱后,该程序才会工作。


    Debian APT HOWTO 第三章 软件包管理
    APT HOWTO
    第三章 软件包管理

    3.1 更新可用软件包列表
    ======================
    软件包管理系统使用一个私有数据库跟踪列表中软件包的当前状态:已安装、未安装或可安装。apt-get通过该数据库来确定如何安装用户想用的软件包以及正常运行软件包所必须的其它关联包。

    你可以使用apt-get update来更新数据库列表。这个命令将扫描/etc/apt/sources.list文件中所指路径中的软件包列表文件。有关该列表文件的更多信息请查阅 第二章 /etc/apt/source.list文件。

    定时运行这个程序是个好主意,它将使你和你的系统获得最新的软件包更新和安全更新等信息。

    3.2 安装软件包
    ==============
    现在,终于到了你一直期待的阶段!准备好了sources.list和最新版的的可用软件包,你所需做的就是运行apt-get来安装你渴望已久的软件了。例如,你可以这样:

    apt-get install xchat

    APT会扫描它的数据库找到最新的版本的软件包,并将它从sources.list中所指的地方下载到本地。如果该软件包需要其它软件包才能正常运行——如本例一样——APT会做关联性检查并自动安装所关联软件包。如下所示:

    [root]@[/] # apt-get install nautilus
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following extra packages will be installed:
    bonobo libmedusa0 libnautilus0
    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]

    nautilus软件包需要引用共享函数库,因此APT会从镜像源处下载相关共享函数库,如果你在apt-get命令行中手动指定了这些共享函数库的名称,APT会默认为你要安装所有这些软件包。

    也就是说APT只会在安装那些没有在命令行中指定的软件包时提示你进行确认。

    下列apt-get选项也许对你有用

    -h This help text.
    -d Download only - do NOT install or unpack archives
    -f Attempt to continue if the integrity check fails
    -s No-act. Perform ordering simulation
    -y Assume Yes to all queries and do not prompt
    -u Show a list of upgraded packages as well

    可以用一条命令安装多个软件包。包文件从网络上下载到本地/var/cache/apt/archives目录,稍后再安装。

    你可以用同样的命令行删除指定软件包,只需在软件包名称后紧跟一个“-”,如下所示:

    [root]@[/] # 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.
    Need to get 8329kB of archives. After unpacking 2594kB will be used.
    Do you want to continue? [Y/n]

    有关删除软件包的更多详细信息,参阅 3.3 移除软件包。

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

    [root]@[/] # apt-get --reinstall install gdm
    Reading Package Lists... Done
    Building Dependency Tree... Done
    0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
    Need to get 0B/182kB of archives. After unpacking 0B will be used.
    Do you want to continue? [Y/n]

    本文档写作时所参考的APT版本为0.5.3,这个版本还属于“unstable”(sid)阶段。如是你安装了这个版本,你可以在系统配置中使用新增的功能:你可以用apt-get install package/distribution来安装指定发布版中的软件包,或者用apt-get install package=version,如下所示:

    apt-get install nautilus/unstable

    它将为你安装“unstable”发布版中的nautilus软件包,即使你当前运行的是“stable”版本。命令中“distribution”选项的可用参数值为:stable,testing,unstable。

    在处理关联问题时,你可能更乐意使用-t开关来选择目标发布版,让apt-get帮你考虑使用哪个发布版。

    重要信息:最新版的Debian软件包首先会上传到“unstable”发布版中,这个发布版包含了软件包所有更改阶段,无论是小修小补还是影响到众多软件包乃至整个系统的重大修改。所以,新手和那些强调系统稳定性的用户不会使用这个发布版。

    “testing”发布版比起“unstable”发布版,多注重了些系统稳定性,但正式运行的系统应当使用“stable”发布版。

    3.3 移除软件包
    ==============
    如果你不再使用某些软件包,你可以用APT将其从系统中删除。要删除软件包只需输入:apt-get remove package。如下所示:

    [root]@[/] # apt-get remove gnome-panel
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following packages will be REMOVED:
    gnome-applets gnome-panel gnome-panel-data gnome-session
    0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
    Need to get 0B of archives. After unpacking 14.6MB will be freed.
    Do you want to continue? [Y/n]

    由上例可知,APT会关注那些与被删除的软件包有依赖关系的软件包。使用APT删除一个软件包将会连带删除那些与该软件包有依赖关系的软件包。

    上例中运行apt-get会删除指定软件包以及与之有依赖关系的软件包,但它们的配置文件,如果有的话,会完好无损地保留在系统里。如果想彻底删除这些包及其配置文件,运行:

    [root]@[/] # apt-get --purge remove gnome-panel
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following packages will be REMOVED:
    gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
    0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
    Need to get 0B of archives. After unpacking 14.6MB will be freed.
    Do you want to continue? [Y/n]

    注意:软件包名字后面的*表示该软件包所有的配置文件也将被删除。

    就象安装软件时一样,你可以在删除命令中用一个符号来指定安装某个软件包。在删除软件包时,如果你在软件包名字后面紧跟一个“+”,那么该软件包就会被安装而不是删除。

    [root]@[/] # apt-get --purge remove gnome-panel nautilus+
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following extra packages will be installed:
    bonobo libmedusa0 libnautilus0 nautilus
    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.
    Need to get 8329kB of archives. After unpacking 2594kB will be used.
    Do you want to continue? [Y/n]

    注意,apt-get列出了那些将要被安装的关联软件包(即保证该软件包正常运行的其它软件包)和将要被删除关联软件包,然后,再次列出了将要被安装的软件包。

    3.4 更新软件包
    ==============
    软件包更新是APT最成功的特点。只需一条命令即可完成更新:apt-get upgrade。你可以使用这条命令从相同版本号的发布版中更新软件包,也可以从新版本号的发布版中更新软件包,尽管实现后一种更新的首选命令为apt-get dist-upgrade;实情参阅 3.5升级到新版本。

    在运行该命令时加上-u选项很有用。这个选项让APT显示完整的可更新软件包列表。不加这个选项,你就只能盲目地更新。APT会下载每个软件包的最新更新版本,然后以合理的次序安装它们。注意在运行该命令前应先运行apt-get update更新数据库。有关详情参阅 3.1更新可用软件包列表。看看这个例子:

    [root]@[/] # apt-get -u upgrade
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following packages have been kept back
    cpp gcc lilo
    The following packages will be upgraded
    adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
    ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
    libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
    libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
    29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
    Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
    Do you want to continue? [Y/n]

    整个更新过程非常简单。注意在本例中头几行,apt-get报告有些软件包的更新被阻止(kept back),这表明这些软件包的更新版本因故无法安装,可能的原因有关联不同步(当前没有供下载的新版本关联包)或关联扩展(需要安装新的关联包以配合新版软件包)。

    对于第一种原因没有很好的解决方法,对于第二次原因,运行apt-get intall安装所需的新关联包就可以。另一个更好的解决方法就是使用dist-upgrade。详情参阅 3.5升级到新版本。

    3.5 升级到新版本
    ================
    APT的绝活就是让你一次就完成整个系统的更新,不论是通过Internet还是通过光盘文件(购买的碟片或下载的ISO镜像文件)。

    它也可以用来更新寻些改变了关联关系的软件包。即如前所述的那些使用apt-get upgrade时被阻止更新(kept back)的软件包。

    例如,假设你目前使用的Debian为stable revision 0(如woody 3.0 r0,译者注),而你购买了revision 3的新版Debian(如woody 3.0 r3,译者注),你可以使用APT从新光盘上升级你的系统。使用apt-cdrom(参阅 2.4将CD-ROM加入source.list文件)将光盘加载到/etc/apt/sources.list中,然后运行apt-get dist-upgrade。

    请注意,APT总是搜索最新版本的软件包,因此,如果一个软件包在你的/etc/apt/sources.list中所列的版本比光盘上所列的版本要新,那么APT会按照sources.list文件所指的地址下载这个软件包而不是使用光盘上的软件包。

    在 3.4更新软件包 中我们举了个例子,我们看到有些包被阻止更新(kept back),现在我们就用dist-upgrade方法来解决这个问题:

    [root]@[/] # apt-get -u dist-upgrade
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Calculating Upgrade... Done
    The following NEW packages will be installed:
    cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
    libpcre2 logrotate mailx
    The following packages have been kept back
    lilo
    The following packages will be upgraded
    adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
    indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
    libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
    liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
    procps psmisc
    31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
    Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
    Do you want to continue? [Y/n]

    注意现在那些软件包将会被更新,那些新的关联软件包也会被安装。但是lilo仍被阻止更新,可能还存在一些比建立新关联更棘手的问题,我们通过如下方法确定问题所在:

    [root]@[/] # apt-get -u install lilo
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following extra packages will be installed:
    cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
    logrotate mailx
    The following packages will be REMOVED:
    debconf-tiny
    The following NEW packages will be installed:
    cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
    logrotate mailx
    The following packages will be upgraded
    lilo
    1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
    Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
    Do you want to continue? [Y/n]

    查看上述提示信息可知,lilo与debconf-tiny包产生了一个新冲突,这表明除非删除debconf-tiny,否则将无法更新lilo。

    想知道该保留或删除哪些软件包,你可以使用:

    # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Calculating Upgrade... Starting
    Starting 2
    Investigating python1.5
    Package python1.5 has broken dep on python1.5-base
    Considering python1.5-base 0 as a solution to python1.5 0
    Holding Back python1.5 rather than change python1.5-base
    Investigating python1.5-dev
    Package python1.5-dev has broken dep on python1.5
    Considering python1.5 0 as a solution to python1.5-dev 0
    Holding Back python1.5-dev rather than change python1.5
    Try to Re-Instate python1.5-dev
    Done
    Done
    The following packages have been kept back
    gs python1.5-dev
    0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

    现在,你很容易就知道不能安装python1.5-dev软件包是因为无法满足另一个软件包python1.5的关联要求。

    3.6 移除无用软件包文件:apt-get clean and autoclean
    ===================================================
    当你需要安装某个软件包时,APT从/etc/apt/sources.list中所列的主机下载所需的文件,将它们保存到本机软件库(/var/cache/apt/archives/),然后开始安装,参阅 3.2 安装软件包。

    本地软件库会不断膨胀占用大量硬盘空间,幸运的是,APT提供了工具来管理本地软件库:apt-get的clean方法和autoclean方法。

    apt-get clean将删除/var/cache/apt/archives目录和/var/cache/apt/archives/partial目录下的所有文件,除了被锁定的文件。这样以来,当你需要再次安装某个软件包时,APT将重新下载它。

    apt-get autoclean仅删除那些不需要再次下载的文件。

    下面这个例子显示了apt-get autoclean如何工作:

    # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
    logrotate_3.5.9-7_i386.deb
    logrotate_3.5.9-8_i386.deb
    gpm_1.19.6-11_i386.deb

    在/var/cache/apt/archives目录下有两个不同版本的logrotate软件包文件以及一个gpm软件包文件。

    # apt-show-versions -p logrotate
    logrotate/stable uptodate 3.5.9-8
    # apt-show-versions -p gpm
    gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12

    apt-show-versions显示logrotate_3.5.9-8_i386.deb提供了logrotate的升级版本,所以 logrotate_3.5.9-7_i386.deb没用了。同样gpm_1.19.6-11_i386.deb也没有用了,因为可以下载该软件包的更 新版本。

    # apt-get autoclean
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Del gpm 1.19.6-11 [145kB]
    Del logrotate 3.5.9-7 [26.5kB]

    总之,apt-get autoclean仅删除那些过时的文件。参阅 3.9如何从Debian的专用版本下升级软件包 获得更多apt-show-versions相关信息。

    3.7 在dselect中操作APT
    ======================
    dselect工具帮助用户选取想要安装的Debian软件包。它有点复杂甚至令人望而生厌,但经过实践你就能掌握它恐怖的终端界面。

    dselect高级功能之一就是它知道利用Debian软件包的“推荐”和“建议”能力。(Debian软件包有一种能力:推荐或建议系统在安装自 己的同时,安装别的软件包以配合自身的工作,当然这些推荐的软件包不一定是必须的;而dselect工具可以识别和利用这个能力,使用dselect时你 就能体会到。译者注)以root身份运行dselect,进入程序后选择apt作为连接方式(access)。该步骤不是必须的,但如果你没有光驱而且想 通过Internet下载安装软件包,这是使用dselect的最好方法。

    想深入学习dselect的用法,请到Debian网站查阅dselect文档页面
    http://www.debian.org/doc/ddp

    在dselect中选好了软件包后,运行:

    apt-get -u dselect-upgrade

    如下例所示:

    [root]@[/] # apt-get -u dselect-upgrade
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following packages will be REMOVED:
    lbxproxy
    The following NEW packages will be installed:
    bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
    gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
    libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
    libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
    util-linux-locales vacation xbill xplanet-images
    The following packages will be upgraded
    debian-policy
    1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
    Need to get 7140kB of archives. After unpacking 16.3MB will be used.
    Do you want to continue? [Y/n]

    比较一下我们在相同系统上运行apt-get dist-upgrade时的情形:

    [root]@[/] # apt-get -u dist-upgrade
    Reading Package Lists... Done
    Building Dependency Tree... Done
    Calculating Upgrade... Done
    The following packages will be upgraded
    debian-policy
    1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 421kB of archives. After unpacking 25.6kB will be freed.
    Do you want to continue? [Y/n]

    我们看到在前例中许多软件包被安装是其它软件包“推荐”或“建议”的结果。另外一些软件包被安装或删除(例如lbxproxy软件包)是我们通过dselect工具作出的决定。由此可见dselect与APT结合起来将是一个功能强大的工具。

    3.8 如何构建一个混合系统
    ========================
    人们常使用testing发布版,因为它比unstable要稳定同时又比stable时髦。然而对于那些想运行某些软件包的最新版本,又不希望 将整个系统迁移到unstable发布版的还有一种选择:运行一个testing/unstable混合系统。对另一部分保守的用户而言,他们可能希望运 行stable/testing混合系统。

    要实现混合系统,请在/etc/apt/apt.conf中加入下面的语句:

    APT::Default-Release "testing";

    以后,在从unstable发布版安装软件包时,使用-t开关:

    # apt-get -t unstable install packagename

    别忘了,使用Debian的某个发布版的软件包时,要将镜像源加入到/etc/apt/sources.list文件中。在这个例子中,除了加入testing发布版镜像源处,我们还需要加入unstable发布版镜像源。

    3.9 如何从Debian的专用版本下升级软件包
    ======================================
    apt-show-versions提供了一个安全的途径,让那些使用混合系统的用户放心升级他们的系统,不必担心升级会将原来属于stable的包升级成了unstable包。例如,这条命令将只升级你的unstable软件包:

    # apt-get install `apt-show-versions -u -b | grep unstable`

    3.10 如何维护已安装软件包的多个版本(复杂)
    ==========================================
    你可能会遇到这种情况,更改了某个软件包中的一些文件,但你没有时间或根本就不想将这些更改引入到新版本中。或者,你将系统升级到3.0,但仍想继续使用Debian 2.2下的某个软件包。你可以“钉住”(pin)这个版本,这样它就不会被更新了。

    操作起来十分简单,你只需编辑/etc/apt/preferences文件。

    文件格式很简单:

    Package: <package>
    Pin: <pin definition>
    Priority: <pin's priority>

    例如,我对sylpheed软件包做了某些修改,其版本为0.4.99,我想保留这些修改不被更新,可加上:

    Package: sylpheed
    Pin: version 0.4.99*

    注意我用了一个 *(星号)。这是一个“通配符”;它表明我希望“钉住”所有以0.4.99打头的版本(以防它们被下载并安装到我机器上。pin控制的是服务器端的更新软 件包而非本地的已安装软件包。译者注)。因为Debian使用“Debian版本号”为其软件包定版本,我不想进行所有这些版本的升级,如果不用通配符, 那么0.4.99-1版或0.4.99-10版只要一出炉系统就会安装它们。如果你修改了软件包,你一定不希望这么做。

    Priority是可选域;如果没有特别指定,它的默认值为989。

    让我们来看看pin如何体现优先级(priorty)区别。一个低于0的优先级表示:该软件包被禁止安装;优先级在0到100之间表示:软件包没有 安装并且当前也没有可用版本,这些软件包不会出现在供选择版本列表中;优先级为100表示软件包已被安装——对于这个已安装的软件包,如果有一个不同的版 本要替换它,那么替换者的优先级必须大于100。

    优先级在100以上表示软件包应该被安装。典型的例子如,某个软件包的升级补丁包,任何处于100和1000(包括1000)之间的优先级都表示上 述情形。但是,一个软件包如果被定为这样的优先级,它并不会降级已安装的版本。例如,如果我安装了sylpheed 0.5.3并为sylpheed 0.4.99指定了一个优先级为999的pin,那么由于要满足pin的优先级,所以0.4.99软件包不会被安装。如果要实现软件包“降级”,则需要将 pin的优先级定为大于1000。(100<优先级<=1000时,如果存在升级包就对本机相关包升级,如果本机软件包比更新包还新就保持不 变;优先级>1000时,服务器端软件包不论比本机的软件包新还是旧,均对本机相关软件包进行更新。译者注)

    pin可以被用来控制软件包的修订版本(version)、发布版本(release)或版本来源(origin)。

    在前面我们已经看到,钉住修订版本时使用通配符来代替版本号数字,这样可一次指定多个版本。

    release选项是基于发布版文件(Release file)的,这个文件在本地APT软件库中或安装光盘上。如果你从本地软件库安装软件包而软件库中又没有该文件,那么这个选项将失效。来看看 /var/lib/apt/lists/目录中发布版文件的内容,发布版包括这些参数:a(archive),c(components),v (version),o(origin),l(lable)。

    来看一个例子:

    Package: *
    Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
    Priority: 1001

    在本例中,我们选择了version为2.2*的Debian(它可以是2.2r2,2.2r3——这些版本包含了“point releases”即安全更新和其它非常生要的更新),stable软件库,main类软件包(非contrib或non-free),版本来源和标签均 为Debian。版本来源(o=)说明谁制作了这个发布版文件,标签(l=)说明该发布版的名称:Debian即是指Debian自己,Progeny即 是指后裔制作者,下面是一个发布版文件的样例:

    $ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
    Archive: stable
    Version: 2.2r3
    Component: main
    Origin: Debian
    Label: Debian
    Architecture: i386


    Debian APT HOWTO 第四章 几个非常有用的工具
    APT HOWTO
    第四章 几个非常有用的工具

    4.1 如何安装本地编译的软件包:equivs
    ====================================
    有时,用户想使用某些软件的特殊版本,它们只以源代码的形式存在,没有现成的Debian软件包。软件包管理系统在处理这类事务时可能会出问题。 假设你想编译新版本的邮件服务器,编译、安装一切正常,然而,软件包管理系统并不知道你在系统中安装了自己编译的东西,在Debian中许多基于MTA (Mail Transport Agent 邮件传输代理)的软件包也不知道这些。

    现在是equivs登台的时候了。用它来安装软件包,它所做的工作就是创建一个新的空软件包来实现关联,让软件包管理系统相信关联实现了。

    在我们开始以前,我必须提醒你,编译某个软件最安全的方法是对该软件现有的Debian软件包进行修改后重新编译,如果你并不知道你正在干什么,劝你不要使用equivs替换关联包。更多信息请参阅 第六章 源码包操作。

    继续上面的例子,你安装好了新编译的postfix,接下来打算安装mutt,突然你发现mutt想与另一个MTA建立关联,而你想让它使用你刚安装的新MTA。

    转到某个目录(例如/tmp)执行:

    # equivs-control name

    将name替换为你创建的管理文件(control file),管理文件按如下格式创建:

    Section: misc
    Priority: optional
    Standards-Version: 3.0.1

    Package: <enter package name; defaults to equivs-dummy>
    Version: <enter version here; defaults to 1.0>
    Maintainer: <your name and email address; defaults to username>
    Pre-Depends: <packages>
    Depends: <packages>
    Recommends: <packages>
    Suggests: <package>
    Provides: <(virtual)package>
    Architecture: all
    Copyright: <copyright file; defaults to GPL2>
    Changelog: <changelog file; defaults to a generic changelog>
    Readme: <README.Debian file; defaults to a generic one>
    Extra-Files: <additional files for the doc directory, commaseperated>
    Description: <short description; defaults to some wise words>
    long description and info
    .
    second paragraph

    我们只需按自己的需要修改相关项目就行了。文件中每个项目都描述得很清楚,我们不必在此逐行解释它们。现在开始修改吧:

    Section: misc
    Priority: optional
    Standards-Version: 3.0.1

    Package: mta-local
    Provides: mail-transport-agent

    行了,就是这样。mutt要与mail-transport-agent关联,这是所有MTA共用的一个虚拟包(virtual package),我可以简单地将这个软件包命名为mail-transport-agent,不过我更愿意使用系统的虚拟包方案,使用Provides选项。

    现在你可以开始创建软件包了:

    # equivs-build name
    dh_testdir
    touch build-stamp
    dh_testdir
    dh_testroot
    dh_clean -k
    # Add here commands to install the package into debian/tmp.
    touch install-stamp
    dh_testdir
    dh_testroot
    dh_installdocs
    dh_installchangelogs
    dh_compress
    dh_fixperms
    dh_installdeb
    dh_gencontrol
    dh_md5sums
    dh_builddeb
    dpkg-deb: building package `name' in `../name_1.0_all.deb'.

    The package has been created.
    Attention, the package has been created in the current directory,

    然后安装这个新创建的.deb。

    众所周知,equivs的用法很多,它甚至可以帮你为那些常用软件的底层关联包创建个性化版本。尽情发挥你的想像力吧,不过要小心。

    重要提示:管理文件(control files)的样例文件在/usr/share/doc/equivs/examples目录下。

    4.2 移除无用的locale files文件:localepurge
    ===========================================
    许多Debian用户仅在固定地区使用Debian。例如,在巴西的Debian用户,通常使用pt_BR地区配置文件(locale file)而不会关心es地区配置文件。

    对于这类用户而言localepurge是一个非常有用的工具,你可以仅保留你当前所用的地区配置文件,删除其它无用的文件,从而释放大量硬盘空间。运行apt-get install localepurge就行了。

    它配置起来非常容易,debconf的提问将引导用户一步一步完成设置。在回答第一个问题时请务必谨慎,如果回答错了,系统可能删掉所有的地区配置文件,包括你正在使用的这个。复原它们的唯一方法就是重装那些软件包。

    4.3 如何知晓哪些软件包可以升级
    ==============================
    apt-show-versions工具可以告诉你系统中哪些包可以更新以及其它一些有用的信息。-u选项可以显示可更新软件包列表:

    $ apt-show-versions -u
    libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
    libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7

    Debian APT HOWTO 第五章 获取软件包信息
    APT HOWTO
    第五章 获取软件包信息

    有些基于APT系统的前端程序,能十分方便地获得系统软件包列表,列表包括可安装或已安装的软件包,还可以显示某软件包属于哪个域(section),它的优先级(priority)是多少,它的说明文档,等等。

    但是...在此我们想的学习如何使用APT本身来完成。你如何找出你想要安装的软件包的名称?

    我们完成这个任务的方法有很多。我们从apt-cache开始,APT系统使用这个程序来维护它的数据库。下面我们通过一些实际操作来对它做个概览。

    5.1 获得软件包名称
    ==================
    假设你十分怀念玩Atari 2600的好日子,你决定用APT安装一个Atari emulator,随后再下载几个游戏,你可以这样:

    [root]@[/] # apt-cache search atari
    atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
    circuslinux - The clowns are trying to pop balloons to score points!
    madbomber - A Kaboom! clone
    tcs - Character set translator.
    atari800 - Atari emulator for svgalib/X/curses
    stella - Atari 2600 Emulator for X windows
    xmess-x - X binaries for Multi-Emulator Super System

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

    [root]@[/] # apt-cache show stella
    Package: stella
    Priority: extra
    Section: non-free/otherosfs
    Installed-Size: 830
    Maintainer: Tom Lear <tom@trap.mtview.ca.us>
    Architecture: i386
    Version: 1.1-2
    Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
    Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
    Size: 483430
    MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
    Description: Atari 2600 Emulator for X windows
    Stella is a portable emulator of the old Atari 2600 video-game console
    written in C++. You can play most Atari 2600 games with it. The latest
    news, code and binaries for Stella can be found at:
    http://www4.ncsu.edu/~bwmott/2600

    屏幕上显示出这个软件包的详细信息及其用途的完整描述。如果你的系统中已安装了某个软件包而系统又搜索到它的新版本,系统会将它们的详细信息一并列出。如下例:

    [root]@[/] # apt-cache show lilo
    Package: lilo
    Priority: important
    Section: base
    Installed-Size: 271
    Maintainer: Russell Coker <russell@coker.com.au>
    Architecture: i386
    Version: 1:21.7-3
    Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
    Suggests: lilo-doc
    Conflicts: manpages (<<1.29-3)
    Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
    Size: 143052
    MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
    Description: LInux LOader - The Classic OS loader can load Linux and others
    This Package contains lilo (the installer) and boot-record-images to
    install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
    .
    You can use Lilo to manage your Master Boot Record (with a simple text screen)
    or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

    Package: lilo
    Status: install ok installed
    Priority: important
    Section: base
    Installed-Size: 190
    Maintainer: Vincent Renardias <vincent@debian.org>
    Version: 1:21.4.3-2
    Depends: libc6 (>= 2.1.2)
    Recommends: mbr
    Suggests: lilo-doc
    Description: LInux LOader - The Classic OS loader can load Linux and others
    This Package contains lilo (the installer) and boot-record-images to
    install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
    .
    You can use Lilo to manage your Master Boot Record (with a simple text screen)
    or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

    注意,首先列出的是可用软件包,接着列出的是已安装软件包。获取某个软件包的常规信息可运行:

    [root]@[/] # apt-cache showpkg penguin-command
    Package: penguin-command
    Versions:
    1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)

    Reverse Depends:
    Dependencies:
    1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
    Provides:
    1.4.5-1 -
    Reverse Provides:

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

    [root]@[/] # apt-cache depends penguin-command
    penguin-command
    Depends: libc6
    Depends: libpng2
    Depends: libsdl-mixer1.1
    Depends: libsdl1.1
    Depends: zlib1g

    总之,有一系列工具可帮助我们找到我们想要的软件包。

    5.2 使用dpkg查找软件包名称
    ==========================
    另一个定位软件包的方法是知道软件包中某个关键文件的名称。例如,你编译时需要某个头文件,查找提供该文件的软件包,你可以运行:

    [root]@[/] # dpkg -S stdio.h
    libc6-dev: /usr/include/stdio.h
    libc6-dev: /usr/include/bits/stdio.h
    perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

    或者:

    [root]@[/] # dpkg -S /usr/include/stdio.h
    libc6-dev: /usr/include/stdio.h

    在清理硬盘空间时,了解系统中已安装软件的软件包名称十分有用,你可以运行:

    [root]@[/] # dpkg -l | grep mozilla
    ii mozilla-browse 0.9.6-7 Mozilla Web Browser

    这个命令的缺点是它会“截断”软件包的名字。在上例中,软件包的全称是mozilla-browser,解决这个问题可以使用COLUMNS环境变量:

    [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
    ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser

    或显示成这样:

    [root]@[/] # apt-cache search "Mozilla Web Browser"
    mozilla-browser - Mozilla Web Browser

    5.3 如何“按需”安装软件包
    ==========================
    你正在编译某段程序,突然,停住了!一条错误信息报告说你没有它需要的头文件。让auto-apt来救你吧,它问你是否要安装需要的软件包,然后挂起编译进程,安装好软件包后再恢复编译进程。

    你所要做的仅仅是:

    auto-apt run command

    这里“command”指在运行过程中可能出现“需求文件不存在”问题的命令。例如:

    auto-apt run ./configure

    一会儿,它就会告诉你要安装所需的软件包并自动转到apt-get处理。如果你正在运行X,就会一个图形界面提示窗口。

    为了提高效率auto-apt所用的数据库需要实时更新。可调用auto-apt update,auto-apt updatedb和auto-apt update-local来完成更新。

    5.4 如何知道文件属于哪个软件包
    ==============================
    如果你想安装某个软件包,但用apt-cache查不出它的名称,不过你知道这个程序的文件名,或这个软件包中某些文件的文件名,那么你可以用apt-file来查找软件包名称。

    $ apt-file search filename

    它用起来很象dpkg -S,不过它还会列出包含该文件的已删除软件包。它也可以用来查找哪个软件包包含编译时所缺的文件,当然,解决这类问题auto-apt可能是更好的方案,请参阅 5.3如何“按需”安装软件包。

    用这个命令,你可以列出软件包的内容:

    $ apt-file list packagename

    apt-file用一个数据库来存放所有软件包的内容信息,和auto-apt一样,这个数据库也需要实时更新,完成更新可以运行:

    # apt-file update

    默认情况下,apt-file和auto-apt使用同一个数据库,参阅 5.3如何“按需”安装软件包。

    5.5 如何掌握软件包的变化情况
    ============================
    在每个软件包被安装以后,都会在文档目录(/usr/share/doc/packagename)生成一个 changelog.Debian.gz的文件,这个文件记录了该软件包最后一次更新对系统做了哪些修改,你可以用zless阅读这些信息。不过当你对整 个系统进行升级以后,逐个查看软件包的更新信息可不是件容易事。

    有一个工具能帮你完成这项任务,它就是apt-listchanges。首先你要装上apt-listchanges软件包。在安装的过程中,Debconf会问你一些问题,按你的要求回答它们就行了。

    “Should apt-listchanges be automatically run by apt”(想让apt自动运行apt-listchanges吗?)这个选项非常有用,因为在你使用apt更新软件包时,它会告诉你此次软件包更新将会对原有系统做出了哪些修改,你分析了这些信息以后再决定是否执行此次更新。“Should apt-listchanges prompt for confirmation after displaying changes?”(显示更新信息后,需要apt-listchanges等待你的确认信息吗?)选项也非常有用,因为在你阅读完更新信息后,它会询问你是否继续安装进程,如果你不想继续,apt-listchanges会返回一条错误信息,告诉apt停止安装进程。

    安装了apt-listchanges后,每当apt下载软件包时(不论来源是Internet、光盘或是硬盘)都会显示这些软件包的系统更新信息。

    Debian APT HOWTO 第六章 源码包操作
    APT HOWTO
    第六章 源码包操作

    6.1 下载源码包
    ==============
    在自由软件的世界里,经常需要学习源码或为程序除错,所以你需要下载它们。APT提供了一套简便的方法帮你获得发布版中众多程序的源代码以及创建一个.debs所需的所有文件。

    Debian源码的另一个普遍用途是将unstable发布版的新版程序进行改写以供别的发布版使用,例如,从stable发布版外引入新的软件包,需要重新生成.debs将它在原发布版中的关联关系迁移到新的发布版。

    完成这些工作,/etc/apt/sources.list文件中deb-src所指引用镜像源应该是unstable,别忘了将行首的注释符去掉。详情参阅 2.1/etc/apt/sources.list文件。

    用下面的命令下载源码包:

    apt-get source packagename

    通常会下载三个文件:a .orig.tar.gz, a .dsc and a .diff.gz。对于Debian专用的软件包,最后一个文件不会下载,第一个文件的文件名中没有“orig”项。

    dpkg-source读取.dsc文件信息,将源码包解包到packagename-version目录,下载下来的源码包中有一个debian/目录,里面是创建.deb包所需的文件。

    想要下载的源码包自动编译成软件包,只需在命令行中加上-b,如下:

    apt-get -b source packagename

    如果你不打算立即创建.deb包,你可以运行如下命令,以后再创建它。

    dpkg-buildpackage -rfakeroot -uc -b

    请在下载包所在的目录中运行上面的命令。

    apt-get的source命令与它的其它命令有所不同,普通用户权限就可以运行source命令,指定文件被下载到用户调用apt-source package命令时所处的目录中。

    6.2 编译源码包所需的软件包
    ==========================
    通常,编译源码包时要用到某些头文件和共享库,所有的源码包的管理文件(control file)中都有一个域“Build-Depends:”,域中指出了编译该源码包需要哪些附加包。

    APT提供了一个简单的方法下载这些附加包,你只需运行apt-get build-dep package,其中package就是你打算编译的源码包名称。见下例:

    [root]@[/] # apt-get build-dep gmc
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following NEW packages will be installed:
    comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
    libgpmg1-dev
    0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
    Need to get 1069kB of archives. After unpacking 3514kB will be used.
    Do you want to continue? [Y/n]

    这些用于gmc正确编译指定源码包的附加包将会被安装。注意这个命令不能用来搜索某个软件的源码包,你得另外运行apt-get source下载源码包。


    Debian APT HOWTO 第七章 如何处理错误
    APT HOWTO
    第七章 如何处理错误

    7.1 一般错误
    ============
    错误总是发生,大部分是因为用户的粗心,下面列举一些常见错误及处理方法。

    如果在运行apt-get install package...时,你的系统报告如下信息:

    Reading Package Lists... Done
    Building Dependency Tree... Done
    W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)
    W: You may want to run apt-get update to correct these missing files
    E: Couldn't find package penguineyes

    上次你修改/etc/apt/sources.list后,忘了运行apt-get update更新。

    如果出现这样的信息:

    E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
    E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

    如果你没有root权限,当运行除source处的其它apt-get命令,如会出现上面的错误信息。

    当你同时运行两个apt-get进程,或者当你试图运行apt-get时已有一个的dpkg进程处于激活状态,系统也会报告与上面相似的错误信息。唯一能与其它命令同时运行的只有source命令。

    如果在安装过程中出现中断,然后你发现该软件包既不能重装又不能删除,试试下面两个命令:

    # apt-get -f install
    # dpkg --configure -a

    再试着安装那个软件包,如果不行再次运行上述命令后再试。这两个命令对于那些使用unstable的玩家非常有用。

    7.2 在哪儿获得帮助?
    ===================
    如果你发现自己有太多疑问,没关系,有大量的Debian软件包管理系统文档供你参考。--help和帮助文档能为你提供巨大的帮助,这些文档位于/usr/share/doc目录中,如/usr/share/doc/apt。

    如果本文档没法帮你排忧解难,可以去Debian邮件列表找找答案,相关栏目内你会获得更多信息。Debian的网址是:http://www.debian.org。

    记住只有Debian用户才能这些邮件列表和资源,其它操作系统的用户请到相关系统发布者建立的社区中获取更多资源。


    Debian APT HOWTO 第八章 哪些发布版支持APT?
    APT HOWTO
    第八章 哪些发布版支持APT?

    下面是部分使用APT系统的发布团体名称:

    Debian GNU/Linux (http://www.debian.org) - APT的开发者

    Conectiva (http://www.conectiva.com.br) - 第一个将APT移植用于rpm的发布团体

    Mandrake (http://www.mandrake.com)

    PLD (http://www.pld.org.pl)

    Vine (http://www.vinelinux.org)

    APT4RPM (http://apt4rpm.sf.net)

    Alt Linux (http://www.altlinux.ru/)

    Red Hat (http://www.redhat.com/)

    Sun Solaris (http://www.sun.com/)

    SuSE (http://www.suse.de/)

    Yellow Dog Linux (http://www.yellowdoglinux.com/)


    Debian APT HOWTO 第九章 致谢
    APT HOWTO
    第九章 致谢

    非常感谢你们,我Debian-BR项目组的好朋友们!还有你Debian,始终在我身边帮助我,给我动力不停工作为全人类做出贡献,帮助我树立拯救世界的理想。:)

    我还要感谢CIPSGA,他们给予我们项目组乃至整个自由软件项目巨大的帮助,是我们灵感的源泉。

    特别感谢:

    Yooseong Yang <yooseong@debian.org>

    Michael Bramer <grisu@debian.org>

    Bryan Stillwell <bryan@bokeoa.com>

    Pawel Tecza <pawel.tecza@poczta.fm>

    Hugo Mora <h.mora@melix.com.mx>

    Luca Monducci <luca.mo@tiscali.it>

    Tomohiro KUBOTA <kubota@debian.org>

    Pablo Lorenzzoni <spectra@debian.org>

    Steve Langasek <vorlon@netexpress.net>

    Arnaldo Carvalho de Melo <acme@conectiva.com.br>

    Erik Rossen <rossen@freesurf.ch>

    Ross Boylan <RossBoylan@stanfordalumni.org>

    Matt Kraai <kraai@debian.org>

    Aaron M. Ucko <ucko@debian.org>

    Jon ?slund <d98-jas@nada.kth.se>


    Debian APT HOWTO 第十章 本使用指南的新版本
    APT HOWTO
    第十章 本使用指南的新版本

    本操作手册由Debian-BR项目组撰写,我们希望它能为Debian用户提供有效的帮助。

    你可以从Debian文档项目页面获得本文档的新版本:http://www.debian.org/doc/ddp

    对本文档有任何意见或建议可直接发email给我:kov@debian.org


    Debian APT HOWTO 译后记
    非常感谢版主能将本文收录到精华区,谢谢!

    学Debian走了不少弯路,得出的经验是Debian入门三板斧:dselect、APT、内核编译,掌握了这三者,就算入门了,再深入学习就容易多了。无怪乎有一种说法:Debian就是Packages。

    想当初看着dselect头都大了,找了半天也没找到完整一些的中文文档,没办法只好硬着头皮读e文,花了不少时间,读后果然功力增加不少,现在居然觉得dselect是最顺手的包管理软件。

    最近有一段闲暇时间,于是斗胆翻几篇文档,希望我一个人费点时间能为大家省点时间。本时受过不少汉化文档之苦,每每大骂译者不负责,轮到自己翻译时 才知道其中的艰苦,本着首先要自己搞懂然后再动笔的原则,只希望日后少被读者骂。不过由于专业技术水平、遣词造句能力都很有限,如果各位Debian高手 读完译文后,发现有错误或不通不懂之处,请发邮件给我,以免误人子弟,我也会升级该文档。

    在翻译过程中,我尽最大努力保持原文的风格,不过中文与英文表达方式有不小的差别,所以有一些地方译出来读起来怪怪的,不好懂,这些地方我均以(译 者注)方式进行了意译。整个文档中《导言》、《哪些发布版支持APT?》、《致谢》、《本使用指南的新版本》几个章节没有什么技术信息,不过考虑到文档的 完整性,还是都翻译了,希望版主一并收录进精华区。

    接下来嘛,打算译一下dselect的官文文档,希望它是你们所期待的。:)


    展开全文
  • debian apt-get 目录

    2020-03-15 19:17:13
    复制这个目录下的文件,到新装的电脑上,可以快速跟新 cd /var/cache/apt/archives/
  • debian8中使用apt-get install安装软件包时发生错误,具体错误如下 ~# apt-get install minicom Reading package lists... Done Building dependency tree Reading state information... Done You might want ...
  • debian apt-get 国内常用 镜像源

    千次阅读 2020-04-15 20:47:52
    一般情况下,修改/etc/apt/sources.list文件,将Debian的默认源地址改成新的地址即可,比如将http://deb.debian.org改成https://mirrors.163.com,可使用以下命令: sed-i"s@...
  • 准备文件: debian-9.8.0-amd64-DVD-1.iso debian-9.8.0-amd64-DVD-2.iso debian-9.8.0-amd64-DVD-3.iso ...root@debian:~# mount -t iso9660 -o loop /debian/debian-9.8.0-amd64-DVD-1.iso /mnt/debian1...
  • debian apt source

    2011-01-05 21:50:00
    1.由于没有网络,所以出次下策,下载了全部的debian镜像文件,我下载的dvd镜像,分别为 debian-507-i386-DVD-1.iso debian-507-i386-DVD-2.iso debian-507-i386-DVD-3.iso debian-507-i386-DVD-4.iso ...
  • debian apt /etc/apt/sources.list

    千次阅读 2016-03-22 11:45:27
    change /etc/apt/sources.list vi /etc/apt/sources.list # # deb cdrom:[Debian GNU/Linux 8.3.0 _Jessie_ - Official amd64 xfce-CD Binary-1 20160123-19:00]/ jessie main deb cdrom:[Debian GNU/Linux 8.
  • debian apt-spy

    2012-02-26 22:09:51
    debian上的apt-get是最快的软件安装方式,不过要用好apt-get,首先得需要找到最快的源,这样安装软件的时候才能获得好的速度,用起来才能得心应手。 有的源在用了一段以后,就会失效,这个时候,你又需要去网上寻找...
  • Debian apt-get详解

    千次阅读 2015-11-27 19:04:58
    apt-get install package   安装包   apt-get install package - - reinstall   重新安装包   apt-get -f install   强制安装?#"-f = --fix-missing"当是修复安装吧...   apt-get remove package...
  • Debian APT HOWTO.pdf

    2008-11-04 14:36:17
    我在后面私自加了两篇文章:《APT and Dpkg 快速参考表》、《Debian的软件包管家: dselect用法小结》。希望对Debian初学 者有用。(当然我也是初学者!!) 第一章 导言 最初只有.tar.gz 的打包文件,用户必须编译每...
  • Debian apt-get用法

    千次阅读 2012-10-26 12:20:16
    Debian 在同一个版本编号下,依套件成熟度又分 stable、testing、unstable。  若我们现在用的是 Debina 3.0r2 stable, apt-get upgrade 就可以升级for stable 的软件, apt-get dist-upgrade 则可
  • debian apt

    千次阅读 2006-10-30 16:52:00
    几个速度比较快的apt源 教科网 中科大deb http://debian.ustc.edu.cn/debian testing main non-free contrib deb-src http://debian.ustc.edu.cn/debian
  • DEBIAN APT问题

    2008-07-09 16:02:00
    经常遇到apt-get update时merge问题,以前改了一下APT::Cache-Limit ,能正常过去,前几天,又遇到了这个问题.照样修改APT::Cache-Limit,还是不行,后来试着把源去掉一个,竟然能过去了.估计我的源冲突?一个cn99的,一个...
  • 如何使用Debian APT

    2012-11-03 17:57:59
     最初只有.tar.gz的打包文件,用户...用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次
  • debian apt-get 更新源文件格式说明

    千次阅读 2017-11-06 20:23:41
    在安装完debian操作系统之后大家做的第一件事大概就是修改source.list(路径:/etc/apt/sources.list)文件了吧,否则你是无法在线更新软件的,那么source.list文件中的各个配置项的具体含义你搞懂了么?下面就以我...
  • 文章目录0、安装1、安装软件源拓展添加GPG安装apt-transport-https添加sury软件源2、安装PHP安装PHP7.1:安装PHP7.0:安装...适用系统:Debian 9/Debian 8 1、安装软件源拓展 Sury官方默认源:https://packages.sury...
  • Debian APT How To

    千次阅读 2008-01-04 11:55:00
    概要本文档的写作目的是帮助用户了解Debian包管理工具——APT的工作原理,我们的目标是简化Debian新用户的生活以及为那些希望深入了解系统管理的人提供帮助。它也是为Debian项目组而作的,以帮助改善其为发行版提供...
  • 这里弄个简单的流程给大家吧,LNAMP 首先替换该死的源…… vi/etc/apt/sources.list 然后替换成下列 deb http://ftp.us.debian.org/debian lenny main contrib non-free deb http://ftp.debian.o...
  • Debian apt-get 用法

    千次阅读 2010-03-18 20:55:00
    需要用到sudo,”packgeame”和”string”替换成你想要安装或者查找的程序apt-get update —— 在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件包...
  • debian上的apt-get是最快的软件安装方式,不过要用好apt-get,首先得需要找到最快的源,这样安装软件的时候才能获得好的速度,用起来才能得心应手。 有的源在用了一段以后,就会失效,这个时候,你又需要去网上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,944
精华内容 7,177
关键字:

debianapt