dpkg
SYNOPSIS
dpkg [option...] action
EXAMPLE
1、查询相关
dpkg -l 查询所有已安装的deb软件包(=rpm -qa),语法中的action这里指'-l'。dpkg -l 类似于dpkg-query --list [软件包包名(支持通配符)],也类似于apt list [软件包包名(支持通配符)]
dpkg -l 'vi' 查询vi相关的已安装的软件包(类似rpm -q '软件包包名')
dpkg -s vim-common 查看指定软件包的状态,是否安装,包版本,包描述...(=rpm -qi '软件包包名')
dpkg -L apache2 列出已安装软件包相关文件 (=rpm -ql '软件包包名')
dpkg -S /etc/apache2/apache2.conf 查看指定文件由哪个软件包提供(=rpm -qf 文件名)
apt-cache show '软件包包名' 查看安装的或未安装且可用的软件包
2、安装deb包(以emacs为例)
dpkg -i '软件包名' 安装*.deb包。安装之前需要查询一下网络仓库中是否有可用的deb包(apt-cache show emacs);如果有,可通过 apt-get download 'emacs'下载到_apt用户具有写入权限的目录,之后运行dpkg -i emacs即可安装;安装过程大多被依赖关系不满足cause失败,则可通过apt-get -f install来解决依赖关系。可参考:https://jingyan.baidu.com/article/fc07f9894a913212ffe519be.html
3、卸载
apt
update
从configured source(/etc/apt/source.list)中下载可更新的软件包信息,执行apt update之后可结合apt list --upgradable可查看所有可更新的软件包信息
upgrade
安装可升级的所有软件包。通过先执行apt update一下,得到可升级软件包列表后再执行apt upgrade。注意:已经安装过的包不会被删除,另,如果一个软件包的升级依赖于一个已删除的软件包,升级不会执行。
full-upgrade
调用upgrade,即升级软件包。会删除已经安装过的包。
install, remove, purge
安装,卸载,清除。remove时为了避免你的误卸载,会保留你关于软件包修改过的文件(便于你重新安装回来继续使用相关文文件--多是配置文件和依赖包),如果你想连这些文件也干掉,使用purge。
autoremove
卸载为满足依赖关系而安装的依赖包。具体指那些曾经被某软件包所依赖,但现在不被任何包依赖了的包。例如,我们用apt remove packagename卸载了packagename,但是它依赖的包还留在系统中,这时我们可以用命令apt autoremove来卸载这些依赖包。
search
搜索给定regexp匹配的可用软件包并显示出来。
show
Show information about the given package(s) including its dependencies, installation and download size, sources the package is available from, the description of the packages content and much more. It can e.g. be helpful to look at this information before allowing apt(8) to remove a package or while searching for new packages to install.
list
类似dpkg-l ,也类似dpkg-query --list的用法
edit-sources
编辑/etc/apt/sources.list,如果你忘记了这个文件名,用sudo edit-sources也可以打开编辑
使用apt过程中遇到的问题:
1、报错1:E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
报错2:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
处理过程大致如下:
1)找到使用apt或dpkg的程序,kill掉
2)如果1)没能解决问题,删除相应锁文件
最后,来感受一下三种查询软件包有没有安装的命令输出情况:
https://www.debian.org/doc/manuals/apt-howto/index.en.html