刚更新Ubuntu18.04系统,做一些准备工作。
更新软件包什么,很正常的。顺便对这类命令做个整理,方便以后查用。

首先报上一波,我开发的运行环境

运行环境 Runtime environment

1
2
操作系统 : Ubuntu18.04LTS
虚拟机: VMware WorkStation14

背景

刚更新Ubuntu18.04系统,做一些准备工作。
更新软件包什么,很正常的。顺便对这类命令做个整理,方便以后查用。
虽然通过搜索引擎能解决问题,但是有时候突然想找某一句印象中的命令,反而一下找不到。
干脆就做个整合好了。

Ubuntu软件升级命令

最常用命令

sudo apt-get update –更新软件源

sudo apt-get upgrade -更新已经安装的软件

非root用户更新

每执行apt-get的命令,都需要有管理员权限。非root用户本身是没有这种权限的,所以在执行此类命令时,需要在命令之前加”sudo”。

sudo: linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。

apt-get: apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统

Ubuntu Linux软件包管理工具(APT)

apt-cache search # ——(package 搜索包)

apt-cache show #——(package 获取包的相关信息,如说明、大小、版本等)

sudo apt-get install # ——(package 安装包)

sudo apt-get install # —–(package - - reinstall 重新安装包)

sudo apt-get -f install # —–(强制安装?#”-f = –fix-missing”当是修复安装吧…)

sudo apt-get remove #—–(package 删除包)

sudo apt-get remove - - purge # ——(package 删除包,包括删除配置文件等)

sudo apt-get autoremove –purge # —-(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))

sudo apt-get update #——更新源

sudo apt-get upgrade #——更新已安装的包

sudo apt-get dist-upgrade # ———升级系统

sudo apt-get dselect-upgrade #——使用 dselect 升级

apt-cache depends #——-(package 了解使用依赖)

apt-cache rdepends # ——(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧…)

sudo apt-get build-dep # ——(package 安装相关的编译环境)

apt-get source #——(package 下载该包的源代码)

sudo apt-get clean && sudo apt-get autoclean # ——–清理下载文件的存档 && 只清理过时的包

sudo apt-get check #——-检查是否有损坏的依赖

apt-get 安装类命令的用法

apt-get install
下载 以及所有倚赖的包裹,同时进行包裹的安装或升级.如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级).更多 hold 细节请看下面.

apt-get remove [–purge]
移除 以及任何倚赖这个包裹的其它包裹.–purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P .

apt-get update
升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了/etc/apt/sources.list 后,必须执行.

apt-get upgrade [-u]
升级所以已经安装的包裹为最新可用版本.不会安装新的或移除老的包裹.如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为 hold .apt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思).请看下文如何手动设置包裹为 hold .我建议同时使用 ‘-u’ 选项,因为这样你就能看到哪些包裹将会被升级.

apt-get dist-upgrade [-u]
和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系.因此具有一定的危险性.

apt-cache search
搜索满足 的包裹和描述.

apt-cache show
显示 的完整的描述.

apt-cache showpkg
显示 许多细节,以及和其它包裹的关系.

dselect, console-apt, aptitude, gnome-apt,是APT 的几个图形前端(其中一些在使用前得先安装).这里 dselect 无疑是最强大的,也是最古老,最难驾驭.

注意:要用apt-get这种方式安装LAMP时,最好先运行下面在命令升级自己的系统这样是为了更新源,而如果你找的源不好,可能安装LMAP失败。

apt-get 卸载类命令的用法

apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说:

apt-get purge / apt-get –purge remove
删除已安装包(不保留配置文件)。
如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文件

apt-get autoremove
删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。

apt-get remove
删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。

apt-get autoclean
APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。

apt-get clean
使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。

那么如何彻底卸载软件呢?

具体来说可以运行如下命令:

删除软件及其配置文件
apt-get –purge remove

删除没用的依赖包
apt-get autoremove

此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理:
dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P

总结

关于Ubuntu软件包更新、安装、卸载等管理命令,大部分都整理到这里。清爽的Ubuntu系统,强迫症福音呐!