Linux 软件包的安装与管理 博客分类: Linux rpmyum源码安装nginx
程序员文章站
2024-03-02 10:12:40
...
目标内容
1.rpm软件包管理
简称: Redhat Package Manager
主要有RPM和YUM这两种包管理。
两种包管理各有用处,其中主要区别是:
YUM使用简单,可以本地使用也可联网,网络YUM源,就是YUM会去网上的YUM包源去获取所需要的软件包。而RPM的需要的操作精度比较细,需要我们做的事情比较多。
挂载光盘
[root@xuegod72 ~]# umount /dev/sr0 卸载
[root@xuegod72 ~]# mount /dev/sr0 /media 挂载
查看包的个数
[root@xuegod72 ~]# cd /media/Packages
[root@xuegod72 Packages]# ls|wc -l
rpm包说明:
zsh-5.0.2-14.el7.x86_64.rpm
zsh -5 0 . 2 -e17 x86 64
软件名 主版本号 次版本号 修订号 RHEL7 CPU架构平台 支持系统位数
注:EL6 EL5
安装rpm软件
命令:rpm [参数] 软件包
参数:
-i, --install 安装软件包
--nodeps 不验证软件包依赖
-v, --verbose 提供更多的详细信息输出
-h, --hash 软件包安装的时候列出哈希标记
安装例子
[root@xuegod72 Packages]# rpm -ivh mariadb-server-5.5.44-2.el7.x86_64.rpm
忽略依赖
[root@xuegod72 Packages]# rpm -ivh mariadb-server-5.5.44-2.el7.x86_64.rpm --nodeps
第三种:到rpm包相关的网站上去下载软件包
http://rpmfind.net/
http://rpm.pbone.net/
http://www.rpmseek.com/index.html
rpm查询功能
用法:rpm –q 常与下面参数组合使用
-a 查询所有已安装的软件包
-f 查询 文件所属软件包
-i 显示已经安装的rpm软件包信息
-l 和p搭配使用显示未安装软件包的相关文件列表和信息
通常可以配合管道 | more 来使用,使得结果更易读
[root@xuegod72 Packages]# rpm -q lrzsz #查找
[root@xuegod72 Packages]# rpm -qi lrzsz #显示已经安装lrzsz的信息
[root@xuegod72 Packages]# rpm -qf `which vim`
[root@xuegod72 Packages]# rpm -ql zsh|more #查看zsh 安装了那些文件
rpm包卸载
用法:rpm –e 包名
参数:
--nodeps 忽略依赖
[root@xuegod72 Packages]# rpm -e mariadb-5.5.44.el7.x86_64 --nodeps
签名验证
导入RPM-GPG-KEY后, 安装rpm包时,对rpm的签名进行验证
GPG在Linux上的应用主要是实现官方发布的包的签名机制。
GPG分为公钥及私钥。
公钥:顾名思意,即可共享的密钥,主要用于验证私钥加密的数据及签名要发送给私钥方的数据。
私钥:由本地保留的密钥,用于签名本地数据及验证用公钥签名的数据
例如:验证一个RPM包的签名
[root@xuegod72 Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@xuegod72 Packages]# rpm -K lrzsz-0.12.20-36.el7.x86_64.rpm
2.yum安装软件包
yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
YUM:解决依赖关系问题,自动下载软件包,它是基于C/S架构
C=client S=ftp\http\file
YUM源分本地源和网络源
本地yum源配置
[root@xuegod72 ~]# rm -rf /etc/yum.repos.d/*
[root@xuegod72 yum.repos.d]# vim rhel7.repo
[7-source] #yum源名称,唯一的,用来区分不同的yum源
name=rhel7-server #对yum源描述信息
baseurl=file:///media #yum源的路径(repodata目录所在的目录)
enabled=1 #为1,表示启用yum源
gpgcheck=0 #为1,使用公钥检验rpm的正确性
清空yum缓存
[root@xuegod72 yum.repos.d]# yum clean all
生成列表
[root@xuegod72 ~]# yum list|more
注意的几个小问题:
确定光盘是否链接
光盘是否挂载
配置文件中格式是否正确,字母,符号有没有少写
yum 使用
1)安装 yum install -y
2) 检测升级 yum check-update
3) 升级 yum update
4) 软件包查询 yum list
5) 软件包信息 yum info
6) 卸载 yum remove
7) 帮助 yum -help、man yum
[root@xuegod72 ~]# yum -y install httpd
安装一组软件包
查看有那些包组
[root@xuegod72 ~]# yum grouplist
安装一个包组
[root@xuegod72 ~]# yum –y groupinstall "Security Tools"
3.源码编译安装软件包
源代码包的安装
1)解压解包
tar -xzvf 源代码包
[说明]
x为解包、z为解压(仅适合gzip,bz2[用j]则先解包再unzip解压)、v显示过程、f指定被解压包名
2)配置
进入解压后的目录,用 ./configure [--prefix=/usr/local/filname] 来配置,这个过程主要是收集系统信息、设置安装目录等(卸载的时候只需将这个目录删除则可)
3)编译
make -j 4
4)安装
make install
nginx安装
安装依赖
看一下这两个包有没有:pcre-devel zlib-devel
[root@xuegod72 mnt]# yum -y install zlib-devel
[root@xuegod72 mnt]# yum -y install pcre-devel
添加运行用户
[root@xuegod72 mnt]# useradd -s /sbin/nologin -M nginx
参数解释
-M 不创建宿主目录
-s 指定登陆的shell环境 /sbin/nologin 禁止登陆
解压 nginx
[root@xuegod72 mnt]# tar -zxvf nginx-1.0.15.tar.gz
[root@xuegod72 mnt]# tar -zxvf nginx-1.0.15.tar.gz -C /usr/local
[root@xuegod72 mnt]# ls /usr/local
[root@xuegod72 mnt]# cd /usr/local/nginx-1.0.15
[root@xuegod72 nginx-1.0.15]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
如果出现以上情况,是缺gcc包,安装一下
[root@xuegod72 nginx-1.0.15]# yum install -y gcc # 在执行 ./configure
[root@xuegod72 nginx-1.0.15]# make -j 4
[root@xuegod72 nginx-1.0.15]# make install
nginx路径优化
首先把主程序复制到etc下面
[root@xuegod72 ~]# cd /usr/local/nginx/sbin/
[root@xuegod72 sbin]# ls
nginx
[root@xuegod72 sbin]# cp nginx /etc/init.d/
验证有没有语法错误
[root@xuegod72 sbin]# /etc/init.d/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动nginx ,不加参数,验证
[root@xuegod72 sbin]# /etc/init.d/nginx
[root@xuegod72 sbin]# netstat -anput|grep nginx
rpm软件包管理 yum安装软件包 源码编译安装软件包
1.rpm软件包管理
简称: Redhat Package Manager
主要有RPM和YUM这两种包管理。
两种包管理各有用处,其中主要区别是:
YUM使用简单,可以本地使用也可联网,网络YUM源,就是YUM会去网上的YUM包源去获取所需要的软件包。而RPM的需要的操作精度比较细,需要我们做的事情比较多。
挂载光盘
[root@xuegod72 ~]# umount /dev/sr0 卸载
[root@xuegod72 ~]# mount /dev/sr0 /media 挂载
查看包的个数
[root@xuegod72 ~]# cd /media/Packages
[root@xuegod72 Packages]# ls|wc -l
rpm包说明:
zsh-5.0.2-14.el7.x86_64.rpm
zsh -5 0 . 2 -e17 x86 64
软件名 主版本号 次版本号 修订号 RHEL7 CPU架构平台 支持系统位数
注:EL6 EL5
安装rpm软件
命令:rpm [参数] 软件包
参数:
-i, --install 安装软件包
--nodeps 不验证软件包依赖
-v, --verbose 提供更多的详细信息输出
-h, --hash 软件包安装的时候列出哈希标记
安装例子
[root@xuegod72 Packages]# rpm -ivh mariadb-server-5.5.44-2.el7.x86_64.rpm
忽略依赖
[root@xuegod72 Packages]# rpm -ivh mariadb-server-5.5.44-2.el7.x86_64.rpm --nodeps
第三种:到rpm包相关的网站上去下载软件包
http://rpmfind.net/
http://rpm.pbone.net/
http://www.rpmseek.com/index.html
rpm查询功能
用法:rpm –q 常与下面参数组合使用
-a 查询所有已安装的软件包
-f 查询 文件所属软件包
-i 显示已经安装的rpm软件包信息
-l 和p搭配使用显示未安装软件包的相关文件列表和信息
通常可以配合管道 | more 来使用,使得结果更易读
[root@xuegod72 Packages]# rpm -q lrzsz #查找
[root@xuegod72 Packages]# rpm -qi lrzsz #显示已经安装lrzsz的信息
[root@xuegod72 Packages]# rpm -qf `which vim`
[root@xuegod72 Packages]# rpm -ql zsh|more #查看zsh 安装了那些文件
rpm包卸载
用法:rpm –e 包名
参数:
--nodeps 忽略依赖
[root@xuegod72 Packages]# rpm -e mariadb-5.5.44.el7.x86_64 --nodeps
签名验证
导入RPM-GPG-KEY后, 安装rpm包时,对rpm的签名进行验证
GPG在Linux上的应用主要是实现官方发布的包的签名机制。
GPG分为公钥及私钥。
公钥:顾名思意,即可共享的密钥,主要用于验证私钥加密的数据及签名要发送给私钥方的数据。
私钥:由本地保留的密钥,用于签名本地数据及验证用公钥签名的数据
例如:验证一个RPM包的签名
[root@xuegod72 Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@xuegod72 Packages]# rpm -K lrzsz-0.12.20-36.el7.x86_64.rpm
2.yum安装软件包
yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
YUM:解决依赖关系问题,自动下载软件包,它是基于C/S架构
C=client S=ftp\http\file
YUM源分本地源和网络源
本地yum源配置
[root@xuegod72 ~]# rm -rf /etc/yum.repos.d/*
[root@xuegod72 yum.repos.d]# vim rhel7.repo
[7-source] #yum源名称,唯一的,用来区分不同的yum源
name=rhel7-server #对yum源描述信息
baseurl=file:///media #yum源的路径(repodata目录所在的目录)
enabled=1 #为1,表示启用yum源
gpgcheck=0 #为1,使用公钥检验rpm的正确性
清空yum缓存
[root@xuegod72 yum.repos.d]# yum clean all
生成列表
[root@xuegod72 ~]# yum list|more
注意的几个小问题:
确定光盘是否链接
光盘是否挂载
配置文件中格式是否正确,字母,符号有没有少写
yum 使用
1)安装 yum install -y
2) 检测升级 yum check-update
3) 升级 yum update
4) 软件包查询 yum list
5) 软件包信息 yum info
6) 卸载 yum remove
7) 帮助 yum -help、man yum
[root@xuegod72 ~]# yum -y install httpd
安装一组软件包
查看有那些包组
[root@xuegod72 ~]# yum grouplist
安装一个包组
[root@xuegod72 ~]# yum –y groupinstall "Security Tools"
3.源码编译安装软件包
源代码包的安装
1)解压解包
tar -xzvf 源代码包
[说明]
x为解包、z为解压(仅适合gzip,bz2[用j]则先解包再unzip解压)、v显示过程、f指定被解压包名
2)配置
进入解压后的目录,用 ./configure [--prefix=/usr/local/filname] 来配置,这个过程主要是收集系统信息、设置安装目录等(卸载的时候只需将这个目录删除则可)
3)编译
make -j 4
4)安装
make install
nginx安装
安装依赖
看一下这两个包有没有:pcre-devel zlib-devel
[root@xuegod72 mnt]# yum -y install zlib-devel
[root@xuegod72 mnt]# yum -y install pcre-devel
添加运行用户
[root@xuegod72 mnt]# useradd -s /sbin/nologin -M nginx
参数解释
-M 不创建宿主目录
-s 指定登陆的shell环境 /sbin/nologin 禁止登陆
解压 nginx
[root@xuegod72 mnt]# tar -zxvf nginx-1.0.15.tar.gz
[root@xuegod72 mnt]# tar -zxvf nginx-1.0.15.tar.gz -C /usr/local
[root@xuegod72 mnt]# ls /usr/local
[root@xuegod72 mnt]# cd /usr/local/nginx-1.0.15
[root@xuegod72 nginx-1.0.15]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
如果出现以上情况,是缺gcc包,安装一下
[root@xuegod72 nginx-1.0.15]# yum install -y gcc # 在执行 ./configure
[root@xuegod72 nginx-1.0.15]# make -j 4
[root@xuegod72 nginx-1.0.15]# make install
nginx路径优化
首先把主程序复制到etc下面
[root@xuegod72 ~]# cd /usr/local/nginx/sbin/
[root@xuegod72 sbin]# ls
nginx
[root@xuegod72 sbin]# cp nginx /etc/init.d/
验证有没有语法错误
[root@xuegod72 sbin]# /etc/init.d/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动nginx ,不加参数,验证
[root@xuegod72 sbin]# /etc/init.d/nginx
[root@xuegod72 sbin]# netstat -anput|grep nginx