贡献者: addis
apt-show-versions 包1 包2 可以查看已安装包的版本
apt show 包 显示包的详细信息,包括依赖(可以是存在但没有安装的包)
apt policy 包 显示包的来源
apt-cache rdepends 包 显示它目前被谁依赖
apt remove 包 不会清除它依赖的包,但是会清除依赖它的包!
apt autoremove 清除没有被依赖的, 被自动安装的包, 比如 apt remove 了一个包以后,就用这个清干净.也可以 apt autoremove 包,相当于卸载包后再 autoremove.
aptitude 通常能提供更详细的信息
apt,aptitude 和 synaptic 都使用 dpkg 作为后端,所以它们不会冲突
aptitude 遇到冲突时会提供多种解决方案(卸载哪些包,安装哪些,升级哪些),手动选择合适的即可.这是解决 you have held broken packages 的常见办法.
/var/lib/apt/extended_states 文件储存了哪些包是自动安装的哪些是手动安装的
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
dpkg-query --show --showformat='${Package}\t${Status}\n' | tac | awk '/installed$/ {print $1}' | xargs apt-cache rdepends --installed | tac | awk '{ if (/^ /) ++deps; else if (!/:$/) { if (!deps) print; deps = 0 } }'.注意这里面有一些重要的系统包(包括 linux 内核)如果不是自己装的包要删除时要小心.
comm -23 <(aptitude search '~i !~M' -F '%p' | sed "s/ *$//" | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u) 参考这里.
apt --installed list 列出所有安装的包
apt/dpkg 安装时不会覆盖文件,而是会给出警告并停止安装.
apt install ... -y 可以自动全选 yes
apt install -f 可以修复依赖
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
apt upgrade 自动更新所有包,但并不删除已存在的包,apt dist-upgrade 或者等效的 apt full-upgrade 更激进,会删除已有的包,可能会更新内核,可能造成一些破坏.
apt download 包 可以不安装只下载某个包的 deb(但不会下载它的依赖!)
apt install 命令也是先下载所有需要的以及依赖的 deb 包然后再安装,这些 deb 包存在 /var/cache/apt/archives 目录中.
apt clean 和 apt autoclean 可以清除缓存(例如下载的 deb 安装包等,后者清的没那么干净)
apt update 显示 public key 的问题,就用
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517,其他系统替换成不同网址即可
sudo apt-clone clone --with-dpkg-repack 文件夹 可以把本机所有安装包备份到文件夹中的一个压缩文件.
apt-clone info 备份文件.gz 可以查看包的信息
sudo apt-clone restore 备份文件.gz 可以进行恢复(注意一定要相同架构相同 ubuntu 版本)
sudo apt install xxx.deb 安装
sudo apt-clone restore 备份文件.gz --destination 某文件夹 把包安装到某个文件夹(使用 chroot).
dpkg -l | grep -i 关键字 可以查找已安装的某个包
sudo dpkg -i 名字.deb 安装 deb 安装包,其中 名字 可以带 *.完了以后用 sudo apt install -fy 安装缺失的依赖包(dpkg 不自动安装依赖).
sudo apt install *.deb
sudo apt remove 包 或者 dpkg --remove 包 卸载,dpkg --purge 包 可以连配置文件一起卸载.
dpkg -S 文件 查看该文件是哪个包安装的.例如 dpkg -S /bin/gcc
dpkg -f 文件名.deb field名 查看 deb 的某个属性,如果省略 field名 则查看所有属性
.deb 包中的所有包,用 sudo dpkg -r $(dpkg -f 文件名.deb Package)(不支持 *)
dpkg-deb 用于操作 deb 安装包(Debian package archive)
dpkg-deb -I xxx.deb 查看信息
dpkg-deb -c xxx.deb 列出所有要安装的文件和路径.这和安装完以后用 dpkg -L 包名 列出的文件一样.
snap list 列出所有的安装包(注意 Ubuntu Software 中安装的未必都是 snap)
snap find 关键词 搜索包
snap install code --classic 安装 vscode
--classic,会出现如下错误 error: This revision of snap "code" was published using classic confinement and thus may perform arbitrary system changes outside of the security sandbox that snaps are usually confined to, which may put your system at risk. If you understand and want to proceed repeat the command including --classic.
snap version 查看版本
snap remove 删除包
snap run 软件名 运行某个软件,也可以直接 软件名 运行(在目录 /usr/snap/bin 下)
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利