ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基础day21

2022-04-23 15:32:11  阅读:216  来源: 互联网

标签:x86 day21 基础 nginx 64 root rpm el7


RPM包管理

RPM包概述

  • 什么是rpm包

由红帽开发的软件 升级,安装,卸载,查询 工具

  • 为什么要使用rpm

就像在windows系统中一样,如果你想要安装一个QQ,安装一个微信,安装一款游戏,首先要去该软件的官网上去 下载相关的软件包,通常都是.exe的安装包。还有那种绿色软件包,一下载下来,解压开就能使用无需安装。

那么Linux中也有很多种类的安装包,我们在Linux上也需要安装软件,软件包的种类也有很多,但是最方便,最简 单,最简易,速度最快的,也就是rpm包了。

  • rpm包命名规则

 # tree-1.6.0-10.el7.x86_64.rpm
 tree:软件名称
 1.6.0:版本号
 10:该版本的发布次数
 el7:使用系统版本(RedHat7,Centos7)向下兼容
 .x86_64:系统平台 64   x86:32位 i386:32位
 rpm:包后缀名

Linux中软件的安装方式

安装包安装方式优点缺点
rpm包 rpm,yum 安装便捷 版本低,无法自定义安装路径
源码包 源码安装(解压,生成,编译,安装) 使用新版本,自定义路径 安装复杂,繁琐,安装所有依赖软件
二进制包 解压即用 安装便捷,自定义路径 并不是所有的安装包都有二进制

 

RPM包获取途径

  • 系统光盘镜像/Centos官网:IP

  • RPM包查询官方网站:IP

  • 其他软件官方网站

 

1.检查光盘是否放入光驱

 # 挂载语法
 mount 源设备文件 目标路径
 [root@localhost ~]# mount /dev/cdrom /mnt
 mount: /dev/sr0 is write-protected, mounting read-only
 ​
 #查看磁盘信息
 df -h:查看磁盘分区情况,磁盘使用情况,也能查看到挂载设备及目录
 ​
 # 卸载语法
 umount 目标路径
 umount /mnt
 ​
 ​
 # 查看挂载结果
 [root@localhost ~]# mount /dev/cdrom /mnt
 mount: /dev/sr0 is write-protected, mounting read-only
 [root@localhost ~]# ll /mnt
 total 696
 -rw-r--r--.  3 root root     14 Oct 30  2020 CentOS_BuildTag
 drwxr-xr-x.  3 root root   2048 Oct 27  2020 EFI
 -rw-rw-r--. 21 root root    227 Aug 30  2017 EULA
 -rw-rw-r--. 21 root root  18009 Dec 10  2015 GPL
 drwxr-xr-x.  3 root root   2048 Oct 27  2020 images
 drwxr-xr-x.  2 root root   2048 Nov  3  2020 isolinux
 drwxr-xr-x.  2 root root   2048 Oct 27  2020 LiveOS
 drwxr-xr-x.  2 root root 673792 Nov  4  2020 Packages
 drwxr-xr-x.  2 root root   4096 Nov  4  2020 repodata
 -rw-rw-r--. 21 root root   1690 Dec 10  2015 RPM-GPG-KEY-CentOS-7
 -rw-rw-r--. 21 root root   1690 Dec 10  2015 RPM-GPG-KEY-CentOS-Testing-7
 -r--r--r--.  1 root root   2883 Nov  4  2020 TRANS.TBL
 ​
 [root@localhost ~]# ll /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
 -rw-rw-r--. 3 root root 47508 Jul  4  2014 /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
 ​
 ​
 # 挂载报错
 [root@ yjc ~ ] # mount /dev/cdrom /mnt
 mount: no medium found on /dev/sr0
 原因:设备文件是空的,里面没有任何内容,光驱没有连接
 ​
 # 卸载报错
 [root@localhost mnt]# umount /mnt
 umount: /mnt: target is busy.
        (In some cases useful info about processes that use
        the device is found by lsof(8) or fuser(1))
 [root@localhost mnt]# cd
 [root@localhost ~]# umount /mnt
 原因:设备繁忙
 ​
 ​

