分类: LINUX
2008-12-01 16:02:32
系统使用一个数据库来管理软件包,数据库跟踪哪些包安装了、哪些包没被安装、哪些包可以被安装。当用户要安装某程序时,apt使用这个数据库来决定哪些包需要被安装。
一个新的难题挡在了GNU/Linux的设计者面前。他们需要一个快速,实效性强,并且有效率的方式来安装这些安装包裹,并且希望它能够在升级时自
动而独立的配置这些安装包裹升级中的文件。在这里重申一下,Debian直接导致了APT的诞生,即 Advanced Packaging
Tool。 从那时起它就和rpm一起被使用在Conectiva中,同时它也被不少其他的分布式系统所采用。
怎样使用Debian的APT
所有的这些命令都需要sudo!
apt-get update - 在改变了/etc/apt/sources.list或者/etc/apt/preferences之后运行。你也应该定期的运行它以保证你的source list是最新的。
apt-get install packagename - 安装一个新的安装包裹(参见下面的aptitude行)
apt-get remove packagename - 移除一个已经安装了的安装包裹(运行后configfiles仍然会留下来)
apt-get --purge remove packagename - 移除一个已经安装了的安装包裹(运行后configfiles也会被删除)
apt-get upgrade - 更新所有已经安装了的安装包裹
apt-get dist-upgrade - 更新整个系统到一个更新的发行版本
apt-cache search string - 在一系列已知的安装包裹中找寻字符串
dpkg -l package-name-pattern - 列出匹配模式的安装包裹
aptitude - 详细的查看已经安装或者可以使用的安装包裹。 Aptitude能够使用和apt-get相类似的方式用在命令行中,但是只有一些命令可用-最常用的安装和移除命令。但是因为aptitude比起 apt-get来保留了更多的跟踪信息,它在安装和移除系统时拥有更好的表现。
apt-cache showpkg pkgs - 显示安装包裹的信息。
apt-cache dumpavail - 打印一个可用的安装包裹名单。
apt-cache show pkgs - 显示安装包裹的记录,和dpkg –print-avail功能相似。
apt-cache pkgnames - 快速列出每个在系统中的安装包裹。
dpkg -S file - 哪个已经安装的安装包裹包含这个文件。
dpkg -L package - 列出在这个包裹中所有文件。
apt-file search filename - 查找包含此文件名的安装包裹(不需要是已经安装的)。apt-file是一个包含自身的安装包裹。你必须先用apt-get install来安装,然后还需要运行apt-file update。如果apt-file search filename一次显示了过多的内容,使用apt-file search filename|grep –w filename(这样只会显示包含文件名字的内容)或者使用apt-file search filename|grep /bin/ 那些在固定文件夹中的文件,比如/bin或者/usr/bin,如果你查找一个特殊的执行文件的话,这会非常有帮助)。
apt-get autoclean - 定期运行这个命令来清除那些已经不在你的系统中的安装包裹中的.deb文件夹。你通过这个方式能够重新获得不少的磁盘空间。如果你狂热的对磁盘空间有需求 的话,apt-get clean是十分激进的,它甚至会移除那些现在已经安装了的安装包裹中的.deb文件。但是大部分的时间你不需要.debs,所以如果你为磁盘空间感到焦 头烂额,运行它还是很值得的。
deborphan和debfoster是查找可以被移除的没有什么用处的安装包裹的良好工具。
通过编辑/etc/apt/sources.list你能够调出一个不同的库。具体的方法是替换其中的’stable’为’unstable’(或 者其他什么文字)然后运行/apt-get update。但是这种方法是一种老方法,更新的办法是pinning(销连接)。下面是一个unstable配置文件的例子。
命令行是很有有效,不过打字太慢了,所以把你的命令变得更小巧吧。你最好把以下的内容输入*~/.bashrc*
alias acs='apt-cache search'
alias agu='sudo apt-get update'
alias agg='sudo apt-get upgrade'
alias agd='sudo apt-get dist-upgrade'
alias agi='sudo apt-get install'
alias agr='sudo apt-get remove'
但是看看上面有关aptitude的介绍,我们有理由使用alias agi='sudo aptitude install'来替代alias agi='sudo apt-get install'