安装与卸载

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            # 修复损坏的依赖关系

源码包安装

安装步骤

  1. 下载nginx源码包,并解压缩: nginx官网:nginx.org/en/download.html

$ tar xvf nginx-1.20.1.tar.gz   # 解压包
$ mkdir /usr/local/nginx        # 创建安装目录
$ cd nginx-1.20.1               # 进入解压目录
  1. 预编译

$ ./configure --prefix=/usr/local/nginx  # 预编译

nginx预编译报错

能看到红线报错缺少PCRE依赖,需要安装:

$ yum install -y pcre-devel

注:也可以通过源码的方式安装pcre依赖,在预编译时指定安装路径--with-pcre=/usr/local/pcre。如果使用yum安装就不需要在预编译指定了。

安装完后重新预编译,结束后可以通过echo $?命令检查是否成功,如果成功会输出0,非0则有错误,需继续排查。

  1. 编译并安装

$ make && make install

注:如果编译报错,需要安装gccgcc-c++依赖,yum install -y gcc gcc-c++
make编译时可以使用-j选项(根据自己服务器内核数决定)指定同时使用多少内核进行编译,可以加快编译速度。

  1. 启动服务

$ /usr/local/nginx/sbin/nginx
  1. 配置软链接方便启动

$ ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx
  1. 开机自启动

$ vim /etc/rc.local