概述

常用的包管理包含三类工具:dpkg、apt和aptitude。1

dpkg 主要是对本地的软件包进行管理,本地软件包包括已经在本地安装的软件包和已经下载但还没有安装的 deb 文件,不解决依赖关系。

  • apt 包含了很多工具,apt-get 主要负责软件包的在线安装与升级,低层对 deb 包的处理还是用的 dpkg 解决依赖关系;
  • apt-cache 主要用来查询软件包的状态和依赖关系;apt-file 主要负责查询软件包名称和软件包包含的文件(值得注意的是它要自己同步);apt-cross 主要负责为交叉编译的软件包的安装与编译等。apt 还包含很多工具,如 apt-offline 可以离线安装软件包,apt-build 可以简化源码编译等等,有兴趣可以学习一下 apt 开头软件包。用aptitude search ~n^apt命令(~n 意思是搜索软件包名,^ 是匹配最前面 )可以得到所有以 apt 开头的软件包。
  • aptitude 是更强大的安装工具,有两种基本的使用方法,一种是文本界面,另一种是命令行,这里只讨论命令行操作。

查找软件包

dpkg

dpkg --get-selections pattern #查找软件包名称包含 pattern 的软件包
#可以在后面用 grep install/deinstall 来选择是否已经被 remove 的包(曾经安装过了的) dpkg -I package_name.deb #参数是大写i,查找已经下载但末安装的 package_name.deb 软件包的信息
dpkg -l package #参数是小写L,查找已经安装软件包 package 的信息,精简 dpkg -c package_name.deb #查找已经下载但末安装的 package.deb 软件包包含哪些文件
dpkg -L package #查找已经安装 package 软件包包含哪些文件 dpkg -S pattern #查找已经安装的文件 pattern 属于哪个软件包

apt

apt-cache search pattern #查找软件包名称和描述包含 pattern 的软件包 (可以是安装了也可以是没有安装),可以用参数来限制是否已经安装

apt-cache depends package #查找名称是 package 软件包的依赖关系
apt-cache rdepends package #查找哪些软件包依赖于名称是 package 软件包 apt-cache show pattern ##查找软件包pattern的信息 (可以是安装了也可以是没有安装)
apt-cache policy pattern #显示 pattern 软件包的策略(可以是安装了也可以是没有安装)
apt-cache showpkg pattern #显示pattern 软件包的其它信息(可以是安装了也可以是没有安装) apt-file search pattern #查找文件 pattern 属于哪个软件包(可以是安装了也可以是没有安装)
apt-file show pattern #查找 pattern 软件包(可以是安装了也可以是没有安装)包含哪些文件

aptitude

aptitude search ~i #查找已经安装的软件包
aptitude search ~c #查找已经被 remove 的软件包,还有配置文件存在
aptitude search ~npattern #查找软件包名称包含 pattern 的软件包 (可以是安装了也可以是没有安装)
aptitude search \!~i~npattern #查找还没有安装的软件包名字包含 pattern 的软件包。(前面的 ! 是取反的意思,反划线是 escape 符号) aptitude search ~R~npackage #查找名称是 package 软件包的依赖关系,可以同时看到是不是已经安装
aptitude search ~D~npackage #查找哪些软件包依赖于名称是 package 软件包 aptitude show ~npattern #显示名称是 pattern 软件包的信息(可以是安装了也可以是没有安装)

下载软件包

apt-get install package -d #下载软件包
aptitude download pattern #同上,不同的是下载的是符合 pattern 正则表达式的软件包

安装软件包

dpkg -i package_name.deb #安装本地软件包,不解决依赖关系
apt-get install package #在线安装软件包
aptitude install pattern #同上 apt-get install package --reinstall #重新安装软件包
apitude reinstall package #同上

移除软件包

dpkg -r package #删除软件包
apt-get remove package #同上
aptitude remove package #同上 dpkg -P #删除软件包及配置文件
apt-get remove package --purge #同上
apitude purge pattern #同上

自动移除软件包

apt-get autoremove #删除不再需要的软件包

注:aptitude 没有,它会自动解决这件事

清除下载的软件包

apt-get clean #清除 /var/cache/apt/archives 目录
aptitude clean #同上 apt-get autoclean #清除 /var/cache/apt/archives 目录,不过只清理过时的包
aptitude autoclean #同上

编译相关

apt-get source package #获取源码
apt-get build-dep package #解决编译源码 package 的依赖关系
aptitude build-dep pattern #解决编译源码 pattern 的依赖关系

平台相关

apt-cross --arch ARCH --show package 显示属于 ARCH 构架的 package 软件包信息
apt-cross --arch ARCH --get package #下载属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --install package #安装属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --remove package #移除属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --purge package #移除属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --update #升级属于 ARCH 构架的 package 软件包

