一. apt & dpkg 异同点
1. apt 与 dpkg 均为 ubuntu 下面的包管理工具。
2. dpkg 仅用于安装本地的软件包,安装时不会安装依赖包,不解决依赖问题。
sudo dpkg -i <package_name>.deb
3. apt 默认会从远程仓库搜索包的名字,下载并安装,安装时会自动安装依赖包,并解决依赖问题。
sudo apt install <package_name>
如果需要使用apt 从本地安装,需要在包名前指定路径,否则只从远程仓库查找。
sudo apt install <path>/<package_name>.deb
二. dpkg 常用命令
1. 概念
dpkg是一个debian包管理工具。能够对包进行安装、卸载、获取信息等操作。
2. 用法
查看指定包的版本,架构和描述信息
dpkg -l <package_name>
或
dpkg --list <package_name>
列出所有已安装的包,和其版本,架构和描述信息
dpkg -l
dpkg --list相当于
apt list --installed
查看包的安装路径
dpkg -L <package_name>
查看包是否安装
dpkg -s <package_name>
或
dpkg --status <package_name>
查找指定文件所属的包名,即这个文件是由哪个包安装产生的
dpkg -S <file_name>
或
dpkg --search <file_name>
安装
dpkg -i package_file
dpkg --install package_file
解包(该命令仅对“package_file“进行解包操作,不会执行包配置工作)
dpkg --unpack package_file
配置包:
dpkg --configure package
卸载包:
dpkg -r package
dpkg --remove package
该命令删除包,但保留配置文件。
dpkg -P package
dpkg --purge package
该命令删除包,且删除配置文件。
获取、设置、清除包的选择状态
dpkg --get-selections [package]
输出到标准输出,可以使用管道或重定向。
dpkg --set-selections
从标准输入获取,可以使用管道或重定向。
dpkg --clear-selections
将所有包都标记为卸载。
其他选项:
-B
--auto-deconfigure
卸载包时,自动把依赖于被卸载的包的所有包也卸载掉。
--no-act
--dry-run
--simulate
仅用于测试,得到输出,不对系统进行任何修改。
还有一些选项指定的任务实际上是交给 dpkg-deb、dpkg-query完成的:
dpkg-deb:
-b | --build
-c | --contents
-e | --control
-x | -extract
-f | --field
-I | --info
-X | --vextract
dpkg-query
-l | --list
-s | --status
-L | --listfiles
-S | --search
-p | --print-avail
三. apt 常用命令
1. 命令
apt update
更新软件源中的所有软件列表。因为更新数据库等操作需要管理员的权限,所以在apt命令前要加上sudo命令取得权限。
运行apt update命令会返回三种状态:一是命中,一是获取,一是忽略。
命中表示连接上网站,包的信息没有改变。
获取表示有更新并且下载。
忽略表示无更新或更新无关紧要无需更新。
在命令显示的最后,会提示你有多少软件包可以升级,你可以根据自身的需求立即或稍后进行升级。
apt list --upgradeable:显示可升级的软件包。
apt list --installed:显示已安装的软件包。
执行完update命令后,就可以使用apt upgrade来升级软件包了。执行命令后系统会提示有几个软件需要升级。在得到你的同意后,系统即开始自动下载安装软件包。
安装指定软件。此命令需管理员权限。如果你对名字并不十分清楚,你可以输入软件名的一部分,系统会给出名字相近的软件包名的提示。在老版本中安装程序需要使用
sudo apt-get install <软件包名>
,现在新版本中已建议直接使用apt替代apt-get命令。sudo apt install -f
使用此命令可修复依赖关系,假如有软件因依赖关系不满足而无法安装,就可以运行此命令自动修复安装程序包所依赖的包。特别是在使用dpkg命令安装deb软件包时出现依赖问题常需要此命令来修复。
apt remove <软件包名>和apt autoremove
apt remove <软件包名>用来卸载指定软件。
apt autoremove用来自动清理不再使用的依赖和库文件。
显示软件包具体信息。例如:版本号,安装大小,依赖关系,bug报告等等。
2. 附件