安装与卸载
Centos
centos7:rpm、yum、源码包
centos8:rpm、dnf、yum、源码包
rpm
语法
rpm -选项 包全名
注意:需要先把
.rpm后缀的包下载到服务器,然后指定文件全名,如果文件不在当前路径,需要指定路径,如rpm -ivh /home/package.rpm。
选项
-i:安装软件包-v:显示详细信息-h:显示安装进度-U:升级软件包-e:卸载软件包-q:查询软件包-a:查询所有安装的软件包--nodeps:忽略依赖关系
常用示例
$ rpm -ivh <package.rpm> # 安装
$ rpm -Uvh <package.rpm> # 升级
$ rpm -e <package> # 卸载
$ rpm -qa # 查询所有安装的软件包
$ rpm -qa | grep nginx # 指定查询包含nginx的软件包
$ rpm -qi nginx # 查询nginx软件包信息
$ rpm -ql <package> # 查询软件包安装路径
默认安装路径
rpm包默认安装路径是可以通过命令rpm -ql <package>查询的,一般安装在如下表:
| 安装路径 | 含义 |
|---|---|
| /etc/ | 配置文件安装目录 |
| /usr/bin/ | 可执行的命令安装目录 |
| /usr/lib/ | 程序运行所需的库文件安装目录 |
| /usr/share/doc/ | 基本的软件使用手册保存位置 |
| /usr/share/man/ | 帮助文档保存位置 |
| /var/log/ | 日志文件保存位置 |
rpm包可以手动指定安装路径,如
rpm -ivh --prefix=/usr/local/nginx <package.rpm>,所有的安装文件就会安装到指定位置,而系统的默认搜索位置不会改变,这样就失去了作为系统默认安装路径的一些好处。所以一般不会手动指定rpm包的安装路径。
yum
基于rpm的软件包管理器,用于在Linux系统上安装软件。
语法
yum 命令 [-选项] [包名]
命令
install:安装软件包update:更新软件包check-update:检查可更新的软件包remove:删除软件包list:列出已安装的软件包info:显示软件包信息search:查找软件包clean:清理缓存provides:根据文件,查找软件包download:下载软件的rpm包shell:进入yum的shell模式groups:查看yum软件组grouplist:显示yum软件组列表groupinstall:安装yum软件组groupupdate:更新yum软件组groupremove:删除yum软件组
选项
-y:自动回答yes-q:静默模式,不显示进度-v:详细模式,显示详细信息-d:调试模式,显示调试信息-e:错误模式,显示错误信息
示例
$ yum install nginx # 安装nginx
$ yum update nginx # 更新nginx
$ yum check-update # 检查可更新的软件包
$ yum remove nginx # 删除nginx
$ yum list # 列出已安装的软件包
$ yum info nginx # 显示软件包信息
$ yum search nginx # 查找软件包
$ yum
$ yum clean # 清理缓存
$ yum groupinstall "Development Tools" # 安装开发工具组
$ yum provides 'file' # 根据文件,查找软件包
# centos8下载nginx.rpm包
$ yum download nginx # 也可以用dnf
# centos7下载nginx.rpm包
$ yum install -y yum-utils
$ yumdownloader nginx
dnf
dnf更高效,与yum用法基本一样
示例
$ dnf install nginx # 安装nginx
$ dnf update nginx # 更新nginx
$ dnf check-update # 检查可更新的软件包
$ dnf remove nginx # 删除nginx
$ dnf list # 列出已安装的软件包
$ dnf info nginx # 显示软件包信息
$ dnf search nginx # 查找软件包
$ dnf clean # 清理缓存
$ dnf grouplist # 显示yum软件组列表
$ dnf groupinstall "Development Tools" # 安装开发工具组
Ubuntu
dpkg、apt、源码包
dpkg
语法
dpkg -选项 [包名]
选项
-i:安装软件包;-r:删除软件包;-P:删除软件包及其配置文件;-l:显示已安装软件包列表;-L: 显示软件包所安装的路径;-s:查询已安装软件包的信息;-S:根据文件来查询属于哪个软件包;-c:显示软件包的配置文件;
示例
$ dpkg -i nginx_1.16.1-1~buster_amd64.deb # 安装
$ dpkg -r nginx # 删除包,保留配置文件
$ dpkg -P nginx # 删除包及其配置文件
$ dpkg -l # 显示已安装的所有包
$ dpkg -l | grep nginx # 显示已安装的nginx包
$ dpkg -L nginx # 显示nginx包所安装的路径
$ dpkg -s nginx # 查询已安装的包信息
$ dpkg -s nginx | grep '^Status:' # 查询已安装的包状态
$ dpkg -S /etc/nginx # 查询文件属于哪个包
apt
apt是Debian Linux新的软件包管理工具,2014年发布第一个稳定版。apt-get是旧的软件包管理工具,当前最新的稳定版是1.0.9.2,在2014年10月发布。
目前两个命令都可以用,甚至有些比较老得命令需要用到apt-get,但是常规还是用到apt。
语法
apt command [-选项] [package]
命令
instasll:安装软件包;remove:删除软件包;update:更新软件包;upgrade:升级软件包;dist-upgrade:升级软件包,同时升级软件包和系统内核;build-dep:安装相关的编译环境;source:安装源码包;clean:删除下载的压缩包和缓存;list:列出已安装的软件包;
选项
-y:自动回答为”yes”;-d:仅下载软件包而不安装;-f:修复损坏的依赖关系;-m:只安装安全升级;-q:禁止显示非错误性输出;-s:仅进行同步操作,不更新软件包列表;-u:更新软件包列表;-V:显示软件包详细信息;-v:显示详细信息;-h:显示帮助信息;
示例
$ apt install nginx # 安装nginx
$ apt remove nginx # 删除nginx
$ apt autoremove nginx # 删除nginx及其依赖
$ apt update # 更新软件包列表
$ apt upgrade # 升级软件包
$ apt dist-upgrade # 升级软件包和系统内核
$ apt build-dep nginx # 安装相关的编译环境
$ apt source nginx # 安装源码包
$ apt clean # 删除下载的压缩包和缓存
$ apt list # 列出已安装的软件包
$ apt search nginx # 搜索软件包
$ apt download nginx # 下载软件包
$ apt show nginx=1.10.3 # 显示指定软件包的详细信息
$ apt -f install # 修复损坏的依赖关系
源码包安装
安装步骤
下载nginx源码包,并解压缩: nginx官网:nginx.org/en/download.html
$ tar xvf nginx-1.20.1.tar.gz # 解压包
$ mkdir /usr/local/nginx # 创建安装目录
$ cd nginx-1.20.1 # 进入解压目录
预编译
$ ./configure --prefix=/usr/local/nginx # 预编译

能看到红线报错缺少PCRE依赖,需要安装:
$ yum install -y pcre-devel
注:也可以通过源码的方式安装
pcre依赖,在预编译时指定安装路径--with-pcre=/usr/local/pcre。如果使用yum安装就不需要在预编译指定了。
安装完后重新预编译,结束后可以通过echo $?命令检查是否成功,如果成功会输出0,非0则有错误,需继续排查。
编译并安装
$ make && make install
注:如果编译报错,需要安装
gcc和gcc-c++依赖,yum install -y gcc gcc-c++。make编译时可以使用-j选项(根据自己服务器内核数决定)指定同时使用多少内核进行编译,可以加快编译速度。
启动服务
$ /usr/local/nginx/sbin/nginx
配置软链接方便启动
$ ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
开机自启动
$ vim /etc/rc.local