常见安装方式
- apt-get安装
- dpkg安装
- 编译安装
apt安装
通常我们使用apt安装软件可能出现的步骤(通常我们只需要执行最后一句):sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xxx
下面我会解释一下这几句命令的意思
apt-get update
这句命令做了什么呢?
这句命令会去扫描**/etc/apt/sources.list**,并根据这个文件中的软件源服务器配置去扫描每个服务器,寻找每个服务器list中Packages/Sources/Release列表文件,如果发现有更新则下载之,然后为这些需要更新的软件包资源建立或更新索引文件,这些索引文件会保存在**/var/lib/apt/lists**文件夹下。apt-get安装软件的命令都是根据这些索引去寻找软件包资源的。
- 这句命令在我们安装软件的时候
不是一定
要运行的,但是我们安装软件的时候有时会发现安装的软件版本太低
或者找不到软件
,这个时候我们可以使用这个命令更新软件索引。 - 当然,安装有些软件的时候我们需要先配置软件源,然后执行
apt-get update
。
配置软件源
通常来说由于长城防火墙
的缘故,我们在安装部分软件的时候会很慢,所以需要使用国内的镜像源,这个时候我们就需要更新软件源了,无论用什么方式更新软件源,实际上都是在更新**/etc/apt/sources.list**文件,格式大概如下:
deb http://mirrors.163.com/ubuntu/ trusty main restricted
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted
这里我故意提供了两个例子,是因为软件源的配置都遵循:
deb/deb-src [ options ] uri suite [component1] [component2] [...]
- 第一个字段只有两种可能:
deb
和deb-src
,deb
表示指向的是binary(二进制预编译软件包) 格式软件,deb-src
表示指向的是sources(用于编译二进制软件包的源代码) 格式软件。 -
uri
指的就是软件套件来源路径,这里不一定是链接,也可以是系统文件路径或者CD-ROM之类,uri主要为file 、 cd-rom 、 http 、 ftp 、copy 、rsh 、ssh 等类型参数,最常见的是网络远程路径(http/https/ftp)。 -
suite
是访问到uri链接路径下dists
目录的linux发行版的套件名称目录(每个发行版对应的名称各不相同,ubuntu14.04为trusty),而后面跟的参数则是suite目录下的组件库目录。
拿deb http://mirrors.163.com/ubuntu/ trusty main restricted
来说,指向的是http://mirrors.163.com/ubuntu/dists/trusty/main/
和http://mirrors.163.com/ubuntu/dists/trusty/restricted/
目录下的二进制格式软件。
apt-get upgrade
从上面的解释上看,单纯的执行apt-get update并不能达到更新软件的作用,它只是扫描所有软件源并更新软件包索引。真正的更新需要通过其他命令,apt-get upgrade
会将系统中的所有软件包一次性升级到最新版本
。具体步骤:
- 根据apt-get update所产生的软件包索引分析本地软件是否需要升级,并建立依赖关系,分析出需要更新的软件包列表。
- 依据上一步所产生的更新列表,从网上下载所需更新(其实这一步用的就是apt-get install)。
apt-get install
我们用apt-get install的时候,实际上是从/var/lib/apt/lists
中扫描的得到该软件的最新版本地址,并通过该地址下载该软件包,软件包将会被保存在临时文件夹**/var/cache/apt/archives**下,最后开始安装该软件。
dpkg安装
区别于apt安装方式, dpkg只是用来安装本地软件包(deb包),但不解决模块的依赖关系
。而apt是从网络服务器下载并安装软件包的,它会解决依赖关系。
安装命令
dpkg -i package.deb
dpkg的一些其他操作命令:
dpkg -r package #删除软件
dpkg -P package #删除软件(连同软件配置一起删除)
dpkg -L package #列出与该包关联的文件
dpkg -l packag #显示该包的版本
dpkg -l #列出当前已安装的包
dpkg -S keyword #搜索所属的包内容
dpkg -c package.deb #列出deb包的内容
dpkg --configure package #配置软件包
dpkg --unpack package.deb #解开deb包的内容
dpkg软件包相关文件如下:
/etc/dpkg/dpkg.cfg #dpkg包管理软件的配置文件
/var/log/dpkg.log #dpkg包管理软件的日志文件
/var/lib/dpkg/available #存放系统所有安装过的软件包信息
/var/lib/dpkg/status #存放系统现在所有安装软件的状态信息
/var/lib/dpkg/info #记安装软件包控制目录的控制信息文件
由于dpkg的安装方式不会解决依赖的问题,所以经常会出现安装过程中依赖未安装的情况,可以通过
sudo apt install -f #apt相较于apt-get更新,两者目前兼容
来修复依赖。