当前位置: 首页 > news >正文

Linux基础——软件安装

软件安装

  • 软件安装
  • dpkg、RPM和SRPM
  • RPM
    • 安装
    • 升级
    • 查询
    • 验证
    • 签名
    • 卸载
  • yum
    • 配置文件
    • 查询
    • 安装、更新、卸载
    • 群组
  • SRPM

软件安装

以前Linux程序的开发者都是通过Tarball分发程序,让用户通过make指令客制化安装,但有更简便的方式:就是将编译好的可执行软件给使用者安装

dpkg、RPM和SRPM

管理机制linux distribution安装包安装指令线上安装指令
RPMRed Hat / Fedorarpm, rpmbuildyum
dpkgDebian / Ubuntudpkgapt-get

dpkg、RPM将编译好的程序打包,方便用户安装,但也有以下问题:

  • 软件安装的环境需与打包时的环境一致,不同distribution的安装文件并不能用在其他distribution上,可能相同distribution的不同版本间也无法相通
  • 需要满足软件的相依性,如安装B前需安装A

为了解决上面的问题,SRPM(Source RPM)的安装文件中含有未编译的源码,通常以xxx.src.rpm命名,可根据自身需要修改配置文件安装软件

RPM

命令 rpm 可安装.rpm格式的安装包

安装

-i安装,-v查看安装信息,-h列出安装进度,若要强制安装则用以下参数

参数(两个-)使用时机影响
–nodeps因为软件相依性无法安装软件可能无法使用
–replacefiles安装时已存在某文件或出现版本不符的信息,强制覆盖覆盖的文件无法还原
–replacepkgs重新安装已安装的软件
–force–replacefiles + --replacepkgs
–test测试当前软件是否可以安装,用于找出相依性
–justdb由于PRM资料库损坏或不明原因错误时,更新软件在资料库的内容
–nosignature忽略签名
–prefix指定安装路径
–noscripts不让该软件在安装过程中执行某些指令

升级

-U 软件没有安装则直接安装,若有安装则更新,-F 若软件没有安装则不会安装,若有安装则更新

查询

查询是根据 /var/lib/rpm/ 的资料,-q仅查询是否安装,-qa查询所有已安装,-qi列出详细信息,-l 列出该软件的文件,-qc列出该软件的配置文件,-qd列出该软件的说明书,-qR 列出该软件的相依性文件,-qf 找出文件属于哪个软件,-q–scripts列出安装后需要执行的脚本,-qp [ilcdR] 与上面操作一样(查询未安装软件)

在这里插入图片描述

验证

验证是通过比较/var/lib/rpm数据库的内容和当前linux下软件的文件,-V [software]列出某软件被改动过的文件,-Va列出系统上所有可能被改动过的文件,-Vp file 列出某软件可能被改动过的文件,-Vf 列出某文件是否被改动过

若一个文件的所有信息都被改变,则输出

SM5DLUGTP cdglr filename

SM5DLUGTP分别表示:

  • S:文件大小变化
  • M:类型和权限变化
  • 5:MD5已不同
  • D:主/次代码改变
  • L:link路径改变
  • U:onwer改变
  • G:group改变
  • T:建立时间改变
  • P:功能改变

cdglr 分别表示:

  • c:config file,配置文件
  • d:documentaion,资料
  • g:ghost file,该文件不被某软件包含
  • l:license,授权文件
  • r:read me,自读文件

签名

上面的验证,若/var/lib/rpm 下的数据库本身就有问题,那就无法保证软件的正确性,此时可利用签名,步骤如下

  • 安装原厂公钥
  • 当安装PRM软件时,rpm会读取对比软件公钥和本机公钥
  • 若相等则安装,不相等则警告且不安装

在这里插入图片描述

卸载

卸载一定要从上层往下卸载,-e 即可卸载软件

yum

yum会自动处理软件相依性,并可以通过网络在线安装,参数-y安装过程自动回复yes,–installroot=/xxx指定安装目录

配置文件

yum软件库配置文件放置在 /etc/yum.repos.d,需自行创建xxx.repo,规则有

  • [xxx]:软件库名字
  • name:说明
  • mirrorlist:镜像网址
  • baseurl:实际网站
  • enalbe:是否启动(可通过参数----enablerepo启动)
  • gpcheck:是否使用签名
  • gpkey:签名所在路径

若修改了默认的配置文件,需yum clean all更新/var/cache/yum 的本机软件库清单

查询

search 搜索某个关键字,list列出yum管理的软件,info列出详细信息,provides根据文件搜索软件

安装、更新、卸载

install 安装,update 更新,remove 卸载

群组

yum还可以一次性安装一个群组的软件,grouplist 列出所有可使用群组,groupinfo查询群组包含的软件,groupinstall安装群组,groupremove移除群组

SRPM

命令 rpmbuild可操作.src.rpm文件,–rebuild 编译打包成.rpm安装包,–recompile编译打包并安装,通过rpm下载.src.rpm,其会在/home/xxx/rpmbuild/,其下目录意义分别是

  • SPECS:配置文件
  • SOURCES:源码(*.tar.gz)和config
  • BUILD:编译过程中的资料
  • RPMS:编译成功打包的文件
  • SRPMS:SRPMS封装的文件

相关文章:

  • 神经网络和决策树,神经网络 选股
  • DM8数据库批量创建表,插入数据,更改表信息,删除测试表
  • mysql插入记录时违反唯一索引的处理
  • 创建型模式-工厂方法模式(二)
  • 面试的时候要注意的坑
  • 虹科案例 | 虹科HiveMQ助力实现百万辆汽车智能互联
  • Nginx基础篇-Nginx的WEB模块~连接状态
  • 营收、利润双增长,龙湖集团找到多元增长的答案?
  • YOLO系列之yolov1解读(1)
  • Softing IT Networks线上研讨会 | 9月 (下篇)
  • HBase原理深入
  • webpack5 之 基础构建打包
  • STM32使用寄存器点灯实验
  • 技术对接35
  • 金仓数据库 KingbaseES 插件参考手册 plsql_pldbgapi
  • Date型的使用
  • JavaScript异步流程控制的前世今生
  • java取消线程实例
  • Sequelize 中文文档 v4 - Getting started - 入门
  • vue-cli3搭建项目
  • 包装类对象
  • 基于axios的vue插件,让http请求更简单
  • 如何在 Tornado 中实现 Middleware
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (ros//EnvironmentVariables)ros环境变量
  • (六)Hibernate的二级缓存
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)为什么要选择C++
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)linux 命令大全
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net 4.0并行库实用性演练
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET开源快速、强大、免费的电子表格组件
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [AIGC] Java 和 Kotlin 的区别
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Angular] 笔记 6:ngStyle
  • [autojs]逍遥模拟器和vscode对接
  • [bzoj1038][ZJOI2008]瞭望塔
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [CF407E]k-d-sequence
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)