ubuntu package management system is derived from the same system from Debian GNU/linux distribution.它采用了debian的包管理设计和源。它的主要职责是管理package的依赖,不管是我们安装,还是更新,卸载安装包都会非常方便。
dpkg
dpkg是一款基于Debian系统的包管理器。它能进行包的安装,删除和构建,但是和其他包管理系统不同的是,它不能自动下载安装包,由于不能自动下载,它也无法处理他们的依赖。
但是它对于本地下载或者安装的包能方便的分析。
- 列出所有的安装包: dpkg -l
- 针对某个包,列出所有的安装文件:dpkg -L package_name
- 如果想知道一个文件是安装哪个包生成的:dpkg -S file_name
- 安装本地 .deb文件:sudo dpkg -i xx.deb
- 删除安装了的包:sudo dpkg -r package_name
Apt-Get
APT(Ubuntu's Advanced Packaging Tool)通过apt-get命令可以完成安装软件,更新软件,更新升级包列表,甚至整个ubuntu系统。它和dpkg不同,能自动处理依赖,但是无法分析安装包。如果出现问题,可以查看它的日志文件/var/log/dpkg.log
- 安装包:sudo apt-get install package_name
- 删除包:sudo apt-get remove package_name1 package_name2 #如果要删除后期的配置文件,添加--purge
- 更新包索引,更新基于/etc/apt/sources.list文件和/etc/apt/sources.list.d目录:sudo apt-get update
- 升级包:sudo apt-get upgrade
查看source list中package的version
- sudo apt-cache madison ^nginx
- sudo apt-get install nginx=1.9*
- dpkg -l 'nginx*' | grep ^i
系统升级
本来apt-get dist-upgrade也能升级的,但是do-release-upgrade能自动处理版本的配置兼容,所有推荐用do-release-upgrade。
- 检查是否有新的系统版本:do-release-upgrade -c #如果处于预览版时需要加-d
- 升级:do-release-upgrade
Configuration
APT系统仓库的配置储存在 /etc/apt/sources.list文件和/etc/apt/sources.list.d目录中。下面是一些可靠的仓库源。
常用命令
# apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
# apt-get install packagename——安装一个新软件包(参见下文的aptitude)
# apt-get remove packagename——卸载一个已安装的软件包(保留配置文件)
# apt-get --purge remove packagename——卸载一个已安装的软件包(删除配置文件)
# dpkg --force-all --purge packagename 有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险。
# apt-get autoclean apt会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
# apt-get clean 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
# apt-get upgrade——更新所有已安装的软件包
# apt-get dist-upgrade——将系统升级到新版本
# apt-cache search string——在软件包列表中搜索字符串
# dpkg -l package-name-pattern——列出所有与模式相匹配的软件包。如果您不知道软件包的全名,您可以使用“*package-name-pattern*”。
# aptitude——详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于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 update 系统软件包更新
参考
- The InstallingSoftware Ubuntu wiki page has more information.
- For more dpkg details see the dpkg man page.
- The APT HOWTO and apt-get man page contain useful information regarding apt-get usage.
- See the aptitude man page for more aptitude options.
- The Adding Repositories HOWTO (Ubuntu Wiki) page contains more details on adding repositories.
网友评论