Ubuntu包管理工具整理
概述
常用的包管理包含三类工具: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包管理工具整理的更多相关文章
- ubuntu更强大的包管理工具:aptitude
aptitude 与 apt-get 一样,是 Debian 及其衍生系统ubuntu上 一个强大的包管理工具.与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些.apt ...
- 编码神器——Sublime Text 包管理工具及扩展大全
Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...
- Ubuntu包管理命令 dpkg、apt和aptitude
起初GNU/Linux系统中仅仅有.tar.gz.用户 必须自己编译他们想使用的每个程序.在Debian出现之後,人们觉得有必要在系统 中加入一种机 制用来管理 安装在计算机上的软件包.人们将这套系统 ...
- 怎样安装pip--python的包管理工具
pip是python的包管理工具,使用它来安装python的模块很方便. pip支持的操作系统:Unix/Linux, OS X, and Windows. 支持的python版本号:2.6, 2.7 ...
- 编码神器 Sublime Text 包管理工具及扩展大全
Sublime Text 是程序员们公认的编码神奇,拥有漂亮的用户界面和强大的功能,例如代码缩略图,多重选择,快捷命令等.还可自定义键绑定,菜单和工具栏.Sublime Text 的主要功能包括:拼写 ...
- Linux包管理工具分析
转自:http://blog.csdn.net/carolzhang8406/article/details/14198219 在正式进入讨论之前,先贴几条非常有用的link: linux 发行版比较 ...
- linux--软件包管理工具
linux平台软件包管理: RPM/DPKG 两大阵营简介 在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM ...
- Linux之包管理工具总结[RPM/DPKG]-[YUM/APT]
0.关键词解释 RPM:Red Hat Package Manager(原名),RPM Package Manager(现名,递归缩写,类似于GNU的命名); 解释:RPM软件包管理器 YUM:Yel ...
- Linux RPM、YUM、APT包管理工具
⒈rpm包的管理 1)介绍 rpm是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,RPM是RedHat Package Manager(RedH ...
随机推荐
- UVa340(Master-Mind Hints)未完成
#include<stdio.h> int main() { int num,a[100],i,j,b[100]; while(scanf("%d",&num) ...
- vue组件之间互相传值:父传子,子传父
今看到一篇很不错的vue组件传值文章,便于理解,遂做笔记- 一般页面的视图App.vue应为这样 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.v ...
- php libevent扩展的简单用例
php libevent扩展具有很强大的功能.以下摘自百度百科: Libevent 是一个用C语言编写的.轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能; ...
- 用shell编写一个三角形图案
第一种方法 #!/bin/bash read -p "请输入层数: " n for (( i=1; i<=$n;i++ ))do for (( j=n; j>=i; ...
- prevent阻止标签默认行为&stop阻止事件冒泡
<form id="vm" v-on:submit.prevent="register"> 1.prevent是preventDefault,阻止标 ...
- Codeforces Round #447 (Div. 2)E. Ralph and Mushrooms
Ralph is going to collect mushrooms in the Mushroom Forest. There are m directed paths connecting n ...
- N3-2 - 树 - binary-tree-level-order-traversal-ii
题目描述: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, fro ...
- P1423 小玉在游泳
... 题目描述 小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦.已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%.现在小玉想知 ...
- 利用redis实现elasticsearch入库去重
背景 公司有一个业务场景,数据库的修改需要同步到Elasticsearch里,但是该场景的修改频率有点高,经常会出现一条记录短时间内多次的变化,如果每次变化都作为一次ES同步任务,那ES肯定是受不住的 ...
- CAD教程--嵌入表格
1.第一步,打开excel复制一下表格 2.第二步,打开CAD,选择编辑->选择性粘贴->autocad图元,左键点击一下图就行了,找找图,放大到适合的比例就行了.