Linux软件包管理

Linux软件包管理

软件包的类型

Windows

        .exe

        .msi

绿色免安装包

        Linux

可执行安装包

        Redhat

        rpm

        Debian

        deb

源码包 (需要编译安装)

        二进制包 (免安装包)

1.RPM基本概述

1.什么是rpm?

RPM全称 RPM Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询

缺点

        1.早期功能较少,无法定制,无法满足企业的需求;现在的功能足以满足大部分的需求

        2.复杂的依赖关系 (装A 后 B也要装 卸载B之前 要卸载A)

仓库安装解决RPM的依赖关系

2.rpm包名组成部分?

        RPM包命名以-将软件分成了若干部分 bash-4.2.46-28.el7.x86_64.rpm

3.如何获取rmp

        我们先通过虚拟机加载镜像,然后在linux中执行 mount /dev/cdrom /mnt ,此时你会在 /mnt/Packages 目录下看到很多rpm的包文件。那么就可以开始rpm包管理之旅

2.RPM管理功能

1.安装功能

使用rpm命令安装软件包, 需要了解如下参数:

        -i: 安装

        -v: 详细信息

        -h: 安装进度

        --test: 测试是否能够安装成功

        --force: 强制重新安装

        --nodeps: 忽略依赖关系

安装软件包, 需要指定软件包绝对路径

 rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
​
 rpm -ivh /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm

在软件包所在目录下可以不指定绝对路径

  cd /mnt/Packages/
​
  [root@server Packages]# rpm -ivh zsh-5.0.2-34.el7.x86_64.rpm

测试一个软件包是否能在该系统上安装

# rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-27.el7.x86_64.rpm

如果软件包存在, 强制再次安装

# rpm -ivh --force /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装

# rpm -ivh --nodeps /mnt/Packages/samba-4.10.4-10.el7.x86_64.rpm

2.查询功能

查看指定软件包是否安装

rpm -q 
rpm -q vsftpd  查看vsftpd这个rpm包是否安装

查看系统中已安装的所有RPM软件包列表

rpm -qa 
rpm -qa | grep ftp  模糊查找系统已安装的rpm包

查看已安装软件的详细信息

rpm -qi 
rpm -qi vsptpd  查看vsftpd软件包的相关信息

查询已安装软件包所安装的目录、文件列表

rpm -ql 
rpm -ql vsptpd  查看rpm包所安装的文件

查询已安装软件包的配置文件

rpm -qc 
rpm -qc vsptpd    查看rpm包相关的配置文件

查询已安装软件包的帮助文档

rpm -qd 

查询文件或目录属于哪个RPM软件

rpm -qf 
查询配置文件或命令来自于哪个rpm包
rpm -qf /etc/vsftpd/vsftpd.conf
rpm -qf /usr/sbin/vsftpd
​

查询未安装的软件包信息

rpm -qip     查询未安装的rpm包详细信息
rpm -qlp     查询未安装的软件包会产生哪些文件
​
rpm -qpl /mnt/Packages/python3-3.6.8-13.el7.x86_64.rpm
rpm -qpi /mnt/Packages/python3-3.6.8-13.el7.x86_64.rpm

3.升级功能

rpm -U 如果老版本不存在则全新安装,如果存在有新版即升级

 wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
 wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm

1.先安装低版本

 rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm

2.尝试安装高版本(会出现错误)

 rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm

3.使用升级的方式,完美解决替换

 rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm

4.卸载功能

卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

先查询,后卸载

rpm -qa | grep sh       先查询
rpm -e zsh              后卸载

5.RPM包校验

软件相关的数据库存放于 /var/lib/rpm 目录

rpm -V vsftpd

S.5....T. c /etc/pam.d/vsftpd

.......T. c /etc/vsftpd/ftpusers

S.5....T. c /etc/vsftpd/vsftpd.conf

.M....... /var/ftp/pub

S //文件的容量大小是否被改变

M //文件的类型或者文件的属性是否被修改

5 //MD5这一种指纹加密的内容已经不同

D //装置的主/次代码已经改变

L //路径已经被改变

U //文件的所属主已被修改

G //文件的所属组已被修改

T //文件的创建时间已被改变

3.yum基本概述

1.什么是yum

Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。(PS: YUM是生产最佳实践)

2.YUM源是什么

要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源。(可以是本地源、网络源)

3.YUM源配置实例

yum源的选择 Base源 1.系统光盘 2.线上镜像站 EPEL源 1.线上镜像站 第三方源 nginx、zabbix、mysql 由第三方官网提供 小众镜像站 少

