03--软件包管理工具 apt
APT
APT(the Advanced Packaging Tool)是Ubuntu 软件包管理系统的高级界面,由几个名字以“apt-”打头的程序组成。apt-get、apt-cache 和 apt-cdrom 是处理软件包的命令行工具。最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安装在机 器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次出现在 GNU/Linux系统中,稍后Red Hat才决定开发自己的“rpm”包管理系统。
很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装 软件包,当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件。Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具。
软件包管理是区分不同发行版的一大特征,如RedHat使用RPM软件包来管理软件,Debian使用Deb软件包来管理软件。apt-get 是 Debian的Deb软件包管理工具,它的最低底层还是调用dpkg包管理程序,通过apt-get工具可使我们很好地解决软件包的依赖关系,方便软件的安装和升级。它是Debian发行版的最大特色,一定要好好掌握。
APT命令
apt-cache search # ------(package 搜索包)
apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
sudo apt-get install # ------(package 安装包)
sudo apt-get install # -----(package - - reinstall 重新安装包)
sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安装吧...)
sudo apt-get remove #-----(package 删除包)
sudo apt-get remove --purge # ------(package 删除包,包括删除配置文件等)
sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等)
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-get
要使用好apt-get就要配置好一个名为sources.list的资源列表,资源列表指向Debian系统的软件库,apt-get会从该软件库安装各种软件包。sources.list文件位于/etc/apt目录下。具体命令如下:
(1) apt-get update :
(2) apt-get install package_name1 package_name2 package_name3 ... :
# apt-get --reinstall install package_name :通过--reinstall选项来重新安装;
# apt-get install package_name- :在需安装的软件包名后加一个减号会删除软件包;
# apt-get -d install package_name :只是下载软件,不解包和安装使用-d选项;
# apt-get install package_name --dry-run :使用--dry-run选项可使apt-get在安装软件包前进行测试;
(3) apt-get remove package_name1 package_name2 package_name3 ... :
删除软件包。如果你想删除没用的软件包,只要使用该命令即可。如果你想把该软件的配置文件也删除,可以用--purge选项,如:# apt-get --purge remove package_name;类似地,在删除软件包名后加一个加号会安装软件包,如:apt-get remove package_name+。
(4) apt-get source package_name1 package_name2 package_name3 :
下载软件包的的源码版本。
(5) apt-get upgrade package_name1 package_name2 package_name3 ... :
软件包升级功能是APT系统这么成功的主要原因。通过该命令,我们就可把软件升级到最新版本。在使用该命令前,最好先运行apt-get update命令,以更新软件包数据库。但该方案不是更新系统最好的方法,一些包会因为包依赖问题而保留(kept back)一些旧的软件包。Debian提供了一个更好的升级方案,就是用dis-upgrade。下面一节会详细介绍。
(6) apt-get dist-upgrade :
更新整个Debian系统。可从网络或本地更新整个系统。它会重新安排好包的依赖性。如果有些包由于一些原因实在不能更新,我们可通过以下命令查询原因:
# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
(7) apt-get clean :
删除下载了的软件包,当我们通过apt-get安装软件包时,APT会把软件包下载到本地/var/cache/apt/archives/目录。该命令会删除该文件夹内的除锁住外的所有软件包。
(8) apt-get autoclean :
删除已下载的旧版本的软件包。该命令类似于上面的命令,但它会有选择地删除旧版本的软件包。
(9) apt-get dselect-upgrade :
通过dselect的“建议”和“推荐”功能更新系统。dselect是Debian中一个功能强大的包管理工具。它可帮助用户选择软件包来安装,其中一个有用功能是它会建议和推荐安装其它相关软件包。我们可在APT中使用它这个功能。
(10) apt-get check :检查系统中已安装软件包的依赖性。
apt-cache
apt-cache是一个apt软件包管理工具,它可查询apt的二进制软件包缓存文件。通过它我们可查询软件包的状态信息。具体命令如下:
(1) apt-cache show package_name :显示软件的信息,包括版本号,安装状态和包依赖关系等。
(2) apt-cache search package_name :搜索软件包,可用正则表达式。
(3) apt-cache showpkg package_name :显示软件包的依赖关系信息。
(4) apt-cache policy package_name :显示软件包的安装状态和版本信息。
(5) apt-cache depends package_name :显示指定软件包所依赖的软件包。
(6) apt-cache rdepends package_name :显示软件包的反向依赖关系,即有何软件包依赖所指定的软件包。
apt-file
apt-file是一个软件包查找工具,可以查到软件包所含的文件和安装的位置。具体命令如下:
(1) apt-file update :更新软件包的文件库,第一次使用或apt-get update后都需运行一次。
(2) apt-file search file_name :查找该文件存在于哪些软件包中。
(3) apt-file list package_name :显示该软件包的文件。
apt-key
apt-key是Debian软件包的安全管理工具。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
具体命令如下:
(1) apt-key list :列出已保存在系统中key。
(2) apt-key add keyname :把下载的key添加到本地trusted数据库中。
(3) apt-key del keyname :从本地trusted数据库删除key。
(4) apt-key update :更新本地trusted数据库,删除过期没用的key。
更多详细内容请参考: Debian APT HOWTO
03--软件包管理工具 apt的更多相关文章
- 【one day one linux】linux下的软件包管理工具
Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...
- Mac OSX上的软件包管理工具,brew 即 Homebrew
brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...
- Mac Pro 安装 Homebrew 软件包管理工具
Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有 yum,Ubuntu有 apt-get. Mac os 中没有类似的东东,不过有第三方库支持 ...
- brew mac osx 上软件包管理工具
今天推荐 Mac OSX 下,方便高效的包管理工具 brew brew 的全名叫做 Homebrew 它的功能类似于 ubuntu 下同下 apt-get ,或者 Cent OS 下的 yum 等包管 ...
- RPM是RedHat Package Manager(RedHat软件包管理工具)
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种 ...
- mac os x 10.9.1 安装 Homebrew软件包管理工具及brew安装maven3.1.1
Mac OSX上的软件包管理工具,安装软件或者卸载软件. 打开终端输入(如不行,可参考homebrew官网): ruby -e "$(curl -fsSL https://raw.githu ...
- Mac安装软件包管理工具Homebrew
PS:最近开始学习groovy,打算去官网下载SDK Bundle,可是官网半天加载不出来,而且莫名其妙就是下载不下来,Folx一直提示 "无效的HTTP相应:禁止",可能是插件和 ...
- mac安装brew 软件包管理工具Homebrew
brew 全称Homebrew 是Mac OSX上的软件包管理工具 Homebrew 安装和卸载工具 只用一行命令就能完成 官方地址: http://brew.sh/index.html ...
- ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别
ubuntu 软件包管理工具 dpkg,apt-get,aptitude 区别 一:dpkg dpkg 是一种比较低层的软件包安装管理工具,在安装时,不会安装软件包的依赖关系:只能安装所要求的软件包: ...
随机推荐
- java获取当前日期的前一天,前一月和前一年
核心:使用Calendar的add(int field, int amount)方法 Calendar ca = Calendar.getInstance();//得到一个Calendar的实例 ca ...
- Coloring Flame Graphs: Code Hues
转自:http://www.brendangregg.com/blog/2017-07-30/coloring-flamegraphs-code-type.html I recently improv ...
- [Ynoi2011]D2T1
题目大意: 给定一个数列$a$,有以下几种询问: 1. 给定$x$,在序列末尾插入$x$.2. 给定$l,r$,输出$\sum\limits_{i=l}^r a_i$.3. 给定$x$,将数列中的所有 ...
- shell脚本中source无效
发现在shell里面执行source,提示找不到命令.所以,我取搜了一些资料,总结一下. 一. 脚本中,source找不到命令--------------是因为用了sh执行脚本,而debian系统的s ...
- Centos 7源码编译搭建Nginx
一.Nginx入门介绍 1. Nginx(engine x):[ˈendʒɪnks] 2. Nginx 是 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版 ...
- Docker创建Mysql容器并通过命令行连接到容器
拉取网易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 创建mysql5.6容器 1master+3个slave docker ...
- 【Zoj 4061】Magic Multiplication
[链接] 我是链接,点我呀:) [题意] [题解] /* for a[1] from 1~9 1*1=1 2*1=2 3*1=3 1*2=2 2*2=4 3*2=6 1*3=3 2*3=6 3*3=9 ...
- orcale 查询
修改日期显示形式: alter session set nls_date_formate='DD-MON-RR'; alter session set nls_date_formate='yyyy-M ...
- Yarn的工作流程
http://study.163.com/course/courseLearn.htm?courseId=1002887002#/learn/video?lessonId=1003346099& ...
- uva 10479(找规律+递归)
题意:有一个初始序列第一个数字是0. 规律是把前一次推出来的每个数字x.先接x个0,然后接x+1. 0 –> 1 –> 02 –> 1003 –> 02110004 那么这个序 ...