当前位置: 首页 > news >正文

【linux系统】apt-get命令解析

转载:http://blog.csdn.net/u011014707/article/details/42459429

        1) 常用的APT命令参数

                apt-cache search package        搜索包

                apt-cache show package        获取包的相关信息,如说明、大小、版本等

                sudo apt-get install package        下载 以及所有倚赖的安装包同时进行包裹的安装或升级,如果某个包裹被设置了 hold (停止标志,被搁在一边不会被升级)。

                sudo apt-get install package - - reinstall        重新安装包

                sudo apt-get -f install        修复安装"-f = ——fix-missing"

                sudo apt-get remove package        删除包

                sudo apt-get remove package - - purge        删除包,包括删除配置文件等,--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。

                sudo apt-get update        更新源

                sudo apt-get upgrade        更新已安装的包

                sudo apt-get dist-upgrade        升级系统

                sudo apt-get dselect-upgrade        使用 dselect 升级

                apt-cache depends package        了解使用依赖

                apt-cache rdepends package        是查看该包被哪些包依赖

                sudo apt-get build-dep package        安装相关的编译环境

                apt-get source package        下载该包的源代码

                sudo apt-get clean && sudo apt-get autoclean        清理无用的包

                sudo apt-get check         检查是否有损坏的依赖

                apt-cache showpkg        显示 许多细节,以及和其它包裹的关系。



        2)APT 的几个图形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。

                dselect

                console-apt

                aptitude

                gnome-apt

        3)Dpkg命令的用法

                dpkg -i        安装一个 Debian 包裹文件,如你手动下载的文件。

                dpkg -c       列出 的内容。

                dpkg -I       从中提取包裹信息。

                dpkg -r       移除一个已安装的包裹。

                dpkg -P      完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。

                dpkg -L      列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。

                dpkg -s        显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。

                dpkg-reconfigure        重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟)

                echo " hold" | dpkg --set-selections        设置 的状态为 hlod (命令行方式)

                dpkg --get-selections ""        取的 的当前状态 (命令行方式)

                示例: 大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法

                方法一:

                         Debian:~# echo "gaim hold" | dpkg --set-selections        然後用下面命令检查一下:
                         Debian:~# dpkg --get-selections "gaim"
                         gaim                                             hold        现在的状态标志是 hold,就不能被升级了。

                         如果想恢复怎么办呢?
                         Debian:~# echo "gaim install" | dpkg --set-selections
                         Debian:~# dpkg --get-selections "gaim"
                         gaim                                             install         这时状态标志又被重置为 install,可以继续升级了。

                         同志们会问,哪个这些状态标志都写在哪个文件中呢?  在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold。

                         有时你会发现有的软件状态标志是 purge,如事先已经安装了 amsn,然後把它卸了。apt-get remove --purge amsn   那么状态标志就从 install 变成 purge。

                方法二:

                         在/etc/apt 下手动建一个 preferences 文件

                         内容:
                         Package: gaim
                         Pin: version 0.58*
                         保存

                apt-get 获取软件包所依赖的配置文件 /etc/apt/sources.list 中的设置编写格式:deb [server-type] [address] [directories] [areas]

                示例:deb [url]http://mirror.peer1.NET/debian[/url] main contrib non-free

        4)使用

                apt-get install [package-name]

                就可以安装软件包了,这里不需要版本号,apt-get 会自动选择最新的。如果最新的已经被安装了,那么就不会安装了。如果希望安装一个较老的版本,可以选择版本,比如   apt-get install gimp=2.2,你也可以选择特定的发布版  apt-get install -t unstable gimp。

                对于安装源代码,使用source代替install就可以了,如果需要编译,使用 -b 选项,软件包会被下载到当前目录的。(aptitude 注:只有 root 可以 install,但是
谁都可以source 的。)

               执行之前,apt-get 会列出有多少软件包要被安装、升级,如果要被安装的软件不只是你所指出的软件包,那么它会问你是否继续。可以使用 -s 来看看运行的结果。

               apt-get 安装过程中,会显示安装的状况,有时 apt-get 会根据软件包的需求调用debconf 来让用户输入一些配置选项。这个配置一般都是一些选择,通常选择缺省情况都可以,也可以使用 --yes来声明,全部使用缺省选项,无需提问。(注:如果使用cron来每天自动更新系统,这个选项还是挺有用的,虽然总觉得有点害怕吧。)

               apt-get 的 upgrade 不会安装新的软件包,只会升级原有的软件包的版本,要升级整个系统,可能要安装新的软件包,这可以通过 dist-upgrade 完成,比如升级 s
table到testing,建议要升级 stable 到 unstable,先升级到 testing,以减小风险。

               使用  apt-get clean 可以释放被 apt-get 所占用的缓存空间也可以使用 autoclean 命令,这样仅仅删去已经不可能被再次下载的文件。也可以使用 remove 命令删除软件包。(注:如果要连配置文件也一起删除,需要使用 --purge 参数) 。

        5)出问题时的解决方法

                 -f 修复依赖关系

                 -m 忽略有问题的包 (这个不像是解决问题的态度哦)

                 -ignore-hold 忽略有问题的 hold

                 -s 报告软件包状态

                 当然,如果你的技巧和耐心不够的话,还是小心使用系统吧,正常的使用通常不会造成很多需要解决的问题。

相关文章:

  • [linux]资料收纳
  • 【linux系统】Ubuntu根目录下各文件夹的功能详细介绍
  • caffe--安装心得
  • R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记
  • 【深度学习:CNN】GoogLeNet (1)
  • 【深度学习:CNN】GoogLeNet系列解读(1)
  • 工作半年
  • 【Python-Numpy】NumPy的详细教程
  • 【Python教程】Python快速教程
  • 【Python教程】python之路
  • 【深度学习:CNN】Dropout解析(1)
  • 【深度学习:CNN】Dropout解析(2)
  • 【深度学习:CNN】Batch Normalization解析(1)
  • 【深度学习:CNN】Batch Normalization解析(2)-- caffe中batch_norm层代码详细注解
  • 【深度学习:CNN】Batch Normalization解析(3)
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CSS居中完全指南——构建CSS居中决策树
  • Flannel解读
  • HTTP那些事
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Js基础知识(一) - 变量
  • js正则,这点儿就够用了
  • Lsb图片隐写
  • PHP变量
  • 当SetTimeout遇到了字符串
  • 电商搜索引擎的架构设计和性能优化
  • 给初学者:JavaScript 中数组操作注意点
  • 回流、重绘及其优化
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 理清楚Vue的结构
  • 免费小说阅读小程序
  • 面试遇到的一些题
  • 前端面试题总结
  • 找一份好的前端工作,起点很重要
  • 最简单的无缝轮播
  • Python 之网络式编程
  • 如何用纯 CSS 创作一个货车 loader
  • ​第20课 在Android Native开发中加入新的C++类
  • #if和#ifdef区别
  • #pragma multi_compile #pragma shader_feature
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (1)(1.11) SiK Radio v2(一)
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (4)(4.6) Triducer
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)构建dubbo分布式平台-平台功能导图
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)RocketMQ初步认识
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 4.0中的泛型协变和反变