需求1:部署Base源

1.将默认的所有repo文件都注释掉

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/{*.repo,/bak/}

2.从线上镜像站获取Base库文件

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

备注:如果是非阿里云的产品,将下载的仓库文件关于aliyuncs的行都删除

 

进行缓存

yum makecache

 

需求2:部署epel源

aliyun:

从线上镜像站获取epel库文件

默认系统是国外源,需要替换为国内的源
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

扩展源,有很多软件在基本源中没有
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2)Nginx官方源

比如在学习Nginx时需要使用官方的yum源来安装

yum 仓库配置文件的配置项
    
#vim /etc/yum.repos.d/nginx.repo
​
[nginx]           #仓库名
​
name=nginx repo   #仓库的描述,可有可无,如果没有,仓库名就是描述
​
baseurl=http://nginx.org/packages/centos/7/$basearch/  #仓库的路径,可以通过http\https\ftp\file://
​
gpgcheck=0     #密钥校验,0关,1开(默认,建议关闭)
 
enabled=1      #密钥的路径,只有gpgcheck=1才会触发该行配置

1.确认是否挂在在mnt目录下 mount /dev/cdrom /mnt

2.备份.repo配置文件 mkdir -p /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

3.编写yum 仓库配置文件 [root@localhost ~]# cat /etc/yum.repos.d/local.repo [cdrom] //仓库名 name=cdrom //命名 baseurl=file:///mnt //路径 enabled=1 //仓库开关 默认打开 gpgcheck=0 //密钥校验 默认打开 0关 1开 我们一般都关

4.查看是否存在yum本地仓库配置文件 yum repolist

3)yum 操作实例

1.查询软件包

列出软件仓库中可用的软件

# yum list

进行模糊查找

# yum list|grep ftp

列出软件包详情

# yum info ftp

列出已经安装和所有可使用的软件组

# yum groups list
​
# yum grouplist

列出yum源可用的软件仓库

# yum repolist

列出全部yum源可用和禁用的仓库

# yum repolist all

查看这个文件或命令属于哪个包

# yum provides /etc/my.cnf
​
# yum provides cd

2.安装软件包

安装软件只需要给出软件名称

# yum install traceroute

安装过程中分析依赖关系后, 直接安装, 无需交互

# yum install php -y

安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖

# yum localinstall /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm

安装网络上rpm包

# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

安装一整个组的软件

# yum groups install Development tools Compatibility libraries Base Debugging Tools

重新安装软件

# yum reinstall vsftpd

3.更新软件包

对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级

# yum check-update

更新软件

# yum update -y python

如下的执行很危险,这代表更新整个系统所有的软件,包括内核

#yum update -y

4.删除软件包

删除该软件包,不会删除依赖, 但是我们尽可能不要使用删除软件操作

# yum install -y samba
​
# yum erase -y samba
​
# yum remove -y samba

5.yum 缓存

缓存yum源软件仓库

#yum makecache

6.Yum历史记录

查看历史执行Yum命令

#yum history

使用第三方安装Nginx

关闭防火墙

systemctl stop firewalld      

永久关闭防火墙

systemctl disable firewalld   

启动nginx服务

systemctl start nginx  

停止nginx服务

systemctl stop nginx    

显示端口 nginx 端口80 未显示80表示已关闭

ss -lntp   

卸载Nginx

yum remove nginx

 

源码安装Nginx

配置基础环境

1.下载lszsz wget

yum install -y lrzsz wget

 

2.从nginx官方下载源码包 将源码包拖入命令行

可以直接用鼠标拖动,或者使用rz 回车,把文件上传到Linux

3.解压源码包

tar xf nginx-1.20.2.tar.gz

4.移动至nginx目录下

cd nginx-1.20.2

 

源码包安装三步骤

1)配置

创建目录 将源码包统一管理

mkdir -p /app (此时已经在cd nginx-1.20.2目录下)

./configure --prefix=/app/nginx \ 配置文件

 

第一个报错 checking for C compiler ... not found ./configure: error: C compiler cc is not found yum -y install gcc gcc-c++

第二个报错 ./configure: error: the HTTP gzip module requires the zlib library. yum install -y zlib-devel

第三个报错 ./configure: error: the HTTP rewrite module requires the PCRE library. yum -y install pcre-devel

./configure --prefix=/app/nginx

2)编译

make

 

3)编译安装

make install

 

进入 cd /app/nginx 目录下

ls 显示目录

进入cd sbin/

运行 ./nginx

查看80端口 ss -lntp | grep 80

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值