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