通常 Linux 上的软件安装主要有四种方式:
- 在线安装
 - 从磁盘安装deb软件包
 - 从二进制软件包安装
 - 从源代码编译安装
 
apt 包管理工具介绍,APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。
APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。这个包管理器包含以 
apt- 开头的多个工具,如 apt-get apt-cache apt-cdrom 等,在Debian系列的发行版中使用。当你在执行安装操作时,首先apt-get 工具会在本地的一个数据库中搜索关于 w3m 软件的相关信息,并根据这些信息在相关的服务器上下载软件安装,这里大家可能会一个疑问:既然是在线安装软件,为啥会在本地的数据库中搜索?要解释这个问题就得提到几个名词了:
- 软件源镜像服务器
 - 软件源
 
我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get update 命令来保持本地的软件包列表是最新的(有时你也需要手动执行这个操作,比如更换了软件源),而这个表里会有软件依赖信息的记录,
对于软件依赖,我举个例子:我们安装 w3m 软件的时候,而这个软件需要 libgc1c2 这个软件包才能正常工作,这个时候 apt-get 在安装软件的时候会一并替我们安装了,以保证 w3m 能正常的工作。
apt-get 是用于处理 apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:
| 工具 | 说明 | 
|---|---|
install | 
其后加上软件包名,用于安装一个软件包 | 
update | 
从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表 | 
upgrade | 
升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update | 
dist-upgrade | 
解决依赖关系并升级(存在一定危险性) | 
remove | 
移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件 | 
autoremove | 
移除之前被其他软件包依赖,但现在不再被使用的软件包 | 
purge | 
与remove相同,但会完全移除软件包,包含其配置文件 | 
clean | 
移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/ | 
autoclean | 
移除已安装的软件的旧版本软件包 | 
下面是一些apt-get常用的参数:
| 参数 | 说明 | 
|---|---|
-y | 
自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这个参数将十分有用 | 
-s | 
模拟安装 | 
-q | 
静默安装方式,指定多个q或者-q=#,#表示数字,用于设定静默级别,这在你不想要在安装软件包时屏幕输出过多时很有用 | 
-f | 
修复损坏的依赖关系 | 
-d | 
只下载不安装 | 
--reinstall | 
重新安装已经安装但可能存在问题的软件包 | 
--install-suggests | 
同时安装APT给出的建议安装的软件包 | 
 你可以使用如下方式重新安装:
$ sudo apt-get --reinstall install w3m
# 更新软件源 $ sudo apt-get update 
# 升级没有依赖问题的软件包 $ sudo apt-get upgrade
 # 升级并解决依赖关系 $ sudo apt-get dist-upgrade
dpkg常用参数介绍:
| 参数 | 说明 | 
|---|---|
-i | 
安装指定deb包 | 
-R | 
后面加上目录名,用于安装该目录下的所有deb安装包 | 
-r | 
remove,移除某个已安装的软件包 | 
-I | 
显示deb包文件的信息 | 
-s | 
显示已安装软件的信息 | 
-S | 
搜索已安装的软件包 | 
-L | 
显示已安装软件包的目录信息 |