注:慎重考虑要不要用这种方法来安装不同构架的软件包,这样会破坏系统。对于 amd64 的用户可能需要强制安装某些 i386 的包,千万不要把原来 amd64 本身的文件给 replace 了。最好只是安装一些 lib 到 /usr/lib32 目录下。同样地,可以用 apt-file 看某个其它构架的软件包包含哪些文件,或者是文件属于哪个包,不过记得最先要用 apt-file --architecture ARCH update 来升级 apt-file 的数据库,在 search 或 show 时也要指定 ARCH。

更新源

apt-get update #更新源
aptitude update #同上

更新系统

apt-get upgrade #更新已经安装的软件包
aptitude safe-upgrade #同上 apt-get dist-upgrade #升级系统
aptitude full-upgrade #同上

Ubuntu包管理工具整理的更多相关文章

  1. ubuntu更强大的包管理工具:aptitude

        aptitude 与 apt-get 一样,是 Debian 及其衍生系统ubuntu上 一个强大的包管理工具.与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些.apt ...

  2. 编码神器——Sublime Text 包管理工具及扩展大全

    Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...

  3. Ubuntu包管理命令 dpkg、apt和aptitude

    起初GNU/Linux系统中仅仅有.tar.gz.用户 必须自己编译他们想使用的每个程序.在Debian出现之後,人们觉得有必要在系统 中加入一种机 制用来管理 安装在计算机上的软件包.人们将这套系统 ...

  4. 怎样安装pip--python的包管理工具

    pip是python的包管理工具,使用它来安装python的模块很方便. pip支持的操作系统:Unix/Linux, OS X, and Windows. 支持的python版本号:2.6, 2.7 ...

  5. 编码神器 Sublime Text 包管理工具及扩展大全

    Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...

  6. Linux包管理工具分析

    转自:http://blog.csdn.net/carolzhang8406/article/details/14198219 在正式进入讨论之前,先贴几条非常有用的link: linux 发行版比较 ...

  7. linux--软件包管理工具

    linux平台软件包管理: RPM/DPKG 两大阵营简介 在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM ...

  8. Linux之包管理工具总结[RPM/DPKG]-[YUM/APT]

    0.关键词解释 RPM:Red Hat Package Manager(原名),RPM Package Manager(现名,递归缩写,类似于GNU的命名); 解释:RPM软件包管理器 YUM:Yel ...

  9. Linux RPM、YUM、APT包管理工具

    ⒈rpm包的管理 1)介绍 rpm是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,RPM是RedHat Package Manager(RedH ...

随机推荐

  1. 知识工程.Vs.软件构架,框架,设计模式.

    软件工程-原文链接:http://tech.it168.com/a2009/0902/672/000000672853.shtml 此文章详细给出了软件设计的基本概念和用途,文章链接:http://w ...

  2. VS命令行的使用

    CD 命令是改变当前路径,但是它不会改变当前盘符,改变盘符要输入 [盘符]: 命令. 如下: Setting environment for using Microsoft Visual Studio ...

  3. 02--C编程细节整理(一)

    用C语言比较多,这篇是平时攒下的.有些内容在工作后可能会很常见,但是不用容易忘,所以就写篇博客吧. 1.        printf的用法 %*可以用来跳过字符,可以用于未知缩进.像下面一样. for ...

  4. 【Vue+Node】解决axois请求数据跨域问题

    项目基于Vue前端+Node后台,启动两个服务,请求数据时,端口不一致造成跨域报错: (No 'Access-Control-Allow-Origin' header is present on th ...

  5. PART 5: INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB

    转自:http://justinrodenbostel.com/2014/05/30/part-5-integrating-spring-security-with-spring-boot-web/ ...

  6. [luogu3726 HNOI2017] 抛硬币 (拓展lucas)

    传送门 数学真的太优秀了Orz 数据真的太优秀了Orz 题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月, ...

  7. 学习笔记——ST表

    作用: 给定一个数列 ai O(nlogn) 预处理 O(1) 查询区间最值 实现: 定义f(i,j) 为ai开始,包括ai的连续2^j个元素的最值 下面以最大值为例: f(i,j)表示max{ak} ...

  8. vue v-for下图片src显示失败,404错误

  9. python第二周:数据类型、列表、字典

    1.模块初识: sys模块: import sys print(sys.path) #path打印环境变量--> ['F:\\python学习\\projects\\s14\\day2', 'F ...

  10. FreeMarker 整合 springmvc

    一.添加 jar 包 <dependency> <groupId>org.freemarker</groupId> <artifactId>freema ...