Ubuntu与Debian安装、升级和卸载软件
APT负责从已经配置的软件仓库安装和维护deb包。本文以 tree 这个目录查看工具演示流程,实际业务软件要先核对兼容版本、依赖与恢复方法。命令在服务器执行;安装会改变系统,先阅读变更清单再确认,示例不使用自动回答yes的参数。
更新索引,再确认将安装什么
sudo apt update
apt policy tree
apt show tree
apt-get -s install tree
apt update 更新可用软件索引,不会把所有已安装软件直接升级。若出现下载失败或签名错误,先处理具体错误,不能仅看最后一句输出就继续。apt policy 中的Installed表示已装版本,Candidate表示候选版本;模拟安装的 Inst、Remv 等行用于预览安装、升级或移除影响。
安装并检查实际命令
sudo apt install tree
dpkg-query -W tree
command -v tree
tree --version
安装过程中阅读“将新安装、升级或删除”的列表及磁盘需求。结果应同时满足:包查询显示预期版本、命令路径存在、程序能输出版本或完成最小功能。包已安装却提示命令不存在时,先核对真实可执行文件名与PATH;服务类软件还需另查对应服务状态和实际业务,不能把包安装成功当成部署完成。
升级与卸载也先看计划
apt list --upgradable
apt-get -s install --only-upgrade tree
sudo apt install --only-upgrade tree
apt-get -s remove tree
sudo apt remove tree
这里演示单个包升级,不是发行版大版本升级。数据库、PHP、内核和运行环境更新可能影响程序或要求重启,应在维护窗口按官方升级说明执行。remove 通常保留包的配置文件;purge 还会清除其包管理配置,执行前确认是否需要保留。不要看到建议就立即执行批量autoremove或purge。
常见结果与处理
| 现象 | 处理方向 |
|---|---|
| Unable to locate package | 确认包名、系统版本、索引更新结果和启用仓库 |
| Could not get lock | 查看是否有另一个APT或自动更新任务在运行,等待或按任务实际状态处理;不删除锁文件碰运气 |
| 依赖冲突或计划删除关键包 | 取消确认,记录完整计划,核对混用的软件源及版本 |
| 提示需要重启 | 先确认业务窗口与恢复入口,再安排重启并验证业务 |
操作后记录包名、变更前后版本、来源及时间。重要业务更新前的配置和数据保护不能由APT自动代替;回退也不保证只靠重新安装旧版本即可完成,需以软件自身的兼容说明与可用备份为依据。