zoukankan      html  css  js  c++  java
  • Linux软件管理


    获取程序包途径

    • 系统发行版的光盘或官方的服务器
      • http://mirrors.aliyun.com
      • http://mirrors.sohu.com
      • http://mirrors.163.com
    • 第三方组织
      • http://pkgs.org
      • http://rpmfind.net
      • http://rpm.pbone.net

    软件包分类

    • 二进制格式
    • 源码格式

    软件包管理工具

    • 前端工具
      • yum
      • apt-get
      • zypper (suse上的rpm前端管理工具)
      • dnf(Fedora 22+ rpm前端管理工具)

    现在考红帽的认证使用的是RHEL8.0,不再使用yum,而是dnf。总体没有太大变化。想要了解的可以去官网看相关的资料

    • 后端工具
      • rpm
      • dpt
    • rpm是RHCSA中的需要使用到的一个工具,在升级内核时,需要使用rpm
    • rpm也是我们用到的比较多的一个工具,可以查看是否安装了某个程序。学Linux的时候,就在想能不能在Linux中装个QQ。下载的rpm的包,就是使用rpm安装的。

    RPM包命名规范

    在这里插入图片描述

    这里的版本号跟我们很多的软件的版本号相同,偶数为稳定版,奇数为开发版。在我们使用的时候,建议使用偶数版

    RPM包管理

    RPM包安装

    • 语法: rpm -ivh 包所在的绝对路径
    • 常用选项:
      • -i 安装
      • -v 显示详细信息
      • -h 显示安装进度条
      • --test 测试安装,但不真正执行安装过程
      • --nodeps 忽略依赖关系
      • --replacepkgs 重新安装,替换原有安装
      • --oldpackage 降级
      • --force 强行安装,可以实现重装或降级
      • --nodigest 不检查包的完整性
      • --nosignature 不检查包的来源合法性
      • --noscripts 不执行程序包脚本片断

    RPM包查询

    • 常用选项:
      • rpm -qa 查询已经安装的所有包。(我们用到比较多的命令)
      • rpm -q package_name 查询指定的包是否已安装
    • 较少用的选项:
      • rpm -qi package_name 查询指定包的说明信息
      • rpm -ql package_name 查询指定软件包安装后生成的文件列表
      • rpm -qf /path/to/somefile 查询指定的文件是由哪个rpm包安装生成的
      • rpm -qc package_name 查询指定包安装的配置文件
      • rpm -qd package_name 查询指定包安装的帮助文件
      • rpm -q --scripts package_name 查询指定包中包含的脚本
      • rpm -q --whatrequires CAPABILITY 查询指定的CAPABILITY被哪个包所依赖
      • rpm -q --changelog COMMAND 查询COMMAND的制作日志
      • rpm -q --scripts package_name 查询指定软件包包含的所有脚本文件
      • rpm -qR package_name 查询指定的软件包所依赖的CAPABILITY
      • rpm -q --provides package_name 列出指定软件包所提供的CAPABILITY
      • rpm -qpi /PATH/TO/PACKAGE_FILE 查询指定未安装包的说明信息
      • rpm -qpl /PATH/TO/PACKAGE_FILE 查询未安装的软件包会产生哪些文件

    RPM包升级

    • rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE 如果装有老版本的,则升级;否则,则安装
    • rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE 如果装有老版本的,则升级;否则,退出
      • --oldpackage 降级

    这里是RHCSA中的移一道考题,升级系统内核。因为Linux是支持多内核的,所以用-ivh而不要使用-Uvh

    升级注意事项

    • 不要对内核做升级操作
    • Linux支持多内核版本并存,因此,可直接安装新版本内核。直接使用rpm -ivh安装新版本
    • 如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

    RPM包卸载

    • 用法:
      • rpm -e [package_name]
    [root@bad ~]# rpm -qa |grep vsftpd  //查询是否安装
    [root@bad ~]# rpm -e vsftpd  //卸载
    

    RPM包校验

    如果执行以下命令无内容输出说明此包未被修改过
    [root@badt ~]# rpm -V vsftpd
    
    S  //文件的容量大小是否被改变
    M  //文件的类型或者文件的属性是否被修改
    5  //MD5这一种指纹加密的内容已经不同
    D  //装置的主/次代码已经改变
    L  //路径已经被改变
    U  //文件的所属主已被修改
    G  //文件的所属组已被修改
    T  //文件的创建时间已被改变
    

    RPM重建数据库

    • 数据库信息再/var/lib/rpm目录中
    • rpm --rebuilddb 重建数据库,一定会重新建立
    • rpm --initdb 初始化数据库,没有才建立,有就不用建立

    检查软件包来源合法性和完整性

    • 加密类型:
      • 对称加密,加密解密使用同一个密钥
      • 公钥加密,一对密钥,公钥和私钥。公钥隐含于私钥中,可以提取出来并公布出去
      • 单向加密,只能加密不能解密
    • /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release红帽官方公钥
    • rpm -K PACKAGE_FILE 检查指定包有无密钥信息
      • dsa,gpg //验证来源合法性,也即验证签名。可以使用–nosignatrue略过此项
      • sha1,md5 //验证软件包完整性。可以使用–nodigest略过此项
    • rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 导入密钥文件
    • CentOS 7发行版光盘提供的密钥文件 //RPM-GPG-KEY-CentOS-7

    配置本地仓库

    我们在学习Linux时,会需要装很多的程序,以及很多的依赖包,那么我们就使用yum来安装。但是在使用yum之前,我们需要先在指定目录下搭建好我们的仓库,指明软件包放在哪里,是否需要检查,是否启用等信息。

    • 注意,使用yum前,iso文件要已经连接虚拟机,才可以使用iso中的软件包
    [root@bad ~]# cd etc/yum.repos.d  //进入到仓库配置的目录中
    //先看一下是否有其他的仓库,有的话需要全部删除,或全部禁用。不然将会报错
    [root@bad ~]# ls
    [root@bad ~]# vi yum.repo  //编辑本地仓库,必须以.repo结尾,然后将以下内容写入文件
    [base]  //仓库标识
    name=Redhat  //仓库名
    baseurl=file:///mnt  //指定软件包的位置
    gpgcheck=0  //是否检查许可,0标识不检查,一般不检查
    enabled=1  //是否启用此仓库
    [root@bad ~]# mount /dev/cdrom /mnt/  //挂载光驱
    [root@bad ~]# yum clean all  //清理yum缓存
    [root@bad ~]# yum list all  //列出所有包
    [root@bad ~]# yum repolist  //刷新仓库源
    
    • 在进入仓库配置目录中之后,一定要看是否有其他的仓库源,有要删除,否则配置的yum仓库源可能无法使用
    • 仓库标识和名称可以随便取,但是之后的内容,不要写错
    • baseurl是指你软件包的url,file://是协议,就像是我们访问网址前的http://一样。后面的/mnt标识根下的这个目录。在考RHCSA的时,配置路径时,是给定的网页地址,不要再习惯性的写file://
    • 检查许可信息一定要设置0,不允许。不然在装软件的时候会很慢
    • 挂载时,/dev/cdrom是光驱的默认位置,挂载到/mnt下,中间有空格
    • 使用yum list all时,如果没有红色报错,就表示yum仓库配置好了,可以用。报错了就检查自己的仓库是否写错,光盘是否挂载。
    • 使用yum repolist时,可以看到仓库的信息,有具体的数字不是0就可以使用了

     

    以上内容均属原创,如有不详或错误,敬请指出。
    
    本文作者: 坏坏
  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/bad5/p/12424281.html
Copyright © 2011-2022 走看看