Techyou labs
真正的爱应该超越生命的长度、心灵的宽度、 灵魂的深度
常用标签
您正在查看:标签 apt-get 下的文章

从 unstable/testing 进行升级时可能出现 升级, 第 2.3 节 中提到的软件包关联问题。多数情况下,是因为升级的软件包所需的新增的关联包没有安装。可使用如下方法解决:
     # aptitude dist-upgrade
如果这招无效,可以重复下面的方法至到问题解决:
     # aptitude -f upgrade        # 即使遇到错误也继续 upgrade
     ... 或
     # aptitude -f dist-upgrade   # 即使遇到错误也继续 dist-upgrade
一些的确存在问题的升级脚本会引起持续出错。最好的解决方法是检查该软件包的安装脚本 /var/lib/dpkg/info/packagename.{post-,pre-}{install,removal} 然后运行:
     # dpkg --configure -a    # 配置所有安装的软件包
如果脚本报告缺少配置文件,查看一下 /etc 中相关的配置文件。如果配置文件有 .dpkg-new 扩展名(或其它类似的扩展名),去掉(mv)它的扩展名。
从 unstable/testing 进行升级时可能出现软件包关联问题。可用这个方法智取:
     # aptitude -f install package # 重载坏关联
还可以用 equivs 包来解决此类问题。参阅 /usr/share/doc/equivs/README.Debian。
3.3.3 使用 dpkg 救助
如果你在使用 APT 的时候遇到死胡同了,那么可以从 Debian 的镜像站点下载软件包并使用 dpkg 来安装。如果你不能访问网络,可以在 /var/cache/apt/archives/ 中找到被缓存的软件包。
     # dpkg -i fetchmail_6.2.5-4_i386.deb
如果你用这种方法安装软件包,但是遇到了依赖问题安装失败了,并且你确实需要安装这个软件包。你可以用 dpkg 的 --ignore-depends,--force-depends 和其他参数来安装软件包。dpkg(8) 有更详细的介绍。
3.3.4 恢复软件包选择状态的数据
如果 /var/lib/dpkg/status 因为某种原因坏掉了,Debian 系统将会完全丢失软件包选择状态的数据。赶快到 /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$' | \
       grep -v '^debian$' | \
       awk '{print $1 " install"}' | \
       dpkg --set-selections
     # dselect --expert # 重新安装系统,如果需要的话去除一些选项
3.3.5 /var 崩溃之后如何恢复系统
/var 目录包含着定时更新的数据如 mail,它们很容易遭破坏。将目录放到别的分区可降低风险,如果最坏的事情发生了,可以通过重建 /var 目录来挽救 Debian 系统。
从相同或旧版本的最简 Debian 系统中取得 /var 目录的内容框架,例如 var.tar.gz,然后它放入受损系统的 root 目录,接着
     # cd /
     # mv var var-old      # 如果里面还有其他有用资料的话
     # tar xvzf var.tar.gz # 使用 Woody 框架文件
     # aptitude            # 或是用 dselect
上述步骤可使系统恢复工作。使用 恢复软件包选择状态的数据, 第 3.3.4 节中描述的技术加速软件包选择数据的恢复。([FIXME]:该过程需要更多的实践来检验)
3.3.6 为无法启动的系统安装软件包
使用 Debian 急救软盘 /CD 或从多启动 Linux 系统其它分区启动。将无法启动的系统挂载到 /target 并使用 dpkg 的 chroot 安装模式。
     # dpkg --root /target -i packagefile.deb
接下来就可以着手配置并解决问题。
如是只是由于 lilo 损坏而造系统无法启动,可使用标准 Debian 急救盘启动。假设你的 root 分区位于 /dev/hda12 且想使用 runlevel 3,在启动提示符输入:
     boot: rescue root=/dev/hda12 3
这样,你就可以使用软盘中内核启动系统,新系统的功能基本齐全。(可能丢失某些内核特性或模块)
3.3.7 如果 dpkg 命令出错怎么办
如果 dpkg 损坏就不能安装任何 .deb 文件。下面的操作可帮助你修复这种状况。(在第一行,你可将“links”替换成你喜欢的浏览器。)
     $ links http://http.us.debian.org/debian/pool/main/d/dpkg/
       ... 下载完好的 dpkg_version_arch.deb
     $ su
     password: *****
     # ar x dpkg_version_arch.deb
     # mv data.tar.gz /data.tar.gz
     # cd /
     # tar xzfv data.tar.gz
对 i386,亦可用 http://packages.debian.org/dpkg 作为 URL。

January 1, 2010

     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 (或者运行"dselect update") 来更新 /var/lib/dpkg/available。
在处理依赖关系上 apt-get 会自动下载安装依赖的软件包,但是不会处理所安装软件推荐的或者建议的软件包。
相反 aptitude 可以设置成安装所安装软件推荐的或者建议的软件包。
dselect 给使用者列出所安装软件推荐或建议的软件包,可以进行单独选择。
3.1.2 方便的工具
     dpkg-reconfigure  - 重新配置已安装的软件包
                (如果它是使用 debconf 进行配置的)
     dpkg-source       - 管理源码包
     dpkg-buildpackage - 自动生成包文件
     apt-cache         - 在本地缓冲区检查包文件