rpm命令使用-安装

 # 语法
 rpm [选项] rpm包名
 rpm包名:
        -本地包名:在系统中某个目录下的rpm包
        -远程包名:不用下载,直接使用网站上的rpm包
 ​
 # 选项
 -i:安装
 -v:显示安装的过程
 -h:显示安装的进度条
 --test:仅测试,不安装
 --force:强制安装
 --nodeps:忽略依赖关系
 ​
 # 例:
 [root@localhost ~]# rpm -i /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
  package tree-1.6.0-10.el7.x86_64 is already installed
 ​
 [root@localhost ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
 Preparing...                          ################################# [100%]
  package tree-1.6.0-10.el7.x86_64 is already installed
 ​
 [root@localhost ~]# rpm --test /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
 ​
 # 注意:rpm命令管理rpm包缺点,无法解决依赖关系

rpm命令使用-查询

 # 语法
 rpm [选项] rpm包名
 ​
 # 选项
 -q:查看指定的安装包是否安装
 ​
 -- 以下选项都要配合-q使用 --
 -a:查看全部安装过的包
 -i:查看安装包的详细信息
 -l:列出rpm包相关的配置文件和目录
 -c:只查看该软件包相关的配置文件
 -d:只查看该软件的帮助文档文件
 -f:反向查找,根据配置文件,目录,帮助文档,查找该文件属于哪个包
 --scripts:查看安装包,安装之前之后和卸载之前之后要执行的脚本
 ​
 -p:查询未安装的包
 -qip:未安装包的详细信息
 -qlp:未安装包会生成的所有文件
 -qcp:未安装包会生成的所有配置文件
 -qdp:未安装包会生成的所有帮助文
 ​
 ​
 # 例:
 [root@localhost ~]# rpm -q tree
 tree-1.6.0-10.el7.x86_64
 ​
 [root@localhost ~]# rpm -qa|grep 'vim'
 vim-filesystem-7.4.629-8.el7_9.x86_64
 vim-enhanced-7.4.629-8.el7_9.x86_64
 vim-minimal-7.4.629-7.el7.x86_64
 vim-common-7.4.629-8.el7_9.x86_64
 ​
 [root@localhost ~]# rpm -ql tree
 /usr/bin/tree
 /usr/share/doc/tree-1.6.0
 /usr/share/doc/tree-1.6.0/LICENSE
 /usr/share/doc/tree-1.6.0/README
 /usr/share/man/man1/tree.1.gz
 [root@localhost ~]# rpm -qc tree
 [root@localhost ~]# rpm -qd tree
 /usr/share/doc/tree-1.6.0/LICENSE
 /usr/share/doc/tree-1.6.0/README
 /usr/share/man/man1/tree.1.gz
 ​
 [root@zls ~]# rpm -qf /etc/vsftpd/vsftpd.conf
 [root@zls ~]# rpm -qf /usr/sbin/vsftpd
 ​
 # 举例 -q -i 命令组合使用
 [root@localhost Packages]# rpm -qi `rpm -qa|grep 'net'`
 [root@localhost Packages]# rpm -qi $(rpm -qa|grep 'net')
 [root@localhost Packages]# rpm -qa|grep 'net'|xargs rpm -qi

rpm命令使用-升级

 # 选项
 -U:update升级,如果老版本不存在,则安装,如果老版本存在则升级
 -f:必须有老版本存在
 ​
 # 查询当前系统中安装nginx的包(1.10版本)
 [root@zls ~]# rpm -qa|grep
 nginxnginx-1.10.0-1.el7.ngx.x86_64
 ​
 # 使用ivh安装nginx 1.12版本的包
 [root@zls ~]# rpm -ivh nginx-1.12.0-1.el7.ngx.x86_64.rpm
 ​
 # 报错如下:因为系统中已存在1.10版本的nginx所以无法使用ivh安装
 warning: nginx-1.12.0-1.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62:
 NOKEY
 Preparing...                          ################################# [100%]
    file /etc/logrotate.d/nginx from install of nginx-1:1.12.0-1.el7.ngx.x86_64 conflictswith file from package nginx-1:1.10.0-1.el7.ngx.x86_64
    file /usr/sbin/nginx from install of nginx-1:1.12.0-1.el7.ngx.x86_64 conflicts withfile from package nginx-1:1.10.0-1.el7.ngx.x86_64
    file /usr/sbin/nginx-debug from install of nginx-1:1.12.0-1.el7.ngx.x86_64 conflictswith file from package nginx-1:1.10.0-1.el7.ngx.x86_64
    file /usr/lib/systemd/system/nginx.service from install of nginx-1:1.12.0-1.el7.ngx.x86_64 conflicts with file from package nginx-1:1.10.0-1.el7.ngx.x86_64
    file /usr/libexec/initscripts/legacy-actions/nginx/upgrade from install of nginx-1:1.12.0-1.el7.ngx.x86_64 conflicts with file from package nginx-1:1.10.0-1.el7.ngx.x86_64
 ​
 # 使用Uvh安装,会将已存在的老版本卸载,升级成新1.12版本
 [root@zls ~]# rpm -Uvh nginx-1.12.0-1.el7.ngx.x86_64.rpm
 warning: nginx-1.12.0-1.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62:
 NOKEY
 Preparing...                          ################################# [100%]
 Updating / installing...
    1:nginx-1:1.12.0-1.el7.ngx         ################################# [ 50%]
 Cleaning up / removing...
    2:nginx-1:1.10.0-1.el7.ngx         ################################# [100%]
 ​
 # 查看当前系统中的nginx版本为升级后的1.12版本
 [root@zls ~]# rpm -qa|grep nginx
 nginx-1.12.0-1.el7.ngx.x86_64
 ​

rpm命令使用-卸载

 # 选项
 -e:后面接卸载的包名即可
 ​
 # 例:
 [root@zls ~]# rpm -qa|grep nginx
 nginx-1.12.0-1.el7.ngx.x86_64
 [root@zls ~]# rpm -e nginx
 [root@zls ~]# rpm -qa|grep nginx
 [root@zls ~]# rpm -qa|grep mariadb
 mariadb-5.5.68-1.el7.x86_64
 mariadb-server-5.5.68-1.el7.x86_64
 mariadb-libs-5.5.68-1.el7.x86_64
 [root@zls ~]# rpm -e $(rpm -qa|grep mar)
 ​

 

镜像站地址

 阿里云镜像站:http://mirrors.aliyun.com
 网易镜像站:http://mirrors.163.com/
 清华源:https://mirrors.tuna.tsinghua.edu.cn
 中科大源:https://mirrors.ustc.edu.cn/

yum报错

 # 1.报错http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/Packages/python-srpm-macros-3-34.el7.noarch.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com;Unknown error"
 ​
 原因是aliyun的Base源中有另外两个baseurl=那两个网址不是咱们使用的,可以删除
 ​
 # 2.报错
 [root@zls ~]# yum install -y tree
 Loaded plugins: fastestmirror
 Existing lock /var/run/yum.pid: another copy is running as pid 37209.Another app is currently holding the yum lock; waiting for it to exit...  
  The other application is: yum    
    Memory :  24 M RSS (769 MB VSZ)    
    Started: Thu Apr 2121:33:34 2022-00:06 ago    
    State : Sleeping, pid: 37209
     
 原因:后台已经有yum进程在安装服务,要么就等安装结束,要么kill PID
 ​
 # 3.网络波动多执行几次
 ​
 # 4.环境变量损坏
 baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
 ​
 $releasever :7
 $basearch   : x86_6
 

标签:x86,day21,基础,nginx,64,root,rpm,el7
来源: https://www.cnblogs.com/LZA1218/p/16182532